Résoudre les problèmes des passerelles NAT - Amazon Virtual Private Cloud

Résoudre les problèmes des passerelles NAT

Les rubriques suivantes vous aident à résoudre des problèmes courants que vous pouvez rencontrer quand vous créez ou utilisez une passerelle NAT.

Échec de la création d’une passerelle NAT

Problème

Vous créez une passerelle NAT et obtenez le statut Failed.

Note

Une passerelle NAT en échec est automatiquement supprimée, généralement en environ une heure.

Cause

Une erreur s'est produite lors de la création de la passerelle NAT. Le message sur le statut fournit la cause de l'erreur.

Solution

Pour afficher le message d'erreur, accédez à la console Amazon VPC, puis choisissez NAT Gateways (Passerelles NAT). Sélectionnez le bouton radio de votre passerelle NAT, puis recherchez Message d'état dans l'onglet Détails.

Le tableau ci-dessous répertorie les causes possibles d’échec, comme mentionné dans la console Amazon VPC. Après avoir appliqué une des étapes correctives indiquées, vous pouvez à nouveau essayer de créer une passerelle NAT.

Erreur affichée Cause Solution
Le sous-réseau ne possède pas assez d'adresses libres pour créer cette passerelle NAT Le sous-réseau que vous avez spécifié ne possède aucune adresse IP privée libre. La passerelle NAT nécessite une interface réseau avec une adresse IP privée allouée à partir de la plage du sous-réseau. Vérifiez le nombre d'adresses IP disponibles dans votre sous-réseau en accédant à la page Subnets (Sous-réseaux) de la console Amazon VPC. Vous pouvez afficher les Available IPs (Adresses IP disponibles) dans le volet des détails de votre sous-réseau. Pour créer des adresses IP libres dans votre sous-réseau, vous pouvez supprimer des interfaces réseau inutilisées ou mettre fin à des instances dont vous n'avez pas besoin.
Le réseau vpc-xxxxxxxx n'a pas de passerelle Internet attachée Une passerelle NAT doit être créée dans un VPC avec une passerelle Internet. Créez et attachez une passerelle Internet à votre VPC. Pour plus d'informations, consultez Créer et attacher une passerelle Internet.
L'adresse IP Elastic eipalloc-xxxxxxxx est déjà associée L'adresse IP Elastic que vous avez spécifiée est déjà associée à une autre ressource, et ne peut être associée à la passerelle NAT. Vérifiez les ressources associées à l'adresse IP Elastic. Accédez à la page Elastic IPs (Adresses IP Elastic) dans la console Amazon VPC et affichez les valeurs spécifiées pour l'ID d'instance ou l'ID d'interface réseau. Si vous n'avez pas besoin de l'adresse IP Elastic pour cette ressource, vous pouvez la dissocier. Sinon, vous pouvez allouer une nouvelle adresse IP Elastic à votre compte. Pour plus d'informations, consultez Utiliser des adresses IP Elastic.

Quota de passerelle NAT

Lorsque vous essayez de créer une passerelle NAT, vous obtenez l'erreur suivante.

Performing this operation would exceed the limit of 5 NAT gateways

Cause

Vous avez atteint le quota de passerelles NAT pour cette zone de disponibilité.

Solution

Si vous avez atteint le quota de cette passerelle NAT pour votre compte, vous pouvez effectuer l'une des actions suivantes :

  • Demandez une augmentation du quota de passerelles NAT par zone de disponibilité à l'aide de la console Quotas de service.

  • Vérifiez le statut de votre passerelle NAT. Un statut Pending, Available ou Deleting compte dans votre quota. Si vous avez récemment supprimé une passerelle NAT, attendez quelques minutes pour que le statut passe de Deleting à Deleted. Puis essayez de créer une nouvelle passerelle NAT

  • Si vous n'avez pas besoin que votre passerelle NAT soit dans une zone de disponibilité spécifique, essayez de créer une passerelle NAT dans une zone de disponibilité dans laquelle vous n'avez pas atteint votre quota.

