NAT public

Le NAT public permet à vos instances de machines virtuelles (VM) Google Cloud sans adresse IP publique de communiquer avec Internet à l'aide d'un ensemble d'adresses IP publiques partagées. Cloud NAT utilise une passerelle NAT publique qui alloue un ensemble d'adresses IP externes et de ports sources à chaque VM qui utilise la passerelle pour créer des connexions sortantes vers Internet.

Configuration et workflow NAT de base du public

Le schéma suivant illustre une configuration NAT publique de base:

Exemple de traduction NAT publique
Exemple de traduction NAT publique (cliquez pour agrandir)

Dans cet exemple :

  • La passerelle nat-gw-us-east est configurée pour s'appliquer à la plage d'adresses IP principale de subnet-1 dans la région us-east1. Une VM dont l'interface réseau ne possède pas d'adresse IP externe peut envoyer du trafic vers Internet en utilisant son adresse IP interne principale ou une plage d'adresses IP d'alias appartenant à la plage d'adresses IP principale de subnet-1, 10.240.0.0/16.

  • Une VM dont l'interface réseau ne possède pas d'adresse IP externe et dont l'adresse IP interne principale se trouve dans subnet-2 ne peut pas accéder à Internet, car aucune passerelle NAT publique ne s'applique à une plage d'adresses IP de ce sous-réseau.

  • La passerelle nat-gw-eu est configurée pour s'appliquer à la plage d'adresses IP principale de subnet-3 dans la région europe-west1. Une VM dont l'interface réseau ne possède pas d'adresse IP externe peut envoyer du trafic vers Internet en utilisant son adresse IP interne principale ou une plage d'adresses IP d'alias appartenant à la plage d'adresses IP principale de subnet-3, 192.168.1.0/24.

Exemple de workflow NAT public

Dans le schéma précédent, une VM avec l'adresse IP interne principale 10.240.0.4, sans adresse IP externe, doit télécharger une mise à jour à partir de l'adresse IP externe 203.0.113.1. Dans le schéma, la passerelle nat-gw-us-east est configurée comme suit:

  • Nombre minimal de ports par instance : 64
  • Deux adresses IP de traduction d'adresses réseau (NAT) attribuées manuellement: 192.0.2.50 et 192.0.2.60
  • NAT fourni pour la plage d'adresses IP principale de subnet-1

Le NAT public suit la procédure de réservation de port afin de réserver les tuples d'adresse IP source et de port source suivants pour chacune des VM du réseau. Par exemple, la passerelle NAT publique réserve 64 ports sources pour la VM avec l'adresse IP interne 10.240.0.4. L'adresse IP NAT 192.0.2.50 détient 64 ports non réservés. Par conséquent, la passerelle réserve l'ensemble suivant de 64 tuples d'adresse IP et de port source NAT pour cette VM :

  • 192.0.2.50:34000 jusqu'à 192.0.2.50:34063

