Der Grund für das Ende der TCP-Sitzung ist in Firewalls der VM-Serie hinter AWS Gateway Load Balancer veraltet
16095
Created On 11/25/22 16:07 PM - Last Modified 02/02/24 06:02 AM
Symptom
- TCP-Sitzungen, die eine der mehreren Firewalls der VM-Serie hinter einem Gateway Load Balancer (GWLB) durchlaufen, zeigen unter "Überwachung > Protokolle > Datenverkehr" den "Grund für das Ende der Sitzung" als "veraltet" an
- Die Paketerfassung in der Empfangsphase auf der Firewall der VM-Serie, die den Datenverkehr vom AWS GWLB empfängt und die ursprüngliche Sitzung (PA-VM-1) erstellt, zeigt die korrekte Einrichtung von (i) dem zugrunde liegenden GENEVE-Tunnel zwischen dem GWLB (172.21.200.78) und der nicht vertrauenswürdigen Schnittstelle der Firewall (172.21.200.84), (ii) dem TCP-3-Wege-Handshake und (iii) dem TLS-Austausch, sowie das Senden und Empfangen eines Teils des Anwendungsdatenverkehrs und der TCP-Bestätigungen (ACK) zwischen dem Client (172.21.43.170) und dem Server (XXX.18.226.52) außerhalb der AWS-Umgebung und mit Blick auf das öffentliche Internet als Teil der Overlay-TCP-Sitzung.
- Irgendwann stoppt der Paketfluss (z.B. weil sich der Client im Leerlauf befindet). Wenn Client oder Server das Zeitlimit für TCP-Sitzungen erreicht haben (z. B. 400 Sekunden für den Server unten), senden sie eine TCP-FIN-ACK-Nachricht, um die TCP-Sitzung ordnungsgemäß zu beenden.
- Das TCP-Sitzungs-Timeout des AWS GWLB beträgt jedoch 350 Sekunden, sodass der zugrunde liegende GENEVE-Tunnel mit PA-VM-1 für diese TCP-Sitzung bereits abgerissen wurde. Daher werden die ursprüngliche TCP-FIN-ACK des Servers und nachfolgende erneute Übertragungen (da er keine Rückmeldung vom Client erhält) in der Paketerfassung von PA-VM-1 in der Übertragungsphase nicht angezeigt.
- Zu einem bestimmten Zeitpunkt sendet der Client eine weitere Anforderung an den Server, aber die AWS GWLB betrachtet sie als brandneue TCP-Sitzung. Die GWLB wählt daher in ihrer Zielgruppe eine Firewall aus, die mit der Firewall, in der die TCP-Sitzung ursprünglich erstellt wurde, identisch sein kann oder auch nicht, und erstellt einen neuen GENEVE-Tunnel mit dieser Firewall. In diesem Fall wird z. B. eine andere Firewall, PA-VM-2, ausgewählt. Da PA-VM-2 den anfänglichen TCP-3-Wege-Handshake nie gesehen hat, werden die vom Client an den Server gesendeten Pakete verworfen. Dies zeigt sich in der gleichzeitigen Paketerfassung von PA-VM-2 mit der von PA-VM-1 sowohl in der Empfangs- als auch in der Verwerfungsphase.
- In der Zwischenzeit tritt bei der ursprünglichen TCP-Sitzung in PA-VM-1 schließlich eine Zeitüberschreitung auf und wird unter " Überwachen > Datenverkehrs- > Protokolle" als "veraltet" angezeigt. In den Datenverkehrsprotokollen von PA-VM-2 wird keine Sitzung angezeigt, da der ursprüngliche 3-Wege-TCP-Handshake nicht erfasst wurde und daher keine Sitzung erstellt wurde.
Environment
- Amazon Web Services (AWS)
- Consumer-VPCs, die über Transit Gateway mit einer Sicherheits-VPC verbunden sind
- Die Sicherheits-VPC enthält mehrere Firewalls der VM-Serie in verschiedenen Availability Zones (AZ) hinter einem Gateway Load Balancer (GWLB)
- Jede Availability Zone in der Security VPC enthält einen Gateway Load Balancer Endpoint (GWLBE)
- Firewall der VM-Serie (PAN-OS 10.2.2-h2)
Cause
Die TCP-Sitzungszeitüberschreitung von AWS GWLB beträgt 350 Sekunden, während die von Client und Server höher ist.
Resolution
- Reduzieren Sie die TCP-Sitzungszeitüberschreitung des Clients oder des Servers auf einen Wert, der kleiner ist als der der AWS GWLBs (z. B. 325 Sekunden). oder
- Aktivieren Sie TCP-Keep-Alive-Nachrichten auf dem Client, die auf einen Wert festgelegt sind, der kleiner als der der AWS GWLBs ist (z. B. 325 Sekunden).
ANMERKUNG: Das Reduzieren der TCP-Zeitüberschreitung der Firewalls der VM-Serie von der globalen Standardeinstellung von 3.600 Sekunden oder der Standard-TCP-Zeitüberschreitung für die betroffene Anwendung unter Objekte > Anwendungen (z. B. 1.800 Sekunden für SSL) auf einen Wert kleiner als der der AWS GWLB (z. B. 325 Sekunden) wird das Problem nicht beheben, da die Firewall der VM-Serie die TCP-Sitzung auch im Hintergrund beendet (d. h. ohne TCP RESET-Nachrichten an Client und Server zu senden). genau wie die AWS GWLB. Daher wissen sowohl der Client als auch der Server nicht, dass die TCP-Sitzung beendet wurde. Dieses Firewall-Verhalten kann nicht geändert werden.
Additional Information
PALO ALTO NETWORKS DOKUMENTATION
Wann sendet die Palo Alto Networks Firewall einen TCP-Reset (RST), um eine Sitzung zu beenden?
AWS-DOKUMENTATION
Bewährte Methoden für die Bereitstellung von Gateway Load Balancer