我的网络上设置了两个“路由器”类型的设备。
一个是我实际的 IPv6 路由器 - Cisco 2621 ( fe80::xxxx:3e60)。这是正确的默认路由器。
另一个是 DLINK DIR-615 ( fe80::xxxx:5760)。它支持 IPv6,但目前仅配置为链路本地寻址,因为它仅用作 WAP。
两个设备都在发送 ICMPv6 RA 消息,因此它们都被添加到我客户端的路由表中:
$ ip -f inet6 route | grep default
default via fe80::xxxx:3e60 dev wlan0 proto kernel metric 1024 expires 1741sec mtu 1500 advmss 1440 hoplimit 64
default via fe80::xxxx:5760 dev wlan0 proto kernel metric 1024 expires 1791sec mtu 1500 advmss 1440 hoplimit 64
Run Code Online (Sandbox Code Playgroud)
问题在于我的客户现在可以选择默认路由器。一个在途中愉快地发送数据包,另一个则没有。我可以删除不正确的路线,但它只会在下一个 RA 出现时重新添加。
fe80::xxxx:3e60 (正确的路由器)正在发送 RA,广告前缀为 2001:xxxx:xxxx::/64(我的网络)
fe80::xxxx:5760 (不正确的路由器)正在发送 RA,通告前缀为 fe80::/64(本地链路)
那么……这是谁的错?
fe80::xxxx:5760 用于在无法提供有效前缀时发送 RA?fe80::xxxx:5760 用于发送带有本地链路前缀的 RA?fe80::xxxx:5760广告链接本地前缀时添加到路由表?radvd(路由器广告守护进程)应该在 DLink 上禁用,至少在面向 Cisco 路由器的接口上是这样。
或者,您可以在 DLink 上设置到 Cisco 路由器的静态默认路由。这将使路由长一跳,但假设 DLink 将路由回 Cisco 路由器的接口仍然有效。
如果 WAN 端口是连接到 Cisco 路由器的端口,则 DLink 路由器不应在该链路上通告路由。
编辑:您可以通过设置AdvRoutePreference high;和/或AdvDefaultPreference high;在 Cisco 路由器的 radvd 配置中影响路由。
EDIT2:问题似乎是 DLink 路由器没有全局 IP 地址或路由。路由器的默认路由通常不会被发现,因此可能需要手动设置。
从CISCO 文档中设置 ipv6 路由器首选项的步骤是:
| 归档时间: |
|
| 查看次数: |
4113 次 |
| 最近记录: |