Lorsque la VM envoie un paquet au serveur de mise à jour 203.0.113.1 sur le port de destination 80 via le protocole TCP, voici ce qui se produit :

  • La VM envoie un paquet de requête avec les attributs suivants :

    • Adresse IP source : 10.240.0.4, l'adresse IP interne principale de la VM
    • Port source : 24000, le port source éphémère choisi par le système d'exploitation de la VM
    • Adresse de destination : 203.0.113.1, l'adresse IP externe du serveur de mise à jour
    • Port de destination : 80, le port de destination pour le trafic HTTP vers le serveur de mise à jour
    • Protocole : TCP
  • La passerelle nat-gw-us-east effectue la traduction d'adresse réseau source (SNAT) en sortie, en réécrivant l'adresse IP source et le port source NAT du paquet de requête. Le paquet modifié est envoyé à Internet si le réseau cloud privé virtuel (VPC) dispose d'une route pour la destination 203.0.113.1 dont le saut suivant est la passerelle Internet par défaut. Une route par défaut répond généralement à cette exigence.

    • Adresse IP source NAT : 192.0.2.50, provenant de l'un des tuples d'adresse IP source et de port source NAT réservés de la VM.
    • Port source : 34022, un port source inutilisé de l'un des tuples de port source réservés de la VM
    • Adresse de destination : 203.0.113.1, inchangée
    • Port de destination : 80, inchangé
    • Protocole : TCP, inchangé
  • Lorsque le serveur de mise à jour envoie un paquet de réponse, ce paquet arrive sur la passerelle nat-gw-us-east avec les attributs suivants :

    • Adresse IP source : 203.0.113.1, l'adresse IP externe du serveur de mise à jour
    • Port source : 80, la réponse HTTP du serveur de mise à jour
    • Adresse de destination : 192.0.2.50, correspondant à l'adresse IP source NAT d'origine du paquet de requête
    • Port de destination : 34022, correspondant au port source du paquet de requête
    • Protocole : TCP, inchangé
  • La passerelle nat-gw-us-east effectue la traduction d'adresse réseau de destination (DNAT) sur le paquet de réponse, en réécrivant l'adresse et le port de destination du paquet de réponse pour que celui-ci soit transmis à la VM :

    • Adresse IP source : 203.0.113.1, inchangée
    • Port source : 80, inchangé
    • Adresse de destination : 10.240.0.4, l'adresse IP interne principale de la VM
    • Port de destination : 24000, correspondant au port source éphémère d'origine du paquet de requête
    • Protocole : TCP, inchangé

Spécifications

Spécifications générales

Vous pouvez configurer une passerelle NAT publique pour fournir une NAT à Internet pour les paquets envoyés à partir des éléments suivants:

  • Adresse IP interne principale de l'interface réseau de la VM Compute Engine, à condition que l'interface réseau ne dispose pas d'une adresse IP externe. Si une adresse IP externe est attribuée à l'interface réseau, Google Cloud applique automatiquement une NAT de type un à un aux paquets dont les sources correspondent à l'adresse IP interne principale de l'interface, car l'interface réseau satisfait aux conditions d'accès à Internet de Google Cloud. L'existence d'une adresse IP externe sur une interface est toujours prioritaire et assure toujours un NAT de type un à un, sans utiliser le NAT public.

  • Une plage d'adresses IP d'alias attribuée à l'interface réseau de la VM. Même si une adresse IP externe est attribuée à l'interface réseau, vous pouvez configurer une passerelle NAT publique pour fournir une NAT aux paquets dont les sources proviennent d'une plage d'adresses IP d'alias de l'interface. Une adresse IP externe sur une interface n'effectue jamais de NAT de type un à un pour les adresses IP d'alias.

  • Pour les clusters Google Kubernetes Engine (GKE), Public NAT peut fournir un service même si le cluster dispose d'adresses IP externes dans certaines circonstances. Pour en savoir plus, consultez la section Interaction GKE.

Le NAT public autorise les connexions sortantes et les réponses entrantes à ces connexions. Chaque passerelle NAT publique exécute la NAT source à la sortie, puis la NAT de destination pour les paquets de réponses établis.

Le NAT public n'autorise pas les requêtes entrantes non sollicitées provenant d'Internet, même si des règles de pare-feu autorisent ces requêtes. Pour en savoir plus, consultez les RFC applicables.

Chaque passerelle NAT publique est associée à un seul réseau VPC, une seule région et un seul Cloud Router. La passerelle NAT publique et le routeur Cloud Router fournissent un plan de contrôle. Ils ne sont pas impliqués dans le plan de données. Les paquets ne transitent donc pas par la passerelle NAT publique ni par Cloud Router.

Routes et règles de pare-feu

Le NAT public s'appuie sur des routes statiques personnalisées dont les sauts suivants correspondent à la passerelle Internet par défaut. Pour utiliser pleinement une passerelle NAT publique, votre réseau cloud privé virtuel a besoin d'une route par défaut dont le saut suivant est la passerelle Internet par défaut. Pour plus d'informations, reportez-vous à la section Interaction avec les routes.

