首页/网络/IP 与子网速查/IPv4 组播 MAC 映射:为什么 32 个组播 IP 共用一个 MAC
私网与特殊地址45 条

IPv4 组播 MAC 映射:为什么 32 个组播 IP 共用一个 MAC

组播 IP 映射到 01:00:5e:0x:xx:xx 时只取低 23 位,28 位组播位多于 23 位,每 32 个 IP 组播组重合到一个 MAC;网卡按 MAC 收包,主机再按 IP 过滤。

IP 与子网速查网络更新于 2026-10-12

映射规则与例子

映射规则与例子
MAC = 01:00:5e + (IP 低 23 位)

224.0.0.5       -> 01:00:5e:00:00:05
239.255.255.250 -> 01:00:5e:7f:ff:fa

# Python 验证
import ipaddress
ip = int(ipaddress.IPv4Address('239.255.255.250'))
low23 = ip & 0x7FFFFF
print('01:00:5e:%02x:%02x:%02x' % ((low23>>16)&0xff,(low23>>8)&0xff,low23&0xff))
# 01:00:5e:7f:ff:fa
32 路重合意味着网卡可能收到“别人的”组播帧,必须在 IP 层过滤:如 239.1.1.1 与 239.129.1.1 共享同一 MAC。

易错点

  • 以为每个组播 IP 有独立 MAC
  • 只做 MAC 过滤:必须叠加 IP 层过滤

数据来源与参考

  • RFC 1112(组播)
  • RFC 5771(IPv4 组播地址分配)
  • IANA Multicast MAC 映射说明

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