Je reçois toujours l'erreur ErrorPortAllocation sur ma passerelle NAT et plusieurs connexions simultanées à mon hôte de destination échouent. Comment résoudre cette erreur d'allocation de port ?
Brève description
Les passerelles NAT prennent en charge jusqu'à 55 000 connexions simultanées pour chaque destination. Si ce seuil est dépassé, les nouvelles connexions à cette destination échouent alors et la métrique ErrorPortAllocation pour la passerelle NAT augmente dans Amazon CloudWatch.
Pour corriger ce problème, recherchez les destinations et les clients source qui provoquent ces erreurs. Suivez ensuite les étapes de la section Résolution Résoudre les erreurs d'allocation de ports.
Conditions préalables :
- Assurez-vous que le journal de flux du VPC est activé au niveau du VPC ou vers les sous-réseaux où la passerelle NAT est utilisée.
- Assurez-vous que le journal de flux du VPC est configuré pour être livré à CloudWatch.
Solution
Trouver les clients source et leurs destinations de connexion
1. Ouvrez la console CloudWatch.
2. Dans le volet de navigation, sélectionnez Insights (Analyse).
3. Pour Groupe de journaux, choisissez le groupe de journaux dans lequel les journaux de flux sont enregistrés.
4. Trouvez où va le trafic :
filter (srcAddr like 'NAT gateway Private IP' and dstAddr not like 'xxx.xxx.')
| stats count(*) as numaccept by dstAddr
| sort numaccept desc
| limit 10
Les résultats montrent l'IP de destination présentant le plus grand nombre de réponses pendant la période où vous avez reçu les erreurs d'allocation de port.
Remarque : remplacez xxx.xxx. par les deux premiers octets du CIDR de votre VPC. En outre, remplacez l'IP privée de la passerelle NAT par l'IP privée de votre passerelle NAT.
5. Recherchez les clients source qui envoient du trafic vers la destination :
filter (dstAddr like 'Public IP from above filter' and srcAddr like 'xxx.xxx.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
Remarque : remplacez xxx.xxx. par les deux premiers octets du CIDR de votre VPC. Remplacez également l'IP publique du filtre ci-dessus par l'IP de destination que vous avez reçue de la requête précédente.
Résoudre les erreurs d'allocation de port
- Créez une passerelle NAT dans chaque zone de disponibilité, puis répartissez vos clients sur plusieurs zones de disponibilité. Acheminez le trafic vers Internet à l'aide d'une passerelle NAT dans la même zone de disponibilité que votre client afin de réduire les frais liés aux données entre plusieurs zones de disponibilité.
- Si vous remarquez une augmentation de la métrique IdleTimeoutCount dans CloudWatch, puis configurez votre application ou votre instance privée de manière à fermer les connexions inactives. Cela permet à la passerelle NAT d'allouer le port source aux nouvelles connexions.
- Limitez le nombre de connexions que vos clients peuvent établir vers une même destination.
- Pour le trafic dirigé vers une adresse IP publique Amazon Simple Storage Service (Amazon S3) ou Amazon DynamoDB dans la même région AWS, utilisez un point de terminaison d'un VPC de passerelle. Aucuns frais horaires ou de traitement de données ne s'appliquent pour l'utilisation de points de terminaison d'un VPC de passerelle.
Informations connexes
Exemples de requêtes
Surveillance des passerelles NAT à l'aide d'Amazon CloudWatch