Le NAT public n'exige aucune règle de pare-feu Cloud. Les règles de pare-feu sont appliquées directement aux interfaces réseau des VM Compute Engine, et non aux passerelles NAT publiques.

Vous n'avez pas besoin de créer de règles de pare-feu spéciales autorisant les connexions vers ou depuis des adresses IP NAT. Lorsqu'une passerelle NAT publique fournit un NAT à l'interface réseau d'une VM, les règles de pare-feu de sortie applicables sont évaluées en tant que paquets pour cette interface réseau avant la NAT. Les règles de pare-feu d&#Ingress sont évaluées après le traitement des paquets par le NAT.

Applicabilité de la plage d'adresses IP du sous-réseau

Vous pouvez configurer la passerelle NAT publique pour fournir une NAT à l'adresse IP interne principale de l'interface réseau de la VM, aux plages d'adresses IP d'alias ou aux deux. Pour effectuer cette configuration, choisissez les plages d'adresses IP de sous-réseau auxquelles la passerelle doit s'appliquer.

Vous pouvez configurer une passerelle NAT publique pour fournir une NAT aux éléments suivants:

  • Plages d'adresses IP principales et secondaires de tous les sous-réseaux de la région. Une seule passerelle NAT publique fournit une NAT aux adresses IP internes principales et à toutes les plages d'adresses IP d'alias des VM éligibles dont les interfaces réseau utilisent un sous-réseau de la région. Cette option utilise exactement une passerelle NAT par région.

  • Plages d'adresses IP principales de tous les sous-réseaux de la région. Une seule passerelle NAT publique fournit une NAT aux adresses IP internes principales et aux plages d'adresses IP d'alias des plages d'adresses IP principales de sous-réseau des VM éligibles dont les interfaces réseau utilisent un sous-réseau de la région. Vous pouvez créer des passerelles NAT supplémentaires dans la région afin de fournir une NAT pour les plages d'adresses IP d'alias des sous-réseaux IP.

  • Liste de sous-réseaux personnalisés : Une passerelle NAT publique unique fournit un NAT aux adresses IP internes principales et à toutes les plages d'adresses IP d'alias des VM éligibles dont les interfaces réseau utilisent un sous-réseau d'une liste de sous-réseaux spécifiés.

  • Plages d'adresses IP de sous-réseau personnalisées. Vous pouvez créer autant de passerelles NAT publiques que nécessaire, sous réserve des quotas et limites de NAT public. Vous choisissez les plages d'adresses IP principales ou secondaires du sous-réseau à diffuser par chaque passerelle.

Bande passante

L'utilisation d'une passerelle NAT publique ne modifie pas la quantité de bande passante sortante ou entrante qu'une VM peut utiliser. Pour connaître les spécifications de bande passante, qui varient selon le type de machine, consultez la section Bande passante réseau dans la documentation Compute Engine.

VM dotées de plusieurs interfaces réseau

Si vous configurez une VM pour avoir plusieurs interfaces réseau, chaque interface doit se trouver dans un réseau VPC distinct. Par conséquent :

  • Une passerelle NAT publique ne peut s'appliquer qu'à une seule interface réseau d'une VM. Des passerelles NAT distinctes peuvent fournir un NAT à la même VM, où chaque passerelle s'applique à une interface distincte.
  • L'interface d'une VM à plusieurs interfaces réseau peut disposer d'une adresse IP externe, ce qui la rend inéligible pour le NAT public, tandis qu'une autre de ses interfaces peut être éligible au NAT si cette interface ne possède pas d'adresse IP externe et que vous avez configuré une passerelle NAT publique à appliquer à la plage d'adresses IP de sous-réseau appropriée.

Adresses IP NAT et ports

Lorsque vous créez une passerelle NAT publique, vous pouvez demander à la passerelle d'allouer automatiquement des adresses IP externes régionales. Vous pouvez également attribuer manuellement un nombre fixe d'adresses IP externes régionales à la passerelle.