Pour plus d'informations, consultez Quotas Amazon VPC.

Quota appliqué aux adresses IP Elastic

Problème

Lorsque vous essayez d'allouer une adresse IP Elastic pour votre passerelle NAT, vous obtenez l'erreur suivante.

The maximum number of addresses has been reached.

Cause

Vous avez atteint le quota d'adresses IP élastiques pour votre compte de cette Région.

Solution

Si vous avez atteint votre quota d'adresses IP Elastic, vous pouvez dissocier une adresse IP Elastic d'une autre ressource. Vous pouvez également demander une augmentation du quota d’adresses IP Elastic à l'aide de la console Quotas de service.

Zone de disponibilité non prise en charge

Problème

Lorsque vous essayez de créer une passerelle NAT, vous recevez l'erreur suivante : NotAvailableInZone.

Cause

Vous essayez peut-être de créer la passerelle NAT dans une zone de disponibilité limitée dans laquelle votre capacité de développement est limitée.

Solution

Nous ne pouvons pas prendre en charge de passerelles NAT dans ces zones de disponibilité. Vous pouvez créer une passerelle NAT dans une zone de disponibilité différente et l'utiliser pour des sous-réseaux privés dans la zone limitée. Vous pouvez également déplacer vos ressources vers une zone de disponibilité non limitée afin que vos ressources et votre passerelle NAT soient dans la même zone.

La passerelle NAT n'apparaît plus

Problème

Vous avez créé une passerelle NAT, mais elle n'est plus visible dans la console Amazon VPC.

Cause

Une erreur peut être survenue lors de la création de votre passerelle NAT et en avoir entraîné l’échec. Une passerelle NAT avec Failed comme statut est visible dans la console Amazon VPC pendant un environ une heure. Puis, au bout d'une heure, elle est automatiquement supprimée.

Solution

Consultez les informations dans Échec de la création d’une passerelle NAT, et essayez de créer une nouvelle passerelle NAT.

La passerelle NAT ne répond pas à la commande ping

Problème

Si vous essayez d'effectuer un test ping de l'adresse IP Elastic ou de l'adresse IP privée de la passerelle NAT depuis Internet (par exemple, depuis votre ordinateur familial) ou depuis une instance de votre VPC, vous n'obtenez pas de réponse.

Cause

Une passerelle NAT fait uniquement passer du trafic depuis une instance d'un sous-réseau privé vers Internet.

Solution

Pour tester si votre passerelle NAT fonctionne, consultez Tester la passerelle NAT publique.

Les instances ne peuvent pas accéder à Internet

Problème

Vous avez créé une passerelle NAT publique et suivi les étapes pour la tester, mais la commande ping échoue, ou vos instances du sous-réseau privé ne peuvent pas accéder à Internet.

Causes

L'origine du problème peut être l'une des causes suivantes :

  • La passerelle NAT n'est pas prête à traiter le trafic.

  • Vos tables de routage ne sont pas configurées correctement.

  • Vos groupes de sécurité ou listes ACL réseau bloquent le trafic entrant ou sortant.

  • Vous utilisez un protocole non pris en charge.

Solution

