Windows ping 选择 IPv4 地址

Windows ping 选择 IPv4 地址

当我运行时,ping myserver我可以在 Wireshark 中看到两个 DNS 查询,一个用于 A,一个用于 AAAA。两个查询分别使用 IPv4 和 IPv6 地址进行回答,并ping开始 ping IPv4 地址。如果我运行,ping -6它会使用 IPv6 地址。

我认为如果两者都可用,IPv6 是首选,为什么会选择 IPv4?

我有一个 IPv6 地址和一个默认 IPv6 路由,其中​​包含路由器的本地链路地址。也就是说,无法通过此路由访问互联网,但 ping(或 DNS 解析器)不知道这一点,对吧?

答案1

ping命令的文档没有指定默认值或优先级;只是当目标是主机名时可以强制使用 IPv4 或 IPv6。

范围  描述
/4 指定用于 ping 的 IPv4。此参数不需要使用 IPv4 地址来识别目标主机。只需通过名称来识别目标主机。
/6 指定用于 ping 的 IPv6。此参数不需要使用 IPv6 地址来识别目标主机。只需通过名称来识别目标主机。

优先权来自前缀策略例如,

C:\> netsh interface ipv6 show prefixpolicies

Precedence Label Prefix
---------- ----- ------
        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

如果的::/0优先级高于::ffff:0:0/96(IPv4),则优先使用 IPv6,反之亦然。

摘自文章“面向高级用户的 Windows IPv6 配置指南“您还可以看到有一个用于配置 IPv6 的注册表项。该表已缩短。

可以通过修改以下注册表项来配置 IPv6 功能:

位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
名称:DisabledComponents
类型:REG_DWORD
最小值:(0x00默认值)
最大值:(0xFF已禁用 IPv6)

IPv6 功能  注册表值和注释
优先选择 IPv4,而不是 IPv6 十进制32
十六进制0x20
二进制xx1x xxxx

建议不要禁用 IPv6。
优先选择 IPv6,而不是 IPv4 二进制xx0x xxxx

相关内容