这与如何多播发送到所有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
但这意味着使用eth0或wlan0的用户无法获得组播信息。
同样我可以说:
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路由,而不必使用显式的多播组地址,但是如果您适合使用路由,则应该能够将路由添加到每个需要使用的设备。