到所有接口的组播路由

这与如何多播发送到所有networking接口不一样? 其中要求一个解决scheme,只能在一个程序中工作,并要求源访问 – 我没有。

我有一堆程序产生组播stream量,我希望在我的networking上看到无线networking和以太网,但是我也希望它们在networking出现故障时不会死于“无路由”。

所以我真正想要的是将所有组播stream量从一台机器路由到所有可用的接口,或者在没有接口的情况下进行环回。

在Linux上,我可以说:

sudo ifconfig lo multicast sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo 

但这意味着使用eth0wlan0的用户无法获得组播信息。

同样我可以说:

 sudo ifconfig lo multicast sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 

但是,然后wlan0不会得到多播。 更糟糕的是,如果所有接口出现故障,我的程序只会崩溃,出现“没有路由到任何组播IP”的情况。

我怎么路由的东西,使他们去所有的适配器,包括环回?

您可以使用路由将多路复用路由添加到多个设备。

 sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev wlan0 

这反映在路由表中,并允许我们在单独的NIC上运行的服务工作。

但是,我不清楚你应该这样做。

我不确定是否“有效”的原因是我试图使用明显废弃/过时的路由来使用“ip route”,例如

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

但是ip route不会让你添加第二条路由。 我已经问过如何正确使用IP路由,而不必使用显式的多播组地址,但是如果您适合使用路由,则应该能够将路由添加到每个需要使用的设备。