不应该将 IPv6 SLAAC 地址添加到接口

不应该将 IPv6 SLAAC 地址添加到接口

我为网络测试环境构建了一个基于 Linux 的路由器。该机器有 4 个物理以太网端口

  1. 局域网0
  2. 局域网1
  3. 局域网2

所有 3 个 lan* 接口都桥接在我的 lan 设备上。我正在运行 dnsmasq 以在 lan 接口上提供 DHCP/DNS。我正在尝试使用 SLAAC IPv6 地址而不是 DHCPv6 分配的地址,并使用 DHCPv6 获取其他信息(因此是无状态 DHCPv6)。我 lan 上的所有其他计算机都通过 SLAAC 正确地为自己分配地址。但是,即使 dnsmasq 在 lan 接口上发送路由器广告,我的 wan 接口也会以某种方式看到它并自动配置自身。我已经在我的 wan 接口上运行了 wireshark,并且实际上没有通过网络传入路由器广告。

我甚至尝试通过 sysctl 将 net.ipv6.conf.wan.autoconf 键设置为 0 来关闭 wan 接口上的 slaac,但它仍然会获取一个地址。

还有其他原因会导致这种情况发生吗?

答案1

问题原来与网络或内核无关,而是与在此系统上运行的 systemd 有关。systemd-networkd 没有适当地过滤与路由器广告相关的多播消息,也没有遵守关闭接口的 slaac 的 sysctl 值。因此它正在处理 RA 并添加 IP 本身。

相关内容