Lee*_*ard 5 networking dns ipv6 windows-10
我有来自 Sixxs.net 的 IPv6 地址,但是如果我 ping 一个同时具有 IPv4 和 IPv6 地址的主机(即 www.google.com 或 www.facebook.com),我会在 Windows 10 上获得 IPv4 地址,但在所有 Windows 7 和同一网络中的 Windows 8.1 机器获取 IPv6 地址。我必须使用 -6 来强制它 ping IPv6。
我已经尝试了此处提到的快捷方式https://support.microsoft.com/en-us/kb/929852以更喜欢 IPv6 而不是 IPv4,但它并没有解决问题。当我访问 IPv4 和 IPv6 的网站时,我总是看到 IPv4 页面。
test-ipv6.com 告诉我我的浏览器有一个真正有效的 IPv6 地址,但正在避免使用它。http://test-ipv6.com/faq_avoids_ipv6.html
h:\>ping www.facebook.com 用 32 字节数据 Ping star.c10r.facebook.com [31.13.66.1]: 来自 31.13.66.1 的回复:bytes=32 time=8ms TTL=87 h:\>ping -6 www.facebook.com ping star.c10r.facebook.com [2a03:2880:f013:1:face:b00c:0:1] 有 32 个字节的 数据: 来自 2a03:2880:f013:1:face:b00c:0:1 的回复:时间=145ms
netsh 接口 ipv6 显示前缀策略
正在查询活动状态...
优先标签前缀
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
更新
以为我的路由器有问题。当我从 Shibby Tomato v131 升级到 v132 时,它似乎解决了这个问题,但现在又回来了。它仍然适用于 Windows 7 和 8.1,但不适用于 Windows 10。我使用固定无线网络,因此我的互联网连接已经存在一些延迟。当我使用 IPv6 隧道时,它有时会增加显着的延迟(59-100 毫秒)。我认为 Windows 10 的一个功能会支持 IPv4,如果 IPv6 速度明显变慢,但我不知道限制是什么。
第二次更新
如果我禁用 IPv4,则 IPv6 可以正常工作。如果我 ping 一个同时具有 IPv4 和 IPv6 的主机名,它将 ping 到 IPv6 地址。
>ping facebook.com
Ping facebook.com [2a03:2880:2130:7f20:face:b00c:0:25de] 使用 32 字节的 da
A:
来自 2a03:2880:2130:7f20:face:b00c:0:25de 的回复:时间=161ms
来自 2a03:2880:2130:7f20:face:b00c:0:25de 的回复:时间=317ms
来自 2a03:2880:2130:7f20:face:b00c:0:25de 的回复:时间=215ms
来自 2a03:2880:2130:7f20:face:b00c:0:25de 的回复:时间=154ms
2a03:2880:2130:7f20:face:b00c:0:25de 的 Ping 统计信息:
数据包:发送 = 4,接收 = 4,丢失 = 0(0% 丢失),
大约以毫秒为单位的往返时间:
最小值 = 154 毫秒,最大值 = 317 毫秒,平均值 = 211 毫秒
我遇到了同样的棘手问题——ipv4 和 ipv6 都可以工作,但如果我尝试 ping(或浏览等)任何具有 IPv4 A 记录的名称,Windows 总是会更喜欢它而不是 v6 (AAAA) 地址。网络堆栈内部有一个逻辑,可以对 DNS 查询中的地址进行排序,以选择首选的地址。就我而言,它更喜欢 v4 地址,因为我的 Wifi 接口支持 LAN 唤醒,又名始终在线始终连接 (AOAC),但显然仅适用于 IPv4。
您可以启用 ETW 跟踪点来准确了解对地址进行排序时发生的情况;下面是如何使用内置 netsh 工具执行此操作的示例。我使用 www.google.com 作为示例,但任何同时具有 A 和 AAAA 记录的主机都应该可以工作。
netsh trace start provider=Microsoft-Windows-TCPIP level=5 keywords=ut:TcpipRoute
ping -n 1 www.google.com
netsh trace stop
netsh trace convert %TEMP%\NetTraces\NetTrace.etl
Run Code Online (Sandbox Code Playgroud)
现在,查看nettrace.txt它编写的文件,希望您能找到线索。就我而言,是:
[Microsoft-Windows-TCPIP]IP: Address pair (::ffff:192.168.1.100, ::ffff:74.125.28.99) is preferred over (2601:XXX:XXX:XXX:XXX:XXX:XXX:XXX, 2607:f8b0:400e:c04::67) by SortOptions: 0, Reason: Prefer Aoac Interface (Rule D 1.1).
Run Code Online (Sandbox Code Playgroud)
(其中 XXX 是我已编辑的公共 IPv6 地址)。
我不知道是否有任何方法可以覆盖这个特定规则(现在我知道为什么它会做出这样的选择,我很乐意保持原样)。