マルチキャスト グループに参加するための Linux 組み込みプログラムまたはオープン ソース プログラム?

マルチキャスト グループに参加するための Linux 組み込みプログラムまたはオープン ソース プログラム?

私は tcpdump を使用してマルチキャスト パケットをキャプチャしており、tcpdump がパケットを「認識」できるように、マルチキャスト フィードに参加するためのカスタム プログラムをコーディングする必要がありました。代わりに、netcat または他のアプリケーションでこの機能を実行できるかどうか知りたいのですが。

答え1

この回答は撤回されました。

答え2

socat を使用してグループをサブスクライブできます。これは、L2 と L3 の両方のサブスクリプションでうまく機能します。

socat STDIO  UDP4-DATAGRAM:239.101.1.68:8889,\
  ip-add-membership=239.0.1.68:10.100.201.1

239.0.1.68これは、アドレスを持つインターフェースを使用してグループをサブスクライブします10.100.201.1。このUDP4-DATAGRAM:239.101.1.68:8889ビットは、socat がすべてを stdout にも出力しないように、データを受信しないダミー グループと udp ポートでパケットをリッスンします。代わりに、ペイロードを stdout に転送する場合は、そのグループとポートを、サブスクライブする実際のグループとポートに変更します。

ip-add-membership複数のグループに同時にサブスクライブするには、複数のコンマ区切りのディレクティブを指定できます。socat が終了すると、IGMP サブスクリプションもクリアされるようです。

答え3

答えに加えてsocat、ここに重い解決策があります -smcrouteこのアプリケーションはデーモンとして実行され、オンザフライで制御できます。

smcroutectl join eth0 239.1.1.27
smcroutectl leave eth0 239.1.1.27

答え4

FRR の pimd では、次の操作を実行できます。

interface vlan2000
 ip address A.B.C.D/24
 ip igmp
 ip igmp join 239.0.110.219
 ip igmp join 239.0.110.220
 ip igmp version 2

関連情報