Linuxで稼働しているuPnPデバイス(ReadyMedia)が他のデバイスから検索できなくなった件とその対処法2019/01/11CentOSLinuxReadyMedia(MiniDLNA)ネットワークLAN内に建てているミュージックストリーミングサーバ(ReadyMedia)が、なんかいつの間にかデバイスとして探索できなくなっていて困っていました。IPアドレス/ポート番号を直打ちすればReadyMediaのコンテンツへアクセスはできるのですが、どうもuPnPによるデバイスの探索のみがうまくいっていないようでした。原因がわかったのでメモしておきます。SnoopingこのReadyMediaサーバにはKVMも立てており、NICは仮想マシン用にブリッジデバイスとして動作させていました。Snoopingが有効になっており、uPnPのデバイス探索用のマルチキャストパケットが届かなくなっていたことが原因でした。IGMPはマルチキャストを管理するL3のプロトコルです。マルチキャストを送受信するホストは、マルチキャストグループに参加する必要があります。そのグループに参加するよってことを近くのルータに伝えるのがIGMPです。IGMPによって特定のホストがグループに所属していることがわかったルータは、そのグループのマルチキャストアドレス宛に届いたパケットを、そのホストがいるセグメントへ向かってルーティングします。することでセグメントをまたいだマルチキャストが可能となっているようです。マルチキャストはブロードキャストドメイン全体に配送されます。配下の全ホストがマルチキャストパケットを受信するそうです。Snoopingだそうです。ここまでよくわかってない。他のデバイスからのuPnPデバイス探索用のマルチキャストパケットをドロップしてしまっていたというのが原因だと思います。Snoopingを無効化します。一時的な設定は/sys以下に直書き。br0はそのLinux機のブリッジデバイス名に読み替えてください。/sys/devices/virtual/net/br0/bridge/multicast_snooping1永続的な設定を行う場合、/etc/sysctl.d以下に設定ファイルを作成して再読み込み。sysctlの-pオプションは/etc/sysctl.confのみしか再読み込みされないため、/etc/sysctl.dに作った設定ファイルは--systemで再読み込みします。Snoopingは無効化する必要があります。IGMPについて全然よくわかってなかったので何となく勉強になりました。