Pour une passerelle NAT publique avec l'allocation automatique d'adresses IP NAT, tenez compte des points suivants:

  • Vous pouvez sélectionner les niveaux de service réseau (niveau Premium ou niveau standard) auxquels la passerelle NAT publique alloue les adresses IP.
  • Lorsque vous modifiez le niveau d'une passerelle NAT publique qui a automatiquement alloué des adresses IP NAT, Google Cloud libère toutes les adresses IP attribuées pour cette passerelle et supprime toutes les allocations de port.

    Un nouvel ensemble d'adresses IP du nouveau niveau sélectionné est automatiquement attribué, et de nouvelles allocations de ports sont fournies à tous les points de terminaison.

Pour une passerelle NAT publique donnée, vous pouvez également attribuer manuellement des adresses IP du niveau Premium ou du niveau Standard, ou les deux, sous certaines conditions.

Pour en savoir plus sur l'attribution d'adresses IP NAT, consultez Adresses IP NAT publiques.

Vous pouvez configurer le nombre de ports sources que chaque passerelle NAT publique réserve sur chaque VM pour laquelle elle fournit des services NAT. Vous pouvez configurer l'allocation de ports statique sur laquelle le même nombre de ports est réservé pour chaque VM, ou l'allocation de ports dynamique, où le nombre de ports réservés peut varier entre les limites minimale et maximale que vous spécifiez.

Les VM pour lesquelles la NAT doit être fournie sont déterminées par les plages d'adresses IP du sous-réseau que la passerelle est configurée pour diffuser.

Pour en savoir plus sur les ports, consultez la section Ports.

Documents RFC applicables

Le NAT public prend en charge le mappage indépendant du point de terminaison et le filtrage dépendant du point de terminaison défini dans le document RFC 5128. Vous pouvez activer ou désactiver le mappage indépendant des points de terminaison. Par défaut, le mappage indépendant des points de terminaison est désactivé lorsque vous créez une passerelle NAT.

Le mappage indépendant du point de terminaison implique que si une VM envoie des paquets à partir d'une adresse IP interne donnée et d'une paire de ports vers plusieurs destinations différentes, la passerelle mappe tous ces paquets sur la même adresse IP et paire de ports NAT, quelle que soit la destination des paquets. Pour en savoir plus sur le mappage indépendant des points de terminaison et ses implications, consultez la section Réutilisation simultanée de ports et mappage indépendant des points de terminaison.

Le filtrage indépendant des points de terminaison implique que les paquets de réponse provenant d'Internet ne sont autorisés à entrer que s'ils proviennent d'une adresse IP et d'un port sur lesquels une VM a déjà envoyé des paquets. Le filtrage est dépendant du point de terminaison, quel que soit le type de mappage des points de terminaison. Cette fonctionnalité est toujours activée et ne peut pas être configurée par l'utilisateur.

Pour plus d'informations sur la relation entre les ports et les connexions, consultez la section Ports et connexions et l'exemple de flux NAT.

Le NAT public est un NAT en cône à restriction de port tel que défini dans le document RFC 3489.

NAT-T (NAT traversal)

Si le mappage indépendant du point de terminaison est activé, le NAT public est compatible avec les protocoles de balayage NAT courants tels que STUN et Turn si vous déployez vos propres serveurs STUN ou turn:

  • STUN (Session Traversal Utilities for NAT, RFC 5389) permet la communication directe entre les VM protégées par la NAT lorsqu'un canal de communication est établi.
  • TURN (Traversal Using Relays around NAT, document RFC 5766) permet la communication entre les VM protégées par la NAT via un troisième serveur qui possède une adresse IP externe. Chaque VM se connecte à l'adresse IP externe du serveur et celui-ci retransmet la communication entre les deux VM. TURN est plus stable, mais consomme plus de bande passante et de ressources.

Expiration de la NAT

