web-dev-qa-db-ja.com

tcptrackはSYN_SENT接続を示しますが、これはSYNパッケージがサーバーに到達したことを意味しますか?

サーバーに深刻な接続タイムアウト問題が発生したため、tcptrackを使用してtcp接続を追跡します

クライアントがサーバーへの接続を開始した場合、tcptrackは接続を示しますが、SYN_SENTステータスであり、netstat -natは何も表示しません。 (tcptrack&netstatはすべてサーバーで実行されます)

  1. これは、synリクエストがサーバーに到達したことを意味しますか?そして、syn/ackは返送されませんでしたか?
  2. tcptrackがこの接続を報告できるのにnetstatができないのはなぜですか?
  3. 一般的なApacheがクライアントとの接続を確立できなかった問題は何でしょうか?

同じイントラネットでabを使用してベンチテストを行い、指定したNICに対して、10000の同時接続と400000のリクエストを処理しました。

pS:これは毎回発生するわけではありませんが、頻繁に発生しました

pps:tcp接続が失われた場所を追跡するための優れたツールはありますか?

8
xpu

これは、SYNがクライアントによって送信され、サーバーに到達しなかったか、サーバーがそれに応答しなかったか、サーバーが追跡せずにそれに応答することを選択したことを意味します。サーバーは、送信するすべてのSYN応答を追跡する必要はありません(そして SYN cookie を使用できます)。これは、なりすましの可能性があるため、サービス拒否攻撃のリスクが生じるためです。

5
David Schwartz

(DROPされているなど)IPTABLESルールによって特にブロックされているトラフィックのように、「不要な」トラフィックが発生している場合、tcptrackはSYN_SENTステータスとともに(接続時間とデータレートとともに)着信IPアドレスを表示します0b /秒)。そのリストは、クリアされるまで数秒間そのままです。

そのため、表示されている接続が何らかの理由でブロックされている可能性があります。 SYN_SENTを伴うIPアドレスは、IPTABLES DROPが原因でロックアウトされる可能性があります。 IPTABLESを少し無効にして、それが続くかどうかを確認できます。その場合は、ブロックされているアドレスが想定されていることを確認してください。

2
Rookie