Public NAT

Le NAT public permet à vos instances de machine virtuelle (VM) de communiquer avec Internet en allouant un ensemble d'adresses IPv4 externes partagées et de ports sources à chaque VM qui utilise le NAT public pour créer des connexions sortantes vers Internet. Google Cloud

Avec le NAT public, les instances de VM qui ne disposent pas d'adresses IPv4 externes peuvent communiquer avec des destinations IPv4 sur Internet. Le NAT public permet également à vos instances de VM disposant d'adresses IPv6 externes ou internes de se connecter à des destinations IPv4 sur Internet (Preview).

Spécifications

Le NAT public est compatible avec la traduction d'adresse réseau (NAT) pour les éléments suivants:

  • De l'IPv4 à l'IPv4, ou NAT44. Pour en savoir plus, consultez la section NAT44 dans le NAT public.

  • De l'IPv6 vers l'IPv4, ou NAT64 (bêta). Le NAT public est compatible avec NAT64 pour les instances de VM Compute Engine. Pour les nœuds GKE, le trafic sans serveur et les NEG Internet régionaux, le NAT public ne traduit que le trafic IPv4. Pour en savoir plus, consultez NAT64 dans le NAT public.

Spécifications générales

Pour les paquets sources IPv4, vous pouvez configurer le NAT public pour fournir une NAT aux paquets envoyés depuis les ressources suivantes:

  • 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 Google Cloud conditions d'accès à Internet. L'existence d'une adresse IP externe sur une interface est toujours prioritaire et effectue toujours une 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 Cloud NAT pour le NAT public afin de 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), le NAT public peut fournir le service même si le cluster dispose d'adresses IP externes dans certaines circonstances. Pour en savoir plus, consultez la section Interaction GKE.

Pour les paquets sources IPv6, vous pouvez configurer le NAT public pour fournir un NAT pour les paquets envoyés depuis la plage d'adresses /96 externe ou interne de l'interface réseau IPv6 uniquement de la VM (Preview).

Le NAT public autorise les connexions sortantes et les réponses entrantes à destination de ces connexions. Chaque passerelle Cloud NAT pour le NAT public effectue une NAT source en sortie et une NAT de destination pour les paquets de réponses établis.

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

Chaque passerelle Cloud NAT pour le NAT public est associée à un seul réseau VPC, une seule région et un seul routeur Cloud. La passerelle Cloud NAT et le routeur Cloud Router fournissent un plan de contrôle. Ils ne sont pas impliqués dans le plan de données. Par conséquent, les paquets ne passent pas par la passerelle Cloud NAT ou le routeur Cloud Router.

Routes et règles de pare-feu

Le NAT public s'appuie sur des routes dont les sauts suivants correspondent à la passerelle Internet par défaut. Une route par défaut répond généralement à cette exigence. Pour en savoir plus, consultez la section Interactions avec les routes.

Public NAT ne comporte aucune exigence de règle Cloud NGFW. Les règles de pare-feu sont appliquées directement aux interfaces réseau des VM Compute Engine, et non aux passerelles Cloud NAT pour la NAT publique.

Vous n'avez pas besoin de créer de règles de pare-feu spéciales autorisant les connexions vers ou depuis les adresses IP NAT. Lorsqu'une passerelle Cloud NAT pour la NAT publique fournit une NAT pour l'interface réseau d'une VM, les règles de pare-feu de sortie applicables sont évaluées comme des paquets pour cette interface réseau avant la NAT. Les règles de pare-feu d'entrée sont évaluées après que les paquets ont été traités par la NAT.

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

Vous pouvez configurer une passerelle Cloud NAT pour la NAT publique afin de fournir une NAT pour les plages d'adresses de sous-réseau IPv4, les plages d'adresses de sous-réseau IPv6 ou les deux. Pour les plages d'adresses de sous-réseau IPv4, la passerelle traduit le trafic provenant de l'adresse IP interne principale de l'interface réseau de la VM, des plages d'adresses IP d'alias ou des deux. Pour les plages d'adresses de sous-réseau IPv6, la passerelle traduit le trafic provenant de la plage d'adresses IPv6 /96 externe ou interne de l'interface réseau (Preview).

