サーバーに深刻な接続タイムアウト問題が発生したため、tcptrackを使用してtcp接続を追跡します
クライアントがサーバーへの接続を開始した場合、tcptrackは接続を示しますが、SYN_SENTステータスであり、netstat -nat
は何も表示しません。 (tcptrack&netstatはすべてサーバーで実行されます)
同じイントラネットでab
を使用してベンチテストを行い、指定したNICに対して、10000の同時接続と400000のリクエストを処理しました。
pS:これは毎回発生するわけではありませんが、頻繁に発生しました
pps:tcp接続が失われた場所を追跡するための優れたツールはありますか?
これは、SYNがクライアントによって送信され、サーバーに到達しなかったか、サーバーがそれに応答しなかったか、サーバーが追跡せずにそれに応答することを選択したことを意味します。サーバーは、送信するすべてのSYN応答を追跡する必要はありません(そして SYN cookie を使用できます)。これは、なりすましの可能性があるため、サービス拒否攻撃のリスクが生じるためです。
(DROPされているなど)IPTABLESルールによって特にブロックされているトラフィックのように、「不要な」トラフィックが発生している場合、tcptrackはSYN_SENTステータスとともに(接続時間とデータレートとともに)着信IPアドレスを表示します0b /秒)。そのリストは、クリアされるまで数秒間そのままです。
そのため、表示されている接続が何らかの理由でブロックされている可能性があります。 SYN_SENTを伴うIPアドレスは、IPTABLES DROPが原因でロックアウトされる可能性があります。 IPTABLESを少し無効にして、それが続くかどうかを確認できます。その場合は、ブロックされているアドレスが想定されていることを確認してください。