Raison de fin de session TCP vieillie dans les pare-feu de la série VM derrière AWS Gateway Load Balancer
16097
Created On 11/25/22 16:07 PM - Last Modified 02/02/24 06:03 AM
Symptom
- Les sessions TCP passant par l’un des multiples pare-feu de la série de machines virtuelles derrière un équilibreur de charge de passerelle (GWLB) affichent la « raison de la fin de session » comme « vieillie » sous Surveiller les journaux > le trafic >
- La capture de paquets à l'étape de réception sur le pare-feu de la série VM qui reçoit le trafic de l'AWS GWLB et crée la session d'origine (PA-VM-1) montre l'établissement correct de (i) la sous-couche GENEVE tunnel entre le GWLB (172.21.200.78) et l'interface non approuvée du pare-feu (172.21.200.84), (ii) l'établissement de liaison TCP à 3 voies et (iii) l'échange TLS, ainsi que l’envoi et la réception d’une partie du trafic de données d’application et d’accusés de réception TCP (ACK) entre le client (172.21.43.170) et le serveur (XXX.18.226.52) en dehors de l’environnement AWS et face à l’Internet public, dans le cadre de la session TCP de superposition.
- À un moment donné, le flux de paquets s’arrête (par exemple, parce que le client est inactif). Si le client ou le serveur atteint la limite de délai d’expiration de sa session TCP (par exemple, 400 secondes pour le serveur ci-dessous), il enverra un message TCP FIN-ACK pour mettre fin à la session TCP.
- Toutefois, le délai d'expiration de la session TCP d'AWS GWLB est de 350 secondes, de sorte que le tunnel GENEVE de sous-couche avec PA-VM-1 pour cette session TCP aura déjà été détruit. Par conséquent, le TCP FIN-ACK d'origine du serveur et les retransmissions ultérieures (car il n'a pas de nouvelles du client) ne seront pas visibles sur la capture de paquets du PA-VM-1 à l'étape de transmission.
- À un moment donné, le client enverra une autre requête au serveur, mais AWS GWLB la considérera comme une toute nouvelle session TCP. Le GWLB choisira donc un pare-feu dans son groupe cible, qui peut être ou non le même pare-feu que celui dans lequel la session TCP a été créée à l’origine, et créera un nouveau tunnel GENEVE sous-jacent avec ledit pare-feu. Par exemple, dans ce cas, il sélectionne un pare-feu différent, PA-VM-2. Comme PA-VM-2 n’a jamais vu l’établissement de liaison TCP 3 voies initial, il abandonnera les paquets envoyés par le client au serveur. Cela peut être vu dans la capture simultanée des paquets de PA-VM-2 à celle de PA-VM-1 à la fois aux étapes de réception et d'abandon.
- Pendant ce temps, la session TCP d’origine dans PA-VM-1 finira par expirer et apparaîtra comme « Raison de fin de session » « vieillie » sous Surveiller le trafic > > journaux. Aucune session ne sera affichée dans les journaux de trafic de PA-VM-2, étant donné que l'établissement de liaison TCP à 3 voies d'origine n'a pas été capturé et qu'une session n'aura donc pas été créée.
Environment
- Amazon Web Services (AWS)
- VPC grand public connectés via Transit Gateway à un VPC de sécurité
- Le VPC de sécurité contient plusieurs pare-feu de la série VM dans différentes zones de disponibilité (AZ) derrière un équilibreur de charge de passerelle (GWLB)
- Chaque zone de disponibilité du VPC de sécurité contient un point de terminaison d’équilibrage de charge de passerelle (GWLBE)
- Pare-feu de la série VM (PAN-OS 10.2.2-h2)
Cause
Le délai d'expiration de la session TCP d'AWS GWLB est de 350 secondes, tandis que celui du client et du serveur est plus élevé.
Resolution
- Réduire le délai d'expiration de la session TCP du client ou du serveur à une valeur inférieure à celle d'AWS GWLB (par exemple, 325 secondes) ; ou
- Activez les messages TCP Keep-alive sur le client, définis sur une valeur inférieure à celle d'AWS GWLB (par exemple, 325 secondes).
NOTE: La réduction du délai d'expiration TCP des pare-feu de la série VM par rapport à sa valeur par défaut globale de 3 600 secondes ou du délai d'expiration TCP par défaut spécifique à l'application affectée sous Objets > Applications (par exemple, 1 800 secondes pour SSL) à une valeur inférieure à celle de l'AWS GWLB (par exemple, 325 secondes) ne résoudra pas le problème, car le pare-feu de la série VM met également fin à la session TCP en mode silencieux (c'est-à-dire sans envoyer de messages TCP RESET au client et au serveur). tout comme AWS GWLB. Par conséquent, le client et le serveur ne sauront pas que la session TCP a été terminée. Ce comportement du pare-feu ne peut pas être modifié.
Additional Information
DOCUMENTATION PALO ALTO NETWORKS Quand
le pare-feu Palo Alto Networks envoie-t-il une réinitialisation TCP (RST) pour mettre fin à une session ?
Meilleures
pratiques pour le déploiement de Gateway Load Balancer