ある物理インタフェースから別の物理インタフェースにソケットを再バインドするための既存のLinux/POSIX C/C++ライブラリまたはサンプルコードがありますか?ソケットを別のインタフェースに再バインドする
たとえば、物理接続Aに関連付けられたソケットでpingを送信し、そのソケットを物理接続Bに再バインドして、接続Bでpingパケットの送受信を継続したい(短いスイッチオーバ中の遅延)。
これは、セッションレスプロトコルにのみ必要です。
はありがとうアップデート:私はPPPとイーサネットデバイスで使用するためのフェイルオーバーソリューションを提供しようとしています
。
私は、iptables、NAT、ルーティングテーブルを使用して機能の90%を達成できる基本的なスクリプトを用意しています。
フェールオーバーが発生しても、セカンダリ接続でpingが送信され続けますが、ソースIPは古い接続からのものです。
私は、商用ルータで作業する数人の人と話しましたが、その提案はセカンダリインターフェイスへのソケットの再バインドです。
更新2:
これを先に指定しないとお詫び申し上げます。このソリューションはルータ上で動作します。クライアントコンピュータ上で実行されるため、pingプログラムを変更することはできません。私は単なる例としてpingを使用しました。セッションベースでない接続は、切り替えが可能でなければなりません。私はいくつかの商用ルータでこの機能をテストしましたが、動作します。残念ながら、そのソフトウェアは独自のものですが、さまざまな会話やテストから、フェールオーバー時にソケットを再バインドしていることがわかりました。
私はおそらくここで何かが不足していますが、ソケットを閉じてもう一方のインターフェイスにバインドしてみましたか? – Duck
Thanks Duck、 私はそれを試して何が起こるか見るつもりです。 –