2016-08-11 78 views
3

這與How to multicast send to all network interfaces?不一樣,它要求的解決方案只能在一個程序中工作,並且需要源訪問 - 我沒有。到所有接口的組播路由

我有一堆程序產生組播流量,我希望在我的網絡上看到wifi和ethernet,但是我也希望它們在網絡出現故障時不會死於「無路由」。

所以我真正想要的是將所有多點傳送流量從一臺機器路由到所有可用的接口,或者在沒有接口的情況下進行環回。

在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」。

我該如何路由這些東西,使它們能夠連接到所有適配器,包括環回?

回答

1

您可以使用路由將多路複用路由添加到多個設備。

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 route add 224.0.0.0/4 dev eth0 
ip route add 224.0.0.0/4 dev wlan0 

但是IP路由韓元讓你添加第二條路線。我有asked about如何正確使用IP路由而不必使用顯式的多播組地址,但是如果您適合使用路由,則應該能夠將路由添加到每個需要使用的設備。