从 Linux 发送路由器请求后,路由器未发送路由器通告

从 Linux 发送路由器请求后,路由器未发送路由器通告

网络上有 Debian 10 Linux 和 ZTE ZXR10 5960 L3 交换机作为路由器。问题是 Linux 发送路由器请求 (RS) 数据包时没有“源链路层地址”作为 ICMPv6 类型 133 选项。ZTE 忽略此 RS 数据包,不发送路由器通告 (RA)。结果 - Linux 主机通过 DHCP 接收 IPv6 地址/DNS 服务器的间隔很长(最多 10 分钟)。Cisco L3 交换机作为路由器不存在这样的问题 - 它在收到 RS 后立即发送 RA。

ZTE 上的默认 RA 间隔为 600 秒。我可以修复 RS/RA 交换的一种方法是将 RA 间隔设置为 60 秒或更短。

是否有任何 Linux 内核参数可指定将“源链路层地址”作为 ICMPv6 类型 133 的选项包括在内?我该如何正确修复该问题?

根据 RFC 4861:

路由器可能按如下方式处理路由器请求:

...

如果请求的发送者没有现有的邻居缓存条目,路由器将创建一个条目,安装链路层地址,并将其可达性状态设置为 STALE,如第 7.3.3 节所述。如果没有现有的邻居缓存条目,并且请求中没有源链路层地址选项,路由器可能使用多播或单播路由器通告进行响应。

相关内容