ICMPv6 RA 中的 IPv6、多个路由器和可能的错误前缀通告

Mik*_*eyB 3 ipv6 icmpv6

我的网络上设置了两个“路由器”类型的设备。

一个是我实际的 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广告链接本地前缀时添加到路由表?
  • 还有什么?

Bil*_*hor 5

radvd(路由器广告守护进程)应该在 DLink 上禁用,至少在面向 Cisco 路由器的接口上是这样。

或者,您可以在 DLink 上设置到 Cisco 路由器的静态默认路由。这将使路由长一跳,但假设 DLink 将路由回 Cisco 路由器的接口仍然有效。

如果 WAN 端口是连接到 Cisco 路由器的端口,则 DLink 路由器不应在该链路上通告路由。

编辑:您可以通过设置AdvRoutePreference high;和/或AdvDefaultPreference high;在 Cisco 路由器的 radvd 配置中影响路由。

EDIT2:问题似乎是 DLink 路由器没有全局 IP 地址或路由。路由器的默认路由通常不会被发现,因此可能需要手动设置。

CISCO 文档中设置 ipv6 路由器首选项的步骤是:

  1. 使能够
  2. 配置终端
  3. 接口类型号
  4. ipv6 nd 路由器偏好 {high | 中 | 低的}