tcptrack zeigt SYN_SENT-Verbindungen an. Bedeutet das, dass das SYN-Paket den Server erreicht hat?


8

Unser Server hatte ein ernstes Problem mit dem Verbindungszeitlimit, daher verfolgen wir die TCP-Verbindung mit TCPTACK

Wir haben herausgefunden, dass tcptrack die Verbindung anzeigt, wenn der Client eine Verbindung zum Server herstellt, sich jedoch im Status SYN_SENT befindet und netstat -natnichts anzeigt. (tcptrack & netstat läuft alle auf dem Server)

  1. Bedeutet dies, dass die Syn-Anforderung den Server erreicht hat? und kein syn / ack wurde zurückgeschickt?
  2. warum konnte der tcptrack diese verbindung melden, netstat jedoch nicht?
  3. Was könnte das Problem sein, dass ein allgemeiner Apache keine Verbindung zum Client herstellen konnte?

Ich habe einen Bench-Test abim selben Intranet mit der angegebenen Netzwerkkarte durchgeführt. Dabei wurden 10000 gleichzeitige Verbindungen und 400000 Anfragen verarbeitet

ps: das passiert nicht jedes mal, aber es ist viel passiert

pps: Gibt es gute Tools, um festzustellen, wo die TCP-Verbindung unterbrochen wurde?


Ich habe nicht erwähnt, dass tcptrack & netstat alle auf dem Server ausgeführt werden
xpu

Antworten:


5

Dies bedeutet, dass die SYN vom Client gesendet wurde und entweder den Server nicht erreicht hat, der Server nicht darauf geantwortet hat oder der Server sich dafür entschieden hat, darauf zu antworten, ohne den Überblick zu behalten. Der Server muss nicht jede von ihm gesendete SYN-Antwort verfolgen (und kann SYN-Cookies verwenden ), da diese möglicherweise gefälscht werden und das Risiko von Denial-of-Service-Angriffen besteht.


/ proc / sys / net / ipv4 / tcp_syncookies ist auf 1
xpu

Hat das Syn-Paket den Server trotzdem erreicht? tcptrack zeigt syn_sent connection, aber netstat zeigt etwas anderes, welches sagt die Wahrheit? Die TCP-Verbindung konnte nicht hergestellt werden, da der Server die Syn-Anforderung nicht empfangen oder nicht beantwortet hat.
xpu

eine andere Möglichkeit ist: der Server nicht darauf geantwortet habe noch (dh die Zeit für den Server lassen das Paket, verarbeiten, zu empfangen und die Antwort zurückschicken) (IOW, wenn Sie ein paar „SYN_SENT“ in netstat sehen - an, es könnte nur sein, dass Sie zufällig die Verbindung juste abfragen, bevor der Server die Zeit hatte zu antworten)
Olivier Dulac

2

Wenn ich "unerwünschten" Datenverkehr erhalte, wie bei Datenverkehr, der speziell durch IPTABLES-Regeln blockiert wurde (wie beim DROPped), zeigt der tcptrack die eingehende IP-Adresse zusammen mit dem Status SYN_SENT (zusammen mit dem Zeitpunkt der Verbindung und der Datenrate von) an 0b / s). Diese Auflistung bleibt einige Sekunden dort, bis sie gelöscht wird.

Es ist also möglich, dass die Verbindungen, die Sie sehen, aus irgendeinem Grund blockiert sind. Die IP-Adressen, die mit SYN_SENT geliefert werden, können aufgrund von IPTABLES-DROPs gesperrt werden. Sie können IPTABLES für eine Weile deaktivieren und prüfen, ob es fortgesetzt wird. Wenn ja, stellen Sie sicher, dass die Adressen, die blockiert werden, sein sollen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.