マルチキャストグループを作成してメッセージを送信するには?

マルチキャストグループを作成してメッセージを送信するには?

3台のコンピュータで構成されたマルチキャストグループを作成し、すべてのコンピュータでpingを実行したいと思います。 Linux CLIでこれをどのように実行できますか?

ベストアンサー1

あなたはそれを使用することができますsocatドキュメントに記載されているように、これを達成するためのコマンドは次のとおりです。

例 3: マルチキャストピア

マルチキャスト送信者と受信者はsocatアドレスに結合できます。これにより、プロセスは対称的に通信するローカルネットワーク上の異なるホストで開始できるため、各プロセスは他のすべてのプロセスから受信したメッセージを送信できます。

socat STDIO UDP4-DATAGRAM:224.1.0.1:6666,bind=:6666,range=192.168.10.0/24,ip-add-membership=224.1.0.1:192.168.10.2

このコマンドはホスト 192.168.10.2 に有効です。そのアドレスをホストの特定のインターフェイスアドレスに合わせて調整します。

したがって、ソースの検証やインターフェイスの選択に気を使わずに(したがって、IPv4のデフォルトパスに従い、ルータはLAN側を使用するために追加のオプションが必要になる場合があります)、より簡単な例として、各システムでこのコマンドを実行するか:reuseaddrマルチキャストSecondaryを使用します。ローカル対応レプリケーションデータ)同じLAN内で通信を実現するには:

socat - UDP4-DATAGRAM:239.255.255.245:6666,bind=:6666,ip-add-membership=239.255.255.245:0.0.0.0,reuseaddr

もちろん、マルチキャストは標準ルーターによってルーティングされません。複数のLANに拡張する必要がある場合は、マルチキャストルーターを設定する必要があり、これはこの回答の範囲外です。

IPv6だけをサポートする簡単なツールは見つけるのが難しいです。 IPv6アドレス変換を使用する上記の例では、同じ効果を得るために元のsetockopt値を渡す必要があります。最初のシステムインタフェースのアドレスはff05::db8:1:2です(次へルオ)なので、インデックスは2(システムデフォルト)です。IPv6はエラーが発生しやすいです。)、これは読みにくいコマンドです。

socat - 'UDP6-DATAGRAM:[ff05::db8:1:2]:6666,bind=:6666,setsockopt=41:17:i2,setsockopt=41:20:xff0500000000000000000db800010002i2,reuseaddr'

おすすめ記事