Comment résoudre les problèmes de connectivité lors de l'utilisation d'une passerelle NAT sur mon VPC privé ?

Date de la dernière mise à jour : 12/04/2022

J'utilise une passerelle NAT pour connecter des instances d'un sous-réseau privé Virtual Private Cloud (Amazon VPC) à Internet. Les instances présentent des problèmes de connexion intermittents. Comment résoudre ce problème ?

Brève description

Les ressources du sous-réseau privé peuvent rencontrer des problèmes intermittents de délai d'expiration de connectivité pour les raisons suivantes :

  • Règles de liste de contrôle d'accès (ACL) réseau
  • Erreur ErrorPortAllocation sur la passerelle NAT.
  • Épuisement du port de l'instance cliente.

Les ressources du sous-réseau privé peuvent connaître une baisse soudaine de la connexion pour la raison suivante :

  • Erreur IdleTimeoutCount pour libérer de la capacité.

Les ressources du sous-réseau privé peuvent être ralenties pour la raison suivante :

  • Limitation de bande passante par passerelle NAT.

Résolution

Les ressources du sous-réseau privé rencontrent des problèmes intermittents de délai d'expiration de connectivité

Règles ACL réseau

Vérifiez que l'ACL réseau associée au sous-réseau public sur lequel la passerelle NAT est présente autorise le trafic provenant de la plage de ports éphémères (1024-65535). Si l'ACL réseau n'autorise qu'un sous-ensemble de la plage de ports éphémères et que les instances du sous-réseau privé utilisent un port source en dehors de cette plage, le trafic est abandonné. Pour plus d'informations sur la façon de configurer les ACL réseau, voir Règles ACL réseau recommandées pour un VPC avec des sous-réseaux public et privé (NAT).

Erreur ErrorPortAllocation sur la passerelle NAT

Pour plus d'informations sur cette erreur, voir Comment résoudre l'erreur ErrorPortAllocation sur ma passerelle NAT ?

Épuisement du port de l'instance cliente

Vérifiez si les instances clientes du sous-réseau privé ont atteint leurs limites de connexion au niveau du système d'exploitation. Pour voir le nombre de connexions actives, exécutez la commande netstat :

Linux :

netstat -ano | grep ESTABLISHED | wc --l
netstat -ano | grep TIME_WAIT | wc --l

Windows :

netstat -ano | find /i "estab" /c
netstat -ano | find /i "TIME_WAIT" /c

Si la commande précédente renvoie une valeur proche de la plage de ports locaux autorisée (le port source pour les connexions clientes), il se peut que le port soit épuisé.

Pour réduire l'épuisement du port, procédez comme suit :

  • Résolvez tous les problèmes au niveau de l'application qui drainent les connexions disponibles.
  • Augmentez la plage de ports locaux (éphémères) du système d'exploitation en exécutant la commande suivante :
net.ipv4.ip_local_port_range = 1025 61000

Les ressources du sous-réseau privé subissent des pertes de connexion soudaines

Erreur IdleTimeoutCount pour libérer de la capacité

Si une connexion qui utilise une passerelle NAT est inactive pendant 350 secondes ou plus, la connexion expire et vous constaterez un pic sur la métrique IdleTimeoutCount. Lorsqu'une connexion expire, une passerelle NAT renvoie un paquet RST à toutes les ressources situées derrière la passerelle NAT qui tente de poursuivre la connexion. La passerelle NAT n'envoie pas de paquet FIN.

Solution de contournement pour l'erreur IdleTimeoutCount :

  • Utilisez la métrique IdleTimeoutCount dans Amazon CloudWatch pour surveiller les augmentations des connexions inactives. Configurez CloudWatch Contributor Insights pour obtenir une visibilité des principaux contributeurs des clients dont les processus sont à l'état inactif.
  • Fermez les connexions inactives des clients pour libérer de la capacité.
  • Augmentez le trafic à travers la connexion.
  • Activez la fonction TCP keepalive sur l'instance dont la valeur est inférieure à 350 secondes.

Les ressources du sous-réseau privé connaissent un ralentissement du trafic

Limitations de bande passante sur la passerelle NAT

  • Une passerelle NAT prend en charge une bande passante de 5 Gbit/s, qui augmente automatiquement jusqu'à 45 Gbit/s. Si la somme combinée des métriques de débit réseaux sur toutes les instances derrière la passerelle NAT est supérieure ou égale à 45 Gbit/s en rafales, le trafic ralentit.
  • En utilisant les métriques CloudWatch, la bande passante est calculée comme suit : (BytesOutToDestination + BytesOutToSource + BytesInFromDestination + BytesInFromSource) x 8/période en secondes.

Solution de contournement pour les limitations de bande passante par passerelle NAT :

Si votre bande passante sur la passerelle NAT est supérieure à 45 Gbit/s, vous pouvez diviser les ressources entre plusieurs sous-réseaux et créer plusieurs passerelles NAT.