TLDR: 「ip route」を使用して複数の NIC のマルチキャスト ルートを追加する方法はありますか?
別々の NICS 上の異なる IP アドレスにバインドされた 2 つのソケットを 2 つの別々のマルチキャスト グループに参加させるソフトウェアがあります。マルチキャスト グループ 239.255.100.1。
現在、ルートを使用して 2 つのネットワーク インターフェイスにマルチキャスト ルートを設定するために、bash スクリプト (Linux カーネル 3.14.39) を使用しています。
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
route -n で検証
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 route を使用する必要があることを読みました。
ip route add 224.0.0.0/4 dev eth0
ip route add 224.0.0.0/4 dev eth1
残念ながら、2 番目の呼び出しは「RTNETLINK の回答: ファイルが存在します」で失敗し、もちろんこれらの呼び出しの後に 2 番目のルートは表示されません。
複数の NIC にマルチキャスト ルートを追加するために ip route を使用する方法はありますか?
/8 をネットマスクとして使用できますか? 例えば
ip route add 233.0.0.0/8 dev eth0
と
ip route add 239.0.0.0/8 dev eth1
ただし、これを行うスクリプトは、どのマルチキャスト アドレスがどのデバイスに関連付けられているかを認識せず、システム構成によっては常に同じであるとは限らないため、問題があります。ルート追加の最初の例を使用すると、これは問題になりません。