私のサーバーソフトウェアとクライアントソフトウェアは両方ともLinuxで実行されます。
サーバーはマルチキャストをブロードキャストし、クライアントはマルチキャストをリッスンします。
クライアントを別のサイトに移行する必要があります。
残念ながら、2つのサイト間でのマルチキャストは許可されていません:
2つのサイト間でマルチキャストを伝達する方法は?
-スルーTCPまたはUDP?
-どのツールをお勧めしますか?
-レイテンシーはどうですか?
Cisco構成(GRE)について良い回答を受け取りました。
しかし、ネットワークチームの1つは、それを監視/維持することを望んでいません。
=>送信が途絶えると、サポートチームは理解と修復に多くの時間を費やします。
=>では、GREの最良の代替手段は何でしょうか?
Linuxカーネル機能に基づくソリューションはありますか
またはネットワークカード機能について? (低遅延が重要です)
使用例をいただければ幸いです:-)
現在:同じサイト上のサーバーとクライアント
---(現在のネットワーク図http://ditaa.org/ditaa/render?grid=%2B ---------%2B +%2B ---------%2B%0D% 0A%7C + Server ++%7C +%7C + Client ++%7C%0D%0A%7C + senders +++%7C +%7C + listens +%7C%0D%0A%7Cmulticast%7C +%7Cmulticast%7C%0D%0A%7C+++ IP1 +++%7C +%7C++ IP2 ++++%7C%0D%0A%2B ----%2B ----%2B +%2B ---%2B -----%2B%0D%0A +++++%7C++++++++++%7C %0D%0A +++++%2B%2B ---------%2B%0D%0A +++++%7CLAN + of + site + 1%0D%0A ++++++%7C%0D%0A ++++++%2B ------- -------------- WAN
将来:サーバーとクライアント、それぞれが異なるサイトにある
マルチキャストチャネル:225.1.0.1:6666
あなたの質問のグラフィックを理解するかどうかはわかりませんが、私が理解している限り、マルチキャストパケットをTCP?ツール指向のソリューションにはsocat
:
たとえば、マルチキャストチャネルは224.1.0.1:6666です。
サーバーホスト(IP = SS.SS.SS.SS):
$socat -v UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:CC.CC.CC.CC,fork TCP:destination.hostname:4444
クライアントホスト(IP = CC.CC.CC.CC):
$socat -v TCP-LISTEN:4444,fork UDP4-DATAGRAM:224.1.0.1:6666,range=SS.SS.SS.SS/24
socat
マニュアルでパラメータを調整する方法を確認させてください。マルチキャストグループとネットワークインターフェイスのIPアドレスがわかれば、非常に簡単です。 :-)
一部のルーターでは、マルチキャストトラフィックをIPネットワークリンク間でトンネリングできます。トンネルの両端はそれに応じて構成する必要があります。特にシスコは、GREリンクを介したマルチキャストトラフィックのトンネリングをサポートしています。これを実現する方法についての記事があります Cisco
可能ですが、TCPのようなストリームプロトコルを使用することは、複数の輻輳実装が(TCPから1回、およびプログラムが試行する別の時間から)スマートな方法でUDPを利用する) [1] 。
あなたが持っている可能性は、トンネルソリューションです。 OpenVPN + TAP(UDPトランスポート付き)、GRE、またはL2TPなど。 [IPIP/IP6IP6トンネリングも機能するのだろうか。]
Linuxカーネル指向のソリューション:
mrouted
は、マルチキャストパケットを取得し、それらを転送する場所をカーネルに指示するデーモンです。特定のパッチと適切なオプションを使用してLinuxカーネルを再コンパイルする必要があります。次に、mrouted
デーモンを構成します。詳細については、 Linux-Mrouted-MiniHOWTO.html をご覧ください。
良い参考資料は マルチキャストハウツー 、良い読み物です。
それが役に立てば幸い。
スティーブミラーはあなたの問題のために良い チュートリアル を投稿しました。これがお役に立てば幸いです。