Les passerelles NAT publiques utilisent les délais avant expiration suivants. Vous pouvez modifier les valeurs du délai avant expiration par défaut pour réduire ou augmenter la fréquence de réutilisation des ports. Chaque valeur de délai avant expiration est un équilibre entre l'utilisation efficace des ressources NAT publiques et les éventuelles perturbations des connexions, flux ou sessions actifs.

Délai avant expiration Description NAT NAT par défaut Configurable

Délai d'inactivité du mappage UDP

RFC 4787 REQ-5

Spécifie le délai, en secondes, après lequel les flux UDP doivent cesser d'envoyer du trafic aux points de terminaison pour que les mappages NAT publics soient supprimés.

Le délai d'inactivité du mappage UDP affecte deux points de terminaison qui s'arrêtent de s'envoyer du trafic. Cela affecte également les points de terminaison qui mettent plus de temps à répondre ou si la latence du réseau est plus élevée.

Vous pouvez augmenter le délai avant expiration spécifié pour réduire la fréquence de réutilisation des ports. Plus la valeur du délai d'expiration est élevée, plus les ports sont conservés pour des connexions plus longues et contre les pauses du trafic sur un socket UDP spécifique.

30 seconds Yes

Délai d'inactivité de la connexion TCP établie

RFC 5382 REQ-5

Spécifie le délai d'inactivité de la connexion avant la suppression des mappages NAT publics.

Le délai d'inactivité de la connexion TCP établie affecte les points de terminaison qui mettent plus de temps à répondre ou si la latence du réseau est plus élevée.

Vous pouvez augmenter le délai avant expiration si vous souhaitez ouvrir des connexions TCP et garder les connexions ouvertes pendant une longue période sans mécanisme de message keepalive.

1 200 secondes (20 minutes) Yes

Délai d'inactivité de la connexion TCP transitoire

RFC 5382 REQ-5

Indique le délai (en secondes) pendant lequel les connexions TCP peuvent rester ouvertes avant la suppression des mappages NAT publics.

Le délai d'inactivité de la connexion TCP transitoire affecte le point de terminaison lorsqu'un point de terminaison externe prend plus de temps que la durée spécifiée ou en cas de latence réseau accrue. Contrairement au délai d'inactivité de la connexion TCP établie, le délai d'inactivité de la connexion TCP transitoire n'affecte que les connexions à moitié ouvertes.

30 seconds

Remarque:Quelle que soit la valeur définie pour ce délai d'inactivité, un délai de 30 secondes supplémentaires peut être nécessaire pour qu'une adresse IP source et un tuple de port source NAT publics puissent être utilisés pour traiter une nouvelle connexion.

Yes

Délai d'inactivité de la connexion TCP TIME_WAIT

RFC 5382 REQ-5

Indique le délai (en secondes) pendant lequel une connexion TCP entièrement fermée est conservée dans les mappages NAT publics après l'expiration de la connexion.

Le délai avant expiration TCP TIME_WAIT protège vos points de terminaison internes contre la transmission de paquets non valides appartenant à une connexion TCP fermée et retransmis.

Vous pouvez réduire le délai avant expiration pour améliorer la réutilisation des ports NAT publics, au risque de recevoir des paquets retransmis à partir d'une connexion non liée précédemment fermée.

120 secondes

Remarque:Quelle que soit la valeur définie pour ce délai d'inactivité, un délai de 30 secondes supplémentaires peut être nécessaire pour qu'une adresse IP source et un tuple de port source NAT publics puissent être utilisés pour traiter une nouvelle connexion.

Yes

Délai d'inactivité du mappage ICMP

RFC 5508 REQ-2

Indique la durée, en secondes, après laquelle les mappages NAT publics du protocole de contrôle Internet (ICMP) sans flux de trafic sont fermés.

Le délai d'inactivité du mappage ICMP a une incidence sur un point de terminaison lorsqu'il répond plus longtemps que le délai spécifié ou lorsqu'il augmente la latence du réseau.

30 seconds Yes

Étapes suivantes