使用ip route add将组播路由添加到多个设备

TLDR:有没有办法使用“ip route”为多个NIC添加组播路由

我们有软件将绑定到不同NICS上的不同IP地址的两个套接字连接到两个独立的多播组,例如,套接字1绑定到192.168.0.2,并join到组播组233.255.10.1,而套接字2绑定到10.57.31.2并join到多播组239.255.100.1。

我们正在使用bash脚本(Linux内核3.14.39)在两个networking接口上使用路由来设置组播路由

route add -net 224.0.0.0 netmask 240.0.0.0 eth0 route add -net 224.0.0.0 netmask 240.0.0.0 eth1 

并通过路由-n进行validation

 Destination Gateway Genmask Flags Metric Ref Use Iface 224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0 224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth1 

我最近读了这条路线已经过时/过时,我们应该使用ip路由,例如

 ip route add 224.0.0.0/4 dev eth0 ip route add 224.0.0.0/4 dev eth1 

不幸的是,第二次调用失败,“RTNETLINK答案:文件存在”,当然第二个路由不会在这些调用后显示。

有没有办法使用IP路由添加组播路由到多个NIC?

我可以使用/ 8作为networking掩码? 例如

 ip route add 233.0.0.0/8 dev eth0 

 ip route add 239.0.0.0/8 dev eth1 

但这是有问题的,因为执行此操作的脚本不知道哪个多播地址与哪个设备关联,并且根据系统configuration,并不总是保证相同。 使用我的路由添加的第一个例子使这不成问题。