在 IPv4 中,ff-ff-ff-ff-ff-ff 是广播地址,因此该帧可以通过所有机器的第 2 层。
在 IPv6 中,不使用 ARP,而是使用 ICMPv6 通过多播来获取 mac 地址。那么,多播的 mac 地址是什么??
如果 mac 地址不匹配,则此帧无法通过目标机器的第 2 层。所以,我真的很想知道多播数据包如何在不使用 ff-ff-ff-ff-ff-ff 的情况下通过第 2 层。
答案1
以太网也有“多播”MAC 地址——任何设置了“组”位的 MAC 地址在技术上都是多播地址;IPv6 使用前缀33:33:*
,而 IPv4 使用01:00:5e:*
。还有其他广泛使用的前缀,请参阅这个维基百科表格了解详情。
对于 IPv6 多播地址,IPv6 地址的最后 32 位与 进行“或”运算33:33:00:00:00:00
。例如:
“所有节点”地址
ff02::1
转换为33:33:00:00:00:01
。针对示例地址的邻居请求
fe80::4a5d:60ff:fee8:658f
将发送到相应的请求节点多播地址ff02::1:ffe8:658f
,该地址被转换到以太网地址33:33:ff:e8:65:8f
。