TCP接続の一方を閉じて、もう一方を開いたままにする方法は? (FINまたはRSTは送信されません)

TCP接続の一方を閉じて、もう一方を開いたままにする方法は? (FINまたはRSTは送信されません)

SolarisクライアントはTCPソケットを介してLinuxサーバーに接続されていますが、FINまたはRSTパケットを送信せずに接続されたクライアントの接続が突然切断されるシナリオを再現しようとしています。これは、クライアントとサーバー間のネットワークケーブルを引っ張る結果と非常によく似ています。

ネットワークケーブルを引っ張らずにこの状況を再現できるコマンドや一連のコマンドはSolarisにありますか?

ベストアンサー1

その特定の接続に一致するipfilter削除ルールを設定してから使用する必要があります。tcpdropあるいは、Solarisにソケットを消去するように指示するのと似ています。

ipfilter 削除ルールを最初に設定する必要があります。それ以外の場合、最初の受信パケットが到着したtcpdropときにカーネルはRSTパケットに応答し続けることができます。tcpdropSolaris側で独自の接続タイムアウトを許可できる場合、これは必ずしも必要ではありません。

文書化されていないカーネルインタフェースを使用するため、設計されたバージョンtcpdropよりも最新バージョンの Solaris での動作は保証されません。

維持したい同じホストに他のトラフィックがない場合、もう1つの可能性はサーバーホストにブラックホールパスを追加することです。ただし、単一のTCP接続を削除するのと比較すると、これは、同じホストへの他のすべての接続を終了して、偶発的な破損を引き起こすやや鈍いツールです。

また見なさい:https://www.oracle.com/technetwork/systems/networking/tcpdrop-jsp-135583.html

おすすめ記事