我正在我们的网络上设置和测试 IPv6,但遇到了与我们的 Windows 客户端相关的问题。
我有一个 Cisco Catalyst 3850 交换机,用于 ipv6 单播路由,并在其上设置了两个网络。Catalyst 交换机还具有一个通向互联网的有效 ipv6 路由,并且我能够从交换机 CLI(从任一网络上的交换机 ipv6 网关地址)成功连接公共 ipv6 服务器地址,没有任何问题。
交换机上的网关地址/网络是:VLAN 20:2607:f460:21c0:a020::1/64 VLAN 200:2607:f460:21c0:a200::1/64
我可以从另一个配置的网络对其中一个网络进行 ping 操作,没有任何问题:
ping 2607:f460:21c0:a200::1 source 2607:f460:21c0:a020::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2607:F460:21C0:A200::1, timeout is 2 seconds:
Packet sent with a source address of 2607:F460:21C0:A020::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
除了到互联网的默认::/0 公共路由之外,交换机上没有设置任何 ACL 或特殊路由。
Windows 客户端位于 VLAN 20 上,具有静态地址:2607:f460:21c0:a020::2/64,其中 2607:f460:21c0:a020::1 设置为默认网关。
如果我 ping 网关,它就起作用了......
C:\Windows\system32>ping 2607:f460:21c0:a020::1
Pinging 2607:f460:21c0:a020::1 with 32 bytes of data:
Reply from 2607:f460:21c0:a020::1: time=2ms
Reply from 2607:f460:21c0:a020::1: time=2ms
Reply from 2607:f460:21c0:a020::1: time=2ms
C:\Windows\system32>tracert -6 2607:f460:21c0:a020::1
Tracing route to 2607:f460:21c0:a020::1 over a maximum of 30 hops
1 2 ms 2 ms 2 ms 2607:f460:21c0:a020::1
Trace complete.
如果我尝试 ping 本地 On-Link 网络之外的任何东西,它会失败并出现无法访问的错误:
C:\Windows\system32>ping 2607:f460:21c0:a200::1
Pinging 2607:f460:21c0:a200::1 with 32 bytes of data:
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Ping statistics for 2607:f460:21c0:a200::1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Tracing route to 2607:f460:21c0:a200::1 over a maximum of 30 hops
1 Destination host unreachable.
Trace complete.
事实上,跟踪在第一跳就失败并出现无法访问的情况,这对我来说意味着 Windows 似乎并没有尝试联系默认路由,而是在链接上搜索主机……
这对我来说没有意义,因为我有一个网关设置,并且它的度量比链接路由更低。
===========================================================================
Interface List
7...00 50 56 94 e7 38 ......vmxnet3 Ethernet Adapter
1...........................Software Loopback Interface 1
===========================================================================
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
7 271 ::/0 On-link
7 271 ::/0 fe80::521c:bfff:fe73:1656
7 16 ::/0 2607:f460:21c0:a020::1
1 331 ::1/128 On-link
7 271 2607:f460:21c0:a020::/64 On-link
7 271 2607:f460:21c0:a020:947a:1291:c6e3:b93d/128
On-link
7 271 fd67:df27:a77::/48 On-link
7 271 fd67:df27:a77:7777::/96 On-link
7 271 fe80::/64 On-link
7 271 fe80::947a:1291:c6e3:b93d/128
On-link
1 331 ff00::/8 On-link
7 271 ff00::/8 On-link
===========================================================================
Persistent Routes:
None
有人能帮助我吗?
答案1
嗯,这是我刚刚发现的……
当我删除 ::/0 On-Link 路由时,它开始工作。除了假设窗口必须优先考虑 On-Link 路由(即使其度量高于手动配置的路由)之外,我不确定为什么会出现这种情况。
然后我问,“那条路线为什么会在那里?”...我做了一些挖掘,Windows 默认在 ipv6 接口上启用无状态自动配置(SLAAC)。可以通过针对相关接口发出以下命令来禁用此功能...
netsh inter ipv6 设置接口“X”routerdiscovery=disabled
当 SLAAC 被禁用时,::/0 On-Link 路由将被删除,一切都开始正常工作。
为什么SLAAC 配置了默认的链接路由,我不知道...如果有人可以向我解释的话我会得到加分...这是我的怀疑,我不会费心去测试 - 为了获得正确的默认路由,需要在我的路由器(我的交换机)上启用 SLAAC,这样它们才会将路由通告给我的 Windows 客户端。
我远离 SLAAC 因为我想使用我自己的寻址方案,所以我只会在静态分配的 Windows 服务器上禁用它。
我是希望对于我的 dhcp 客户端,我可以配置一个选项来告诉他们不要使用 SLAAC...
答案2
::/0 路由仅出现在我的几台服务器上。我可以删除该路由,它就不会再出现。然后 SLAAC 就会开始工作。
由于我们实际上不使用 Android 设备,因此我最终还是在托管网络上禁用了 SLAAC。我喜欢通过 DHCPv6 管理所有内容,而我在使用 SLAAC 寻址的 Windows 客户端上进行 DDNS 注册时遇到了麻烦。