私は 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