Linux OpenWRT IPv6 邻居发现

Tom*_*tel 3 networking openwrt ipv6

我的ip -6 nei命令仅在 ping 后才显示可用的邻居。有没有办法在链路启动后填充 IPv6 邻居表,而不仅仅是在发送流量之后?

sou*_*edi 5

不可以。发现邻居需要流量。


IPv6 引入了类似于广播 ping 的功能,可以发现邻居的 IPv6 地址。[*]

如果您的主机允许,这可能很有用。我发现 Windows 没有响应多播 ping 的报告,包括在 Windows 7 和 8.1 上。即使是这样,Windows 防火墙也会阻止 ping,除非您将网络类型设置为“私人”(“家庭”/“工作”)。

发现链接本地地址:

ping -c1 ff02::1%br-lan
Run Code Online (Sandbox Code Playgroud)

或者,以不同的方式编写相同的命令:

ping -c1 -I br-lan ff02::1
Run Code Online (Sandbox Code Playgroud)

发现全球地址:

ping -c1 -I <my-global-ipv6-address> ff02::1
Run Code Online (Sandbox Code Playgroud)

对于不熟悉openwrt的读者, br-lanlan网络接口常用的名称。

感谢https://insights.sei.cmu.edu/cert/2008/09/ping-sweeping-in-ipv6.html


[*] 这些 IPv6 多播 ping 不能从离线发送。这意味着它们避免了 IPv4 广播 ping 过去存在的问题。在某一时刻,可以从网外发送 IPv4 广播 ping。这极大地放大了流量。因此,它可以用作攻击,通过欺骗攻击者目标的 ping 源地址。在当前的 Linux 上,默认情况下现在忽略 IPv4 广播 ping。