Pour les plages d'adresses de sous-réseau IPv4, vous pouvez configurer la passerelle Cloud NAT pour fournir une NAT aux éléments suivants:

  • Plages d'adresses IPv4 principales et secondaires de tous les sous-réseaux de la région. Une seule passerelle Cloud NAT 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 IPv4 dans la région.

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

  • Liste de sous-réseaux personnalisés. Une seule passerelle Cloud NAT 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 IPv4 à partir d'une liste de sous-réseaux spécifiés.

  • Plages d'adresses IPv4 de sous-réseau personnalisées. Vous pouvez créer autant de passerelles Cloud NAT pour Public NAT que nécessaire, à condition de respecter les quotas et limites de Public NAT. Vous choisissez les plages d'adresses IP principales ou secondaires du sous-réseau qui doivent être utilisées par chaque passerelle.

Pour les plages d'adresses de sous-réseau IPv6, vous pouvez configurer la passerelle Cloud NAT pour fournir une NAT aux éléments suivants (version Preview):

  • Plages d'adresses IPv6 externes et internes de tous les sous-réseaux de la région. Une seule passerelle Cloud NAT fournit une NAT pour toutes les plages d'adresses IPv6 externes et internes de la région.
  • Liste de sous-réseaux personnalisés. Une seule passerelle Cloud NAT fournit la NAT pour les plages d'adresses IPv6 externes et internes des sous-réseaux que vous spécifiez.

Plusieurs passerelles Cloud NAT

Vous pouvez disposer de plusieurs passerelles Cloud NAT pour le NAT public dans la même région d'un réseau VPC si l'une des conditions suivantes est remplie:

  • Chaque passerelle est configurée pour un sous-réseau différent.

  • Dans un même sous-réseau, chaque passerelle est configurée pour une plage d'adresses IP différente. Vous pouvez mapper une passerelle Cloud NAT pour le NAT public à un sous-réseau ou à une plage d'adresses IP spécifique à l'aide d'un mappage Cloud NAT personnalisé.

Tant que vos passerelles NAT mappées ne se chevauchent pas, vous pouvez créer autant de passerelles Cloud NAT pour Public NAT que nécessaire, à condition de respecter les quotas et limites de Public NAT. Pour en savoir plus, consultez la section Limites des passerelles Cloud NAT.

Bande passante

L'utilisation d'une passerelle Cloud NAT pour le NAT public 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 en fonction du type de machine, consultez la section Bande passante réseau de la documentation Compute Engine.

VM dotées de plusieurs interfaces réseau

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

  • Une passerelle Cloud NAT pour le NAT public ne peut s'appliquer qu'à une seule interface réseau d'une VM. Des passerelles Cloud NAT distinctes pour le NAT public peuvent fournir une NAT à la même VM, où chaque passerelle s'applique à une interface distincte.
  • Une interface d'une VM à plusieurs interfaces réseau peut avoir une adresse IPv4 externe, ce qui rend cette interface inéligible au NAT public, tandis qu'une autre de ses interfaces peut être éligible au NAT si elle ne dispose pas d'adresse IPv4 externe et que vous avez configuré une passerelle Cloud NAT pour que le NAT public s'applique à la plage d'adresses IP de sous-réseau appropriée. Pour IPv6, les adresses IPv6 externes et internes sont acceptées (Preview).

Adresses IP NAT et ports

Lorsque vous créez une passerelle Cloud NAT pour le NAT public, 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 Cloud NAT pour le NAT public avec allocation automatique d'adresses IP NAT, tenez compte des points suivants:

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

    Un nouvel ensemble d'adresses IP de la tranche sélectionnée est automatiquement alloué, et de nouvelles allocations de ports sont fournies à tous les points de terminaison.

Pour une passerelle Cloud NAT donnée pour le NAT public, vous pouvez également attribuer manuellement des adresses IP de niveau Premium ou Standard, ou les deux, sous réserve de certaines conditions.

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

