我有两台服务器,均运行 Windows 2008,并且均运行 IPV4 和 IPV6。
如果在 server1 上我像这样 ping server2
ping server2
我得到的答复是
Pinging server2 [2002:9b08:a21::9b08:a21]
但是,如果我从本地计算机(运行 IPV4 和 IPV6 的 Windows 7)ping server2,我会得到
Pinging server2 [155.8.10.33]
IPV6 的 TCP/IP 属性在服务器和本地计算机上是相同的。但是,属性与 IPV4 有一些差异。
LocalMachine IPV4 属性:
服务器 IPV4 属性:
我能看到的唯一其他区别是,在服务器上的 ipconfig 中“连接特定的 DNS 后缀”是空白的,而在本地计算机上它设置为域。
答案1
Windows 工具RFC 3484并使用前缀表来确定当一个名称有多个地址可用时使用哪个地址。
默认情况下,它优先使用 IPv6 全局单播地址而不是 IPv4 地址。
您可以通过以下方式查看/更改前缀策略netsh
:
// Open an elevated command prompt
// Enter the IPv6 context
> netsh int ipv6
// Then use one of the following commands
show prefixpolicies
set prefixpolicy
答案2
如果有能力的话,IPv6 应该始终优先。
一方面,可能有以下几种情况 - 工作站未启用 IPv6,或者它使用与服务器不同类别的 IPv6 地址 - 全局、站点本地或链接本地。
http://www.tcpipguide.com/free/t_IPv6SpecialAddressesReservedPrivateLinkLocalSiteLo-3.htm
答案3
我立即猜测服务器 1 和服务器 2 都启用了 6to4,而您的 Windows 7 桌面没有启用。(任何机器都有全局可路由的 IPv6 吗?我怀疑没有。)在 AD 环境中,Windows 会自行注册其在 DNS 中拥有的任何 6to4 IP(我想至少服务器 2 会这样做,这是基于服务器 1 的主机选择)。
如果您的 Windows 7 机器有(或应该有)可运行的 IPv6,那么还有一些其他可能性可能会导致它选择 IPv4。