複数のインターフェースでマルチキャスト パケットを複製するにはどうすればよいですか?

複数のインターフェースでマルチキャスト パケットを複製するにはどうすればよいですか?

Linuxサーバーから複数のLinuxクライアントにマルチキャストアドレス経由でストリームを送信したい。クライアントはサーバーに直接接続されていますが、異なるインターフェース:bnep0そしてbnep1。また、私の理解する限りでは、マルチキャスト パケットはデフォルト ゲートウェイにルーティングされますeth0

以降のルーティングテーブル:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 bnep1
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 bnep0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

マルチキャスト パケットが ではなくとeth0の両方に送信されるように、専用のルーティング ルールを作成する必要があると思います。質問は、どうすればそれができるのかということです。とを使用してみましたが、成功しませんでした。bnep0bnep1ip routeiptables -t mangle ... TEE

前もって感謝します。

答え1

解決策は、2つのインターフェースでパッケージを複製するためにルーティングルールを実装するのではなく、マージインターフェースを 1 つにまとめます。

このためには、ネットワーク ブリッジを作成して使用する必要があります。ブリッジには一意の IP アドレスが必要ですが、「実際の」インターフェースは、たとえ起動していても一意の IP アドレスは必要ありません。

# apt-get install bridge-utils
# ifconfig bnep0 up
# ifconfig bnep1 up
# brctl addbr br0
# brctl addif br0 bnep0
# brctl addif br0 bnep1
# ifconfig br0 10.0.0.1 netmask 255.255.255.0

関連情報