Public NAT
Public NAT permet à vos instances de machines virtuelles (VM) Compute Engine de communiquer avec Internet en leur allouant un ensemble d'adresses IPv4 externes et de ports sources partagés. Ainsi, chaque VM qui utilise Public NAT peut créer des connexions sortantes vers Internet.
Avec Public NAT, les instances de VM qui ne disposent pas d'adresses IPv4 externes peuvent communiquer avec des destinations IPv4 sur Internet. Public NAT permet également à vos instances de VM disposant d'adresses IPv6 externes ou internes de se connecter à des destinations IPv4 sur Internet.
Spécifications
Public NAT permet la traduction d'adresse réseau (NAT) pour les connexions suivantes :
IPv4 à IPv4, ou NAT44. Pour en savoir plus, consultez NAT44 dans Public NAT.
IPv6 à IPv4, ou NAT64. NAT64 est disponible pour les instances de VM Compute Engine. Pour les nœuds Google Kubernetes Engine (GKE), les points de terminaison sans serveur et les groupes de points de terminaison réseau Internet régionaux, Public NAT ne traduit que les adresses IPv4. Pour en savoir plus, consultez NAT64 dans Public NAT.
Spécifications générales
-
Public NAT autorise les connexions sortantes et les réponses entrantes à destination de ces connexions. Chaque passerelle Cloud NAT pour Public NAT effectue une opération de NAT source sur le trafic sortant et une opération de NAT de destination pour les paquets de réponse établis.
-
Public NAT n'autorise pas les requêtes entrantes non sollicitées provenant d'Internet, même si les règles de pare-feu autorisent ces requêtes. Pour en savoir plus, consultez les documents RFC applicables.
-
Chaque passerelle Cloud NAT pour Public NAT est associée à un seul réseau VPC, une seule région et un seul routeur Cloud Router. La passerelle Cloud NAT et le routeur Cloud Router fournissent un plan de contrôle. Ces éléments ne sont pas impliqués dans le plan de données. Par conséquent, les paquets ne passent ni par la passerelle Cloud NAT, ni par le routeur Cloud Router.
Même si une passerelle Cloud NAT pour Public NAT est gérée par un routeur Cloud Router, Public NAT n'utilise pas le protocole BGP (Border Gateway Protocol) et n'en dépend pas.
Pour NAT44, Public NAT peut fournir une fonctionnalité NAT pour les paquets sortants envoyés depuis les éléments suivants :
Adresse IP interne principale de l'interface réseau de la VM, à 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 exécute automatiquement une opération NAT de type "un à un" pour les paquets dont les sources correspondent à l'adresse IP interne principale de l'interface, car cette interface réseau respecte les conditions d'accès à Internet de Google Cloud . Une adresse IP externe existant sur une interface est toujours prioritaire et applique toujours une traduction NAT de type "un à un", sans utiliser Public NAT.
Une plage d'adresses IP d'alias attribuée à l'interface réseau de la VM : même si une adresse IP externe est affectée à l'interface réseau, vous pouvez configurer une passerelle Cloud NAT pour Public NAT afin de fournir une fonctionnalité NAT pour les paquets dont les sources font partie d'une plage d'adresses IP d'alias de l'interface. Une adresse IP externe sur une interface n'effectue jamais d'opération NAT de type "un à un" pour les adresses IP d'alias.
Adresses IP utilisées par les VM pour le transfert IP. Pour configurer le NAT pour ces adresses, vous devez créer une règle NAT assurant la mise en correspondance de l'adresse IP source utilisée par la VM lorsque celle-ci transfère des paquets. Pour en savoir plus, consultez Règles basées sur la source (Preview).
Clusters GKE : Public NAT peut, dans certaines conditions, fournir le service même si le cluster dispose d'adresses IP externes. Pour en savoir plus, consultez Interactions GKE.
Pour NAT64, Public NAT peut fournir une fonctionnalité NAT pour les paquets sortants envoyés depuis les éléments suivants :
- Plage d'adresses internes /96 de l'interface réseau "IPv6 uniquement" de la VM.
- Plage d'adresses externes /96 de l'interface réseau "IPv6 uniquement" de la VM.
Routes et règles de pare-feu
Public NAT s'appuie sur des routes statiques locales dont les sauts suivants correspondent à la passerelle Internet par défaut. Une route par défaut répond généralement à cette exigence. Pour plus d'informations, reportez-vous à Interaction avec les routes.
Les règles de pare-feu Cloud NGFW sont appliquées directement aux interfaces réseau des VM Compute Engine, et non aux passerelles Cloud NAT pour Public NAT.
Lorsqu'une passerelle Cloud NAT pour Public NAT fournit une fonctionnalité 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 l'opération NAT. Les règles de pare-feu d'entrée sont évaluées après que les paquets ont été traités par le NAT. Vous n'avez pas besoin de créer de règles de pare-feu spécifiques pour le NAT.
Toutefois, si vous souhaitez activer NAT64 dans un réseau VPC qui comporte une règle de pare-feu de refus de sortie pour une destination IPv4, nous vous recommandons de créer une règle de pare-feu de refus de sortie supplémentaire pour l'adresse IPv6 de destination intégrée à IPv4. Cela permet de s'assurer que le trafic provenant des VM qui utilisent NAT64 ne peut pas contourner la règle de pare-feu IPv4. Par exemple, si la destination de votre règle IPv4 est 1.2.3.4/32, celle de la règle IPv6 doit être 64:ff9b:0102:0304/128. Pour en savoir plus sur les adresses IPv6 intégrées à IPv4, consultez NAT64.
Applicabilité de la plage d'adresses IP du sous-réseau
Public NAT peut fournir une fonctionnalité NAT pour les plages de sous-réseaux IPv4, les plages de sous-réseaux IPv6 ou les deux :
En ce qui concerne les plages de sous-réseau IPv4, vous pouvez utiliser les options suivantes pour configurer le NAT pour les plages d'adresses IP principales, les plages d'adresses IP d'alias ou les deux :
-
Plages d'adresses IPv4 principales et secondaires de tous les sous-réseaux de la région : une passerelle Cloud NAT unique fournit une fonctionnalité NAT pour les 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 passerelle Cloud NAT unique fournit une fonctionnalité NAT pour les plages d'adresses IP internes principales et 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 Public NAT dans la région afin de fournir une fonctionnalité NAT pour les 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ée : une passerelle Cloud NAT unique fournit une fonctionnalité NAT pour les 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 faisant partie d'une liste de sous-réseaux spécifiés.
-
Plages d'adresses IPv4 de sous-réseaux 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 de sous-réseau qui doivent être utilisées par chaque passerelle.
-
Pour les plages de sous-réseaux IPv6, vous pouvez utiliser les options suivantes pour configurer le NAT pour les plages d'adresses IP internes, les plages d'adresses IP externes ou les deux :
- Plages d'adresses IPv6 internes et externes de tous les sous-réseaux de la région : une seule passerelle Cloud NAT fournit une fonctionnalité NAT pour toutes les plages d'adresses IP internes et externes de la région.
- Liste de sous-réseaux personnalisée : une passerelle Cloud NAT unique fournit une fonctionnalité NAT pour les plages d'adresses IP internes et externes des VM éligibles dont les interfaces réseau utilisent un sous-réseau faisant partie d'une liste de sous-réseaux spécifiés.
Plusieurs passerelles Cloud NAT
Vous pouvez exploiter plusieurs passerelles Cloud NAT pour Public NAT 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 Public NAT à 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 toutefois de respecter les quotas et limites de Public NAT. Pour en savoir plus, consultez Limites des passerelles Cloud NAT.
Bande passante
L'utilisation d'une passerelle Cloud NAT pour Public NAT 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 Bande passante réseau dans 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 Public NAT ne peut s'appliquer qu'à une seule interface réseau d'une VM. Des passerelles Cloud NAT pour Public NAT distinctes peuvent fournir une fonctionnalité NAT à la même VM, chaque passerelle étant associée à une interface distincte.
- Une interface d'une VM à interfaces réseau multiples peut avoir une adresse IPv4 externe et donc ne pas bénéficier de Public NAT, tandis qu'une autre des interfaces de la VM peut être éligible au NAT si elle n'a pas d'adresse IP externe et si vous avez configuré une passerelle Cloud NAT pour Public NAT qui s'applique à la plage d'adresses IP de sous-réseau appropriée. Pour IPv6, les adresses IPv6 internes et externes sont acceptées.
Adresses IP NAT et ports
Lorsque vous créez une passerelle Cloud NAT pour Public NAT, vous pouvez indiquer à 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 Public NAT 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 pour une passerelle Cloud NAT pour Public NAT qui a alloué automatiquement des adresses IP NAT, Google Cloud libère toutes les adresses IP attribuées par cette passerelle et annule toutes les allocations de ports.
Un nouvel ensemble d'adresses IP correspondant au niveau nouvellement sélectionné est automatiquement alloué, et de nouveaux ports sont alloués à tous les points de terminaison.
Pour une passerelle Cloud NAT pour Public NAT donnée, 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 Adresses IP NAT publiques.
Vous pouvez configurer le nombre de ports sources que chaque passerelle Cloud NAT pour Public NAT 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 une fonctionnalité 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 desservir.
Pour en savoir plus sur les ports, consultez Ports.
Documents RFC applicables
Public NAT est compatible avec le mappage indépendant du point de terminaison et le filtrage dépendant du point de terminaison, comme défini dans la RFC 5128. Vous pouvez activer ou désactiver le mappage indépendant du point de terminaison. Par défaut, le mappage indépendant du point 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 paire Adresse IP/Port donnée vers plusieurs destinations différentes, la passerelle mappe tous ces paquets à la même paire Adresse IP/Port 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 du point de terminaison implique que les paquets de réponse provenant d'Internet ne sont autorisés à entrer que s'ils proviennent d'une paire Adresse IP/Port sur laquelle une VM a déjà envoyé des paquets. Le filtrage est dépendant du point de terminaison, quel que soit le type de mappage du point 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 Ports et connexions et l'exemple de flux NAT.
Public NAT est un NAT en cône à restriction de port tel que défini dans la RFC 3489.
NAT-T (NAT traversal)
Si le mappage indépendant du point de terminaison est activé, Public NAT accepte les protocoles NAT-T courants tels que STUN et TURN (vous devez 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 le 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 le NAT par le biais d'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.
Délais d'inactivité NAT
Public NAT définit des délais d'inactivité pour les connexions de protocole. Pour en savoir plus sur ces délais et leurs valeurs par défaut, consultez Délais d'inactivité NAT.
NAT44 dans Public NAT
Le schéma suivant illustre une configuration Public NAT de base pour le trafic IPv4 :
Dans cet exemple :
La passerelle
nat-gw-us-eastest configurée pour s'appliquer à la plage d'adresses IP principale desubnet-1dans la régionus-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 desubnet-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-2ne peut pas accéder à Internet, car aucune passerelle Cloud NAT n'est appliquée à une quelconque plage d'adresses IP de ce sous-réseau.La passerelle
nat-gw-euest configurée pour s'appliquer à la plage d'adresses IP principale desubnet-3dans la régioneurope-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 desubnet-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 et 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
Public NAT suit la procédure de réservation de port pour réserver les tuples Adresse IP source/Port source suivants pour chacune des VM du réseau. Par exemple, la passerelle Cloud NAT pour Public NAT réserve 64 ports sources pour la VM ayant pour 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 Adresse IP source/Port source NAT pour cette VM :
- 192.0.2.50:34000 à 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, soit l'adresse IP interne principale de la VM
- Port source : 24000, soit le port source éphémère choisi par le système d'exploitation de la VM
- Adresse de destination : 10.240.0.4, soit l'adresse IP externe du serveur de mise à jour
- Port de destination : 80, soit le port de destination pour le trafic HTTP vers le serveur de mise à jour
- Protocole : TCP
La passerelle
nat-gw-us-easteffectue 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é vers Internet si le réseau de 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 Adresse IP source/Port source NAT réservés
- 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-eastavec les attributs suivants :- Adresse IP source : 203.0.113.1, soit l'adresse IP externe du serveur de mise à jour
- Port source : 80, pour la réponse HTTP du serveur de mise à jour
- Adresse de destination : 192.0.2.50, soit l'adresse IP source NAT d'origine du paquet de requête
- Port de destination : 34022, soit le port source d'origine du paquet de requête
- Protocole : TCP, inchangé
La passerelle
nat-gw-us-easteffectue 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, soit l'adresse IP interne principale de la VM
- Port de destination : 24000, soit le 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 dotées d'interfaces réseau IPv6 uniquement de communiquer avec des destinations IPv4 sur Internet. Public NAT 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 pour résoudre le nom d'une destination Internet qui ne possède qu'une adresse IPv4, le serveur DNS64 recherche les enregistrements
A. Si un enregistrement
Aest trouvé, le serveur DNS64 synthétise une adresse IPv6 intégrée à IPv4 en ajoutant le préfixe64:ff9b::/96à l'adresse IPv4 de destination obtenue à partir de l'enregistrementA. Par exemple, si l'adresse IPv4 de destination est 203.0.113.1, le serveur renvoie 64:ff9b::cb00:7101, oùcb00:7101est la représentation hexadécimale de 203.0.113.1.Pour en savoir plus, consultez DNS64.
Lorsque la requête atteint la passerelle Cloud NAT avec NAT64 activé, la passerelle effectue l'opération SNAT en procédant comme suit :
- Elle remplace l'adresse IPv6 et le port sources par l'une des adresses IPv4 et l'un des ports externes attribués à la passerelle.
Elle traduit 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 avec 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 comporte, pour l'adresse IPv4 de destination, une route dont le saut suivant correspond à la passerelle Internet par défaut, le paquet modifié est envoyé vers Internet.
Lorsque la réponse est reçue, la passerelle Cloud NAT effectue une opération DNAT en procédant comme suit :
- Elle ajoute le préfixe
64:ff9b::/96à l'adresse IP source du paquet de réponse. - Elle réécrit l'adresse et le port de destination du paquet de réponse pour que celui-ci puisse être transmis à la VM.
Avant de configurer NAT64, consultez Limites et Routes et règles de pare-feu.
Étapes suivantes
- En savoir plus sur les interactions des produits Cloud NAT
- En savoir plus sur les adresses et ports Cloud NAT
- En savoir plus sur les règles Cloud NAT
- Configurer Public NAT