Vérifiez les informations suivantes :

  • Vérifiez que votre passerelle NAT est en état Available. Dans la console Amazon VPC, allez sur la page NAT Gateways (Passerelles NAT) et consultez les informations du statut dans le volet des détails. Si la passerelle NAT est en état d'échec, il y a peut-être eu une erreur quand elle a été créée. Pour plus d'informations, consultez Échec de la création d’une passerelle NAT.

  • Vérifiez que vous avez correctement configuré vos tables de routage:

    • La passerelle NAT doit être dans un sous-réseau public avec une table de routage qui route le trafic Internet vers une passerelle Internet.

    • Votre instance doit être dans un sous-réseau privé avec une table de routage qui route le trafic Internet vers la passerelle NAT.

    • Vérifiez qu'aucune autre entrée de la table de routage achemine tout ou une partie du trafic Internet vers un autre périphérique au lieu de la passerelle NAT.

  • Assurez-vous que les règles du groupe de sécurité pour votre instance privée autorisent le trafic Internet sortant. Afin que la commande ping fonctionne, les règles doivent également autoriser le trafic ICMP sortant.

    La passerelle NAT elle-même autorise le trafic sortant et le trafic reçu en réponse à une demande sortante (elle est donc avec état).

  • Assurez-vous que les listes ACL réseau qui sont associées au sous-réseau privé et aux sous-réseaux publics n'ont pas de règles qui bloquent le trafic Internet entrant ou sortant. Afin que la commande ping fonctionne, les règles doivent également autoriser le trafic ICMP entrant et sortant.

    Vous pouvez autoriser les journaux de flux à vous aider à diagnostiquer les connexions abandonnées à cause de la liste ACL réseau ou des règles du groupe de sécurité. Pour plus d'informations, consultez Journalisation du trafic IP à l’aide des journaux de flux VPC.

  • Si vous utilisez la commande ping, assurez-vous d'avoir effectué un test ping du site Web dont l'ICMP est activé. Si ICMP n'est pas activé, vous ne recevez pas de paquets de réponse. Pour le tester, exécutez la même commande ping depuis le terminal de la ligne de commande sur votre propre ordinateur.

  • Vérifiez que votre instance peut effectuer un test ping sur d'autres ressources ; par exemple, d'autres instances dans le sous-réseau privé (en supposant que les règles du groupe de sécurité le permettent).

  • Assurez-vous que votre connexion utilise uniquement un protocole TCP, UDP ou ICMP.

Échec de la connexion TCP à une destination

Problème

Certaines de vos vos connexions TCP entre des instances d'un sous-réseau privé et une destination spécifique via une passerelle NAT ont réussi, mais d'autres ont échoué ou dépassé le délai.

Causes

L'origine du problème peut être l'une des causes suivantes :

  • Le point de terminaison de destination répond avec des paquets TCP fragmentés. Les passerelles NAT ne prennent pas en charge la fragmentation IP pour TCP ou ICMP. Pour plus d'informations, consultez Comparer des passerelles NAT et des instances NAT..

  • L'option tcp_tw_recycle est activée sur le serveur distant, connu pour provoquer des problèmes en cas de connexions multiples à partir d'un appareil NAT.

Solutions

Vérifiez si le point de terminaison vers lequel vous essayez de vous connecter répond avec des paquets TCP fragmentés en procédant comme suit :

  1. Utilisez une instance d'un sous-réseau public avec une adresse IP publique pour déclencher une réponse assez large pour permettre une fragmentation depuis le point de terminaison spécifique.

  2. Utiliser l'utilitaire tcpdump pour vérifier que le point de terminaison envoie des paquets fragmentés.

    Important

    Vous devez utiliser une instance d'un sous-réseau public pour effectuer ces contrôles. Vous ne pouvez pas utiliser l'instance à partir de laquelle la connexion initiale échouait ou une instance dans un sous-réseau privé derrière une passerelle NAT ou une instance NAT.

    Les outils de diagnostic qui envoient ou reçoivent des paquets ICMP volumineux signaleront la perte de paquets. Par exemple, la commande ping -s 10000 example.com ne fonctionne pas derrière une passerelle NAT.

  3. Si le point de terminaison envoie des paquets TCP fragmentés, vous pouvez utiliser une instance NAT au lieu d'une passerelle NAT.

