TCP-Keepalive- und Idle-Timeout-PCAP-Analyse: Firewalls, NAT, Load Balancer und langlebige Verbindungen

So analysieren Sie TCP-Keepalive-Pakete, Leerlauf-Timeout, NAT-Sitzungsablauf, Firewall-Verbindungsabbrüche, Load-Balancer-Resets, langlebige API-Verbindungen und Beweise für die Paketerfassung.

TCP-Keepalive, Leerlauf-Timeout, Firewall-Timeout, Nat-Timeout, Load Balancer zurückgesetzt, langlebige Verbindung, PCAP-Analyse

Langlebige TCP-Verbindungen können nach Minuten oder Stunden der Inaktivität fehlschlagen. SSH-Sitzungen frieren ein. Datenbankverbindungen zurückgesetzt. WebSocket-Verbindungen werden unterbrochen. Interleaved-RTSP-TCP-Streams werden nach Leerlaufzeiten angehalten. API-Clients sehen eine kaputte Pipe. Benutzer suchen nach „TCP Keepalive PCAP“, „Firewall-Leerlauf-Timeout“, „NAT-Sitzungs-Timeout“, „Load-Balancer-Reset-Leerlaufverbindung“ und „langlebige TCP-Verbindungsabbrüche“, da der Anwendungsfehler oft lange nach der tatsächlichen Timeout-Entscheidung auftritt.

Die PCAP-Chirurgie ist nützlich, da die Untersuchung von Leerlaufzeitüberschreitungen vom Timing abhängt. Sie benötigen das letzte echte Datenpaket, alle TCP-Keepalive-Prüfungen, ACKs, FIN/RST-Pakete und die genaue Leerlaufzeit.

Was TCP-Keepalive ist

TCP-Keepalive ist ein optionaler Mechanismus, der bei einer inaktiven Verbindung kleine Tests sendet, um zu überprüfen, ob der Peer noch erreichbar ist. Es kann auch den NAT- und Firewall-Status aufrechterhalten, wenn Probes häufiger auftreten als das Middlebox-Timeout.

Doch für moderne Infrastrukturen sind Ausfälle oft zu langsam. Der Leerlaufzustand einer Firewall kann nach 60 Sekunden ablaufen, während der TCP-Keepalive-Betrieb des Betriebssystems viel später starten kann.

Symptome einer Zeitüberschreitung im Leerlauf

Zu den häufigsten Symptomen gehören:

  • Die Verbindung funktioniert, schlägt dann nach einer festgelegten Leerlaufzeit fehl.
  • Die erste Anfrage nach dem Leerlauf wird zurückgesetzt.
  • WebSocket trennt die Verbindung nach genau 60 Sekunden.
  • Der Datenbankpool weist veraltete Verbindungen auf.
  • SSH friert durch NAT ein.
  • Load Balancer sendet RST nach Zeitüberschreitung.
  • Der Client sendet Daten nach dem Leerlauf und erhält keine Antwort.

Der genaue Zeitpunkt ist der Schlüssel.

FIN vs. RST vs. Silent Drop

Middleboxen und Endpunkte können ungenutzte Verbindungen auf unterschiedliche Weise schließen:

  • FIN: anmutiger Abschluss.
  • RST: fehlgeschlagener Abschluss.
  • Silent Drop: kein Paket; späterer Verkehr wird ignoriert.

Wenn eine Firewall den Status stillschweigend verwirft, denken beide Endpunkte möglicherweise, dass die Verbindung noch besteht. Das nächste Datenpaket löst erneute Übertragungen oder ein Reset-Verhalten aus.

Keepalive-Beweise

Suchen Sie in einer Ablaufverfolgung nach kleinen Paketen während Leerlaufzeiten. TCP-Keepalive-Probes verwenden häufig Sequenznummern direkt vor dem nächsten erwarteten Byte. Ein Analysator kann sie als Keepalive kennzeichnen.

Fragen:

  • Wurden Keepalives verschickt?
  • Wie oft?
  • Hat der Peer sie bestätigt?
  • Wurde eine Middlebox nach einem Keepalive zurückgesetzt?
  • Haben die Untersuchungen zu spät begonnen?
  • Ist die Verbindung vor dem Keepalive-Intervall abgebrochen?

Load Balancer und Proxys

Load Balancer erzwingen häufig Leerlaufzeitüberschreitungen. Wenn der Client davon ausgeht, dass eine Verbindung 30 Minuten übersteht, der Load Balancer jedoch inaktive Verbindungen nach 60 Sekunden schließt, muss die Anwendung Heartbeats senden oder die Verbindung wiederherstellen.

Der Paketnachweis kann zeigen, wer das Schließen oder Zurücksetzen gesendet hat und wie lange nach den letzten Daten vergangen ist.

Checklist

Verwenden Sie diesen Workflow:

  1. Identifizieren Sie die langlebige TCP-Verbindung.
  2. Markieren Sie das letzte Anwendungsdatenpaket.
  3. Messen Sie die Leerlaufzeit vor dem Ausfall.
  4. Suchen Sie nach TCP-Keepalive-Probes.
  5. Überprüfen Sie, ob die Sonden bestätigt sind.
  6. FIN- oder RST-Absender identifizieren.
  7. Wenn kein Schließen angezeigt wird, suchen Sie nach stillem Abbruch und erneuten Übertragungen.
  8. Vergleichen Sie das Timeout mit den Firewall-/Load-Balancer-Einstellungen.
  9. Behalten Sie beim Trimmen das richtige Timing bei.
  10. Mit Anwendungs-Heartbeats korrelieren.

Endgültige Diagnose

TCP-Leerlauffehler sind Zeitprobleme. Der Paketnachweis kann das Schließen eines Endpunkts, den Ablauf des Firewall-/NAT-Status, eine Zeitüberschreitung des Lastausgleichsdiensts, fehlendes Keepalive, zu langsames Keepalive und stillen Abfall unterscheiden.

Die PCAP-Chirurgie trägt dazu bei, das Leerlaufintervall und den Beweis für das Schließen/Zurücksetzen zu bewahren, sodass langlebige Verbindungsausfälle präzise erklärt werden können.