Linux 到所有接口的多播路由

Linux 到所有接口的多播路由,linux,routing,multicast,Linux,Routing,Multicast,这与要求只在一个程序中工作的解决方案不同,需要访问源代码——我没有 我有一大堆程序,可以产生我希望在我的网络上看到的多播流量,包括wifi和以太网,但我也希望它们不会在网络出现故障时死于“无路由” 所以我真正想要的是将所有多播通信从一台机器路由到所有可用的接口,或者在没有接口的情况下进行环回 在Linux上,我可以说: sudo ifconfig lo multicast sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo sudo i

这与要求只在一个程序中工作的解决方案不同,需要访问源代码——我没有

我有一大堆程序,可以产生我希望在我的网络上看到的多播流量,包括wifi和以太网,但我也希望它们不会在网络出现故障时死于“无路由”

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

在Linux上,我可以说:

sudo ifconfig lo multicast
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo
sudo ifconfig lo multicast
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
但这意味着使用eth0wlan0的用户无法获得多播

同样,我可以说:

sudo ifconfig lo multicast
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo
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路由”,例如


但是,ip路由不允许添加第二条路由。我知道如何在不使用显式多播组地址的情况下正确使用ip路由,但如果您对使用路由感到满意,您应该能够将路由添加到需要使用的每个设备上。

如何通过重新启动保持此状态?ip路由确实允许,但这是一个晦涩难懂的命令,在我看来,它没有很好的文档记录(请参阅我对@gnac重新发布的问题的回答。@tgabb-通过重新启动来保持这一点取决于您的发行版-这实际上是一个在接口打开后/打开时使用发行版的相应管理器来运行此命令的问题(例如,debian的
/etc/network/interfaces
文件)