我的本地网络的路由器通告了两个 IPv6 前缀(一个是本地的,fdXX:: 前缀,另一个是从我的 ISP 委托的)。我已经通过使用 Wireshark 检查路由器通告来确认它们都在被通告,因此:
但是,网络上的 Windows 主机似乎仅选择其中一个前缀(并且始终是 fdXX:: 前缀)来使用:
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : arkane-systems.lan
IPv6 Address. . . . . . . . . . . : fdc9:b01a:9d26:0:fd4c:9cca:2051:c663
Link-local IPv6 Address . . . . . : fe80::21cd:60d4:2e62:cc29%14
IPv4 Address. . . . . . . . . . . : 172.16.1.2
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : fe80::217:94ff:fef2:c3f%14
172.16.0.254
为什么会发生这种情况?有什么方法可以让主机接收两个接口的消息?
答案1
我首先要问的是,为什么你们要宣布 2 个前缀。我不确定 Windows 是如何构建其堆栈的,但我认为它正在寻找一条路由。
该fdc9:
前缀不应用于全局(互联网)路由。但是,考虑到生命周期,它似乎是生命周期方面更可取的网络。此外,它更接近本地路由块所需的 /64。当全局标识符也能正常工作时,是否有理由使用本地标识符?
前缀2600:
正在使用您的 ISP 提供的完整 /48 进行通告。通常,这会被分解为 /64 子网,每个路由器都会分配一个子网。这对于您组织中的 65536 个路由器来说很合适。尝试通告 /64 子网,看看会发生什么。