假设2个多播IP地址IP1和IP2,其mac地址因碰撞而相同
假设一个主机的网卡已经加入了多播流IP1,而原始主机子网上的另一个主机加入了多播流IP2
现在,我们如何确保原始主机的NIC只接收来自IP1而不是IP2的数据包
发布于 2019-12-29 04:09:29
组播实际上是在同一个局域网上到处发送的。只有已订阅组播组的主机才会侦听该组的多播数据包。
多播有它自己的一组目标地址。对于IPv4,多播MAC地址的范围是01:00:5e:00:00:00到01:00:5e:7f:ff:ff。有28位的IPv4组播组地址,但只有23位的MAC组播地址。这意味着每个多播MAC地址代表32个不同的IPv4组播地址(28 - 23 = 5和2^5 = 32)。差异在第三层处理。
(IPv6的组播地址范围比IPv4大得多,120位对28位,其MAC多播地址范围为33:33:00:00:00:00到33:33:ff:ff:ff:ff,比IPv4组播地址范围大,但也有重叠,IPv6组播具有标志和范围,比IPv4组播复杂得多。)
在第2层,将第3层多播地址转换为目标MAC地址的MAC多播地址.订阅多播组的主机也将侦听多播IP地址的多播MAC地址的通信量,并将该通信量传递到第三层,以确定第二层组播地址是否确实是该主机订阅的第三层组播组的通信量。
发布于 2020-07-19 04:58:34
Host1和host2可能会同时获得这两个流--完成最终筛选是NIC/OS的工作。
此外,您甚至不需要多播MAC冲突来获得额外的通信量--因为交换机使用这些地址的哈希(许多流行的地址都非常有限--例如,我使用don设备,他们显然使用了ony 4位,每32个多播组都会收到!)实际的交通可能比预期的要大得多。
当我的操作系统接收到450 Mb/s的组播流时,原始端口统计数据显示实际流量为700 Mb/s。在NIC上翻转“all组播”标志后,我可以很容易地看到所有带有tcpdump的额外组。不,它与重复组播IP组(不同端口)无关,只与非冲突多播MAC地址的哈希冲突有关。
https://networkengineering.stackexchange.com/questions/64242
复制相似问题