私のルーター(Linuxシステム)には以下のインターフェースが設定されています。
br0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.0.3 netmask 255.255.255.0 broadcast 192.168.0.255
bridge name bridge id STP enabled interfaces
br0 8000.00156d8591ec no eth0
wlan0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7271:bcff:feb1:d9cf prefixlen 64 scopeid 0x20<link>
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.200.44.147 netmask 255.255.255.128 broadcast 10.200.44.255
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::215:6dff:fe85:91ec prefixlen 64 scopeid 0x20<link>
br0には2つのインターフェース(eth0 - ローカルホームネットワークとwlan0 - ワイヤレスホームネットワーク)があります。 eth1 はインターネット接続インターフェイスで、br0 の一部ではありません。
私はmumudvbを使用してIPグループ239.100.0.1(udp / 1234)を介してマルチキャストIPTVを送信し、VLCプレーヤーを使用してLAN上の他のコンピュータからこのマルチキャストトラフィックを受信します。
eth0を介してマルチキャストを送信するように設定すると、ホームLANですべてがうまく機能しますが、ルータ自体はマルチキャストグループに参加できません。
だからbr0を介してマルチキャストを送信するように設定しましたが(もっと合理的です。その後、LAN eth0とルータ自体でマルチキャストグループに参加できます)、参加後約5分後にLANマルチキャスト接続が切断されます(何も送信されません)なし)。 IGMPメッセージ))。ただし、再参加でき、次の5分間再び機能して終了します。
br0を介してマルチキャストを送信するとパケット損失が発生しますが、eth0を介して直接送信するとパケット損失が発生しないのはなぜですか?ブリッジの一部の構成がありませんか?この期間中にどのコンテンツが期限切れになることがありますか?たとえば、ブリッジはSTPを無効にしますが、ここには影響しませんか?
ルータ自体からbr0マルチキャストグループに参加しても失われません。 eth0 を介して br0 に接続されたマシンでサブスクリプションする場合にのみ該当します。
答え1
マルチキャストにbr0を使用している場合は、IGMPクエリーを有効にする必要があります。有効にすると、IGMP プロトコルのバージョンが v3 から v2 に変更され、メンバーシップ クエリが発行され始め、削除されなくなります。
Googleで検索したところ、ブリッジでクエリを有効にするユーティリティはないようです。このユーティリティは、以下を介して/sys
実行する必要があります。
$ echo -n 1 > /sys/devices/virtual/net/br0/bridge/multicast_querier
答え2
ネットワークにIGMPクエリがなくレポートを送信しないため、IPTVはしばしば5分間中断されます。
解決策は、scapyを使用してPythonプロセスを介して一般的なIGMPクエリを送信することです(正しいIPTV VLANを使用することを忘れないでください...)
これは私にとって効果的です!
答え3
echo 0 > /sys/devices/virtual/net/br0/bridge/multicast_snooping