错误的多播MAC地址与多个networking接口

我试图从一台红帽机器订阅一个多播组,每个networking接口位于不同的子网上。 只有在网关匹配的networking接口上的多播套接字与configuration的默认网关绑定时,它才有效。

我的路由表(“路由”命令的输出):

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.37.0 * 255.255.255.0 U 0 0 0 eth2 10.1.39.0 * 255.255.255.0 U 0 0 0 eth3 10.1.38.0 * 255.255.255.0 U 0 0 0 eth1 10.1.33.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth3 link-local * 255.255.0.0 U 1003 0 0 eth0 link-local * 255.255.0.0 U 1004 0 0 eth1 link-local * 255.255.0.0 U 1005 0 0 eth2 default 10.1.33.1 0.0.0.0 UG 0 0 0 eth0 

每个子网都有一个configuration为网关的防火墙(在每个ifcfg-ethXconfiguration文件上),在所有接口中,它在该子网上具有* .1地址。

这里是我使用Wireshark的研究:

如果我在eth0上绑定套接字,操作系统会发送组播join报文,其中以太网层的Dst字段设置为01:00:5e:02:02:11,这是一个组播MAC地址。 防火墙接受该数据包并开始中继该多播组的数据包。

如果我在eth2上绑定套接字,则操作系统会将以太网层上的Dst字段设置为84:b8:02:d2:cd:88(即防火墙的物理MAC地址)发送组播join报文。 防火墙会丢弃该数据包,因为它没有有效的多播MAC地址。

如果我将默认网关更改为10.1.37.1,则组播开始在eth2上工作,但不在eth0中。

我有什么错误的configuration吗? 有什么办法可以在不同的networking接口上同时获取不同的组播组?