Vous pouvez configurer le nombre de ports sources que chaque passerelle Cloud NAT pour le NAT public réserve sur chaque VM à laquelle elle doit fournir des services NAT. Vous pouvez configurer l'allocation de ports statique, où 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 de 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 est compatible avec le mappage indépendant des points de terminaison et le filtrage dépendant du point de terminaison, tel que 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 des points de terminaison est activé, le NAT public est compatible avec les protocoles NAT-T 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

Le NAT public définit des délais avant expiration pour les connexions de protocole. Pour en savoir plus sur ces délais avant expiration et leurs valeurs par défaut, consultez la section Délais avant expiration NAT.

NAT44 dans Public NAT

Le schéma suivant illustre une configuration NAT publique de base pour le trafic IPv4:

Exemple de traduction IPv4 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 est située dans subnet-2 ne peut pas accéder à Internet, car aucune passerelle Cloud NAT n'est appliquée à aucune 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

Dans le diagramme précédent, une VM avec une 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 diagramme, la passerelle nat-gw-us-east est configurée comme suit:

  • Nombre minimal de ports par instance : 64
  • Deux adresses IP 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 pour réserver les tuples d'adresse IP NAT sources et de ports sources suivants pour chacune des VM du réseau. Par exemple, la passerelle Cloud NAT pour le NAT public 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 du paquet de requête. Le paquet modifié est envoyé à Internet si le réseau cloud privé virtuel (VPC) a une route pour la destination 203.0.113.1 dont le saut suivant correspond à 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é

NAT64 dans Public NAT

NAT64 permet aux instances de VM IPv6 uniquement de communiquer avec des destinations IPv4 sur Internet. Le NAT public est compatible avec NAT64 pour les adresses IPv6 externes et internes. Si vous souhaitez configurer NAT64, vous devez également configurer DNS64.

La configuration de DNS64 dans Cloud DNS permet le comportement suivant:

  • Lorsqu'une instance de VM IPv6 uniquement envoie une requête sur Internet, Cloud DNS vérifie si un enregistrement AAAA existe pour la destination de la requête. Si l'enregistrement existe, une adresse IPv6 est renvoyée et l'instance de VM IPv6 uniquement peut se connecter à la destination IPv6.
  • Si DNS64 est activé et que l'enregistrement AAAA n'est pas trouvé, le serveur DNS64 recherche des enregistrements A à la place. Une fois un enregistrement A trouvé, le serveur DNS64 synthétise une adresse IPv6 en ajoutant le préfixe 64:ff9b::/96 à l'adresse IPv4 obtenue à partir de l'enregistrement A.

    Par exemple, si l'adresse IPv4 de destination est 203.0.113.1, le serveur renvoie 64:ff9b::cb00:7101, où cb00:7101 est la représentation hexadécimale de 203.0.113.1.

Lorsque la requête atteint la passerelle Cloud NAT avec NAT64 activé, la passerelle effectue une traduction d'adresse réseau source (SNAT) en procédant comme suit:

  • Remplace l'adresse IPv6 et le port source par l'une des adresses et des ports IPv4 externes attribués à la passerelle.
  • Convertit l'adresse IPv6 de destination synthétisée, par exemple 64:ff9b::cb00:7101, en adresse IPv4 d'origine à l'aide des 32 derniers bits de l'adresse synthétisée.

    La passerelle Cloud NAT utilise également les 32 derniers bits de l'adresse IPv6 synthétisée pour déterminer comment le paquet de requête est acheminé vers Internet. Lorsqu'une instance de VM IPv6 uniquement envoie un paquet à une destination commençant par le préfixe 64:ff9b::/96, la passerelle applique la table de routage IPv4 du réseau VPC à l'adresse IPv4 de destination. Si la table de routage IPv4 contient une route pour l'adresse IPv4 de destination dont le saut suivant correspond à la passerelle Internet par défaut, le paquet modifié est envoyé sur Internet.

Lorsque la réponse est reçue, la passerelle Cloud NAT effectue une traduction NAT de destination en procédant comme suit:

  • Ajouter le préfixe 64:ff9b::/96 à l'adresse IP source du paquet de réponse.
  • Réécrire l'adresse de destination et le port de destination du paquet de réponse pour que le paquet soit distribué à la VM.

Étape suivante