あるプロセスのサーバーへの接続がダウンし、別のサーバーへの接続がアップしているシナリオをシミュレートしようとしています。私の場合、ネットワークケーブルを引っ張るだけでは機能しません。これは、稼働状態を維持するために別のプロセス接続が必要なためです。
この種の仕事のためのツールはありますか?私はWindowsを使用しています。ありがとう!
あるプロセスのサーバーへの接続がダウンし、別のサーバーへの接続がアップしているシナリオをシミュレートしようとしています。私の場合、ネットワークケーブルを引っ張るだけでは機能しません。これは、稼働状態を維持するために別のプロセス接続が必要なためです。
この種の仕事のためのツールはありますか?私はWindowsを使用しています。ありがとう!
これをシミュレートできるレイヤーがいくつかあります。最も簡単なのは、2 つのサーバーが 2 つの異なる TCP ポートでリッスンしている場合です。その場合、2 つの tcp プロキシを実行し、障害をシミュレートするときに 1 つを停止/一時停止できます。Windows の場合、tcpTraceを使用してこれを行うことをお勧めします。
もう 1 つのオプションは、物理 NIC にブリッジされる 2 つの仮想 NIC に 2 つのサーバーをバインドすることです。もちろん、2 つの物理 NIC がある場合は、各サーバー プロセスを異なる物理 NIC にバインドできます。
下位レベルでは、WAN シミュレーターを実行できます。ほとんどのシミュレーターでは、特定のタイプのトラフィックまたは特定のポートに影響を与えることができます。そのようなシミュレーターの 1 つがPacketstormです。
私がお勧めするもう 1 つの方法は、デバッガーを 1 つのプロセスにアタッチし、そのプロセス上のすべてのスレッドをデバッガーで停止することです。多くの場合、プロセスは終了しませんが、ガベージ コレクションまたはループでスタックします。ソケットが閉じないため、多くの「高可用性」ソリューションは自動的にフェイルオーバーしません。
1つのアプローチは、テストの目的で関連するネットワーク接続コードをモックすることです。この場合、接続がダウンした場合に通常どおりに返されるようにモックを作成することをお勧めします。
マシンでスリープ/休止状態モードを使用できる場合の貧乏人のアプローチ:
各接続は許可エラーですぐに失敗するため、ネットワークの停止をシミュレートしないことに注意してください。ただし、接続を確立するプロセスが妨げられます。