Si vous avez accès au serveur distant, vous pouvez vérifier si l'option tcp_tw_recycle est activée en procédant comme suit :

  1. Exécutez la commande suivante à partir du serveur.

    cat /proc/sys/net/ipv4/tcp_tw_recycle

    Si la sortie est 1, l'option tcp_tw_recycle est activée.

  2. Si tcp_tw_recycle est activé, nous recommandons de le désactiver. Si vous devez réutiliser des connexions, tcp_tw_reuse est une option plus sûre.

Si vous n'avez pas accès au serveur distant, vous pouvez tester en désactivant temporairement l'option tcp_timestamps sur une instance du sous-réseau privé. Puis connectez-vous à nouveau au serveur distant. Si la connexion aboutit, il est probable que l'échec précédent était dû au fait que tcp_tw_recycle était activé sur le serveur distant. Si possible, contactez le propriétaire du serveur distant pour vérifier si l'option est activée et demandez qu'elle soit désactivée.

La sortie traceroute n'affiche pas l'adresse IP privée de la passerelle NAT

Problème

Votre instance peut accéder à Internet, mais quand vous exécutez la commande traceroute, la sortie n'affiche pas l'adresse IP privée de la passerelle NAT.

Cause

Dans ce cas, votre instance accède à Internet en utilisant une passerelle différente, comme une passerelle Internet.

Solution

Dans la table de routage du sous-réseau dans lequel se situe votre instance, vérifiez les informations suivantes :

  • Assurez-vous qu'une route envoie le trafic Internet vers la passerelle NAT.

  • Assurez-vous qu'il n'y a pas de route plus spécifique qui envoie du trafic Internet vers d'autres périphériques, comme une passerelle réseau privé virtuel ou une passerelle Internet.

La connexion Internet est abandonnée après 350 secondes

Problème

Vos instances peuvent accéder à Internet, mais la connexion s'arrête après 350 secondes.

Cause

Si une connexion utilisant une passerelle NAT est inactive pendant 350 secondes ou plus, la connexion expire.

Lorsqu'une connexion expire, une passerelle NAT retourne un paquet RST à toutes les ressources derrière la passerelle NAT qui tentent de poursuivre la connexion (elle n'envoie pas de paquet FIN).

Solution

Pour empêcher que la connexion soit interrompue, vous pouvez initier plus de trafic sur la connexion. Sinon, vous pouvez activer keepalive TCP sur l'instance avec une valeur inférieure à 350 secondes.

La connexion IPsec ne peut pas être établie

Problème

Vous ne pouvez pas établir de connexion IPsec vers une destination.

Cause

Les passerelles NAT ne prennent pas en charge le protocole IPsec pour le moment.

Solution

Vous pouvez utiliser NAT-Traversal (NAT-T) pour encapsuler le trafic IPsec dans UDP, qui est un protocole pris en charge pour les passerelles NAT. Veillez à tester votre configuration NAT-T et IPsec pour vérifier que votre trafic IPsec n'est pas supprimé.

Impossible d'établir de nouvelles connexions

Problème

Vous avez des connexions existantes vers une destination via une passerelle NAT, mais ne pouvez pas établir de nouvelles connexions.

Cause

Vous avez peut-être atteint la limite de connexions simultanées pour une même passerelle NAT. Pour plus d'informations, consultez Principes de base d'une passerelle NAT. Si vos instances du sous-réseau privé créent un grand nombre de connexions, il se peut que vous ayez atteint cette limite.

Solution

Effectuez l'une des actions suivantes :

  • Créez une passerelle NAT par zone de disponibilité et répartissez vos clients sur ces zones.

  • Créez des passerelles NAT supplémentaires dans le sous-réseau public et divisez vos clients sur plusieurs sous-réseaux privés, chacun avec une route vers une passerelle NAT différente.

  • Limitez le nombre de connexions que vos clients peuvent créer vers la destination.

  • Utilisez la métrique IdleTimeoutCount dans CloudWatch pour surveiller les augmentations des connexions inactives. Fermez les connexions inactives pour libérer de la capacité.