网络上所有节点的 IPv6 多播地址

网络上所有节点的 IPv6 多播地址

我有一个包含 3 个节点(VM)的基本网络。

一个节点发布事件,其他节点监听该事件并在收到时打印一些内容。它过去是一对一工作的(因此节点分别向其他节点发送事件),但我想实现多播。

作为一个快速实验,我想在网络上进行基本的“广播”,但我一直无法找出正确的 IPv6 地址。使用 IPv4 广播地址有效,然后两个节点都会打印一些内容,因此节点 1 的地址是:inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr:fe80::a00:27ff:fef7:30a7/64 Scope:Link

节点 2:inet addr:192.168.56.102 Bcast:192.168.56.255 掩码:255.255.255.0 inet6 addr:fe80::a00:27ff:fe56:a2f7/64 范围:链接

节点 3:inet addr:192.168.56.103 Bcast:192.168.56.255 掩码:255.255.255.0 inet6 addr:fe80::a00:27ff:fe82:ae4a/64 范围:链接

因此 IPv6 没有广播,而是使用多播。这些多播地址始终以 ff 开头。然后您得到标志,默认情况下,对于分配的 mlc,该标志为 0,对于瞬态,该标志为 1。然后是范围。想要做一个基本的广播等效,我尝试了 ff01::1,它应该到达所有节点,ff01::2 应该到达所有路由器。但这不起作用。我也试过 ff02、ff05 和 ff0e。我在这里误解了一些东西,当节点 1 发布事件时,到达节点 2 和节点 3 的正确多播/广播 ipv6 地址是什么?

编辑:

经过一些实验,我发现我甚至无法 ping inet6 地址,但我可以 ping ipv4 地址!有什么线索吗?

答案1

向链路上所有节点进行多播的正确地址是ff02::1%<interface>。您可能忘记了接口 ID,即链接范围地址所需

例如:

# ping6 ff02::1%br0
PING ff02::1%br0(ff02::1) 56 data bytes
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=1 ttl=64 time=0.455 ms (DUP!)
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=1 ttl=64 time=0.650 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=2 ttl=64 time=0.203 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=2 ttl=64 time=0.241 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=3 ttl=64 time=0.237 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=3 ttl=64 time=0.254 ms (DUP!)
^C
--- ff02::1%br0 ping statistics ---
3 packets transmitted, 3 received, +6 duplicates, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.046/0.244/0.650/0.189 ms

地址ff01::/16界面- 本地多播,这实际上只对向本地主机进行多播有用。

参考:RFC 4291

答案2

记得在参数中包含接口,以便:

ping6 ff02::1不起作用。

ping6 ff02::1%en0应该可以工作,但在这种情况下取​​决于您的接口名称en0

答案3

使用

ping6 -I eth0 ff02::1 

其中,eth0 是您的本地链路正在通信的接口名称。您可以使用以下命令获取机器的所有可用接口

ifconfig

ff02::1 是众所周知的多播地址,由互联网号码分配机构

相关内容