Public NAT

Le NAT public permet à vos instances de machine virtuelle (VM) Google Cloud qui ne disposent pas d'adresses IP publiques 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 et de ports sources externes à chaque VM qui utilise la passerelle pour créer des connexions sortantes vers Internet.

Configuration et workflow de base pour Public NAT

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 est située dans subnet-2 ne peut pas accéder à Internet, car aucune passerelle NAT publique 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 Public NAT

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 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 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é

Spécifications

Spécifications générales

Vous pouvez configurer une passerelle NAT publique pour fournir une NAT à Internet pour les 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 conditions d'accès à Internet de Google Cloud. 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 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), 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.

Le NAT public autorise les connexions sortantes et les réponses entrantes à destination de ces connexions. Chaque passerelle NAT publique 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 NAT publique est associée à un seul réseau VPC, une seule région et un seul Cloud Router. La passerelle NAT publique et 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 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 Virtual Private Cloud a besoin d'une route par défaut dont le saut suivant correspond à la passerelle Internet par défaut. Pour plus d'informations, reportez-vous à la section Interaction avec les routes.

Le NAT public 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 NAT publiques.

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 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&#Ingress 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 la passerelle NAT publique pour fournir une NAT pour l'adresse IP interne principale de l'interface réseau de la VM, aux plages d'adresses IP principales de l'interface réseau de la VM, ou aux deux. Pour effectuer cette configuration, choisissez les plages d'adresses IP du 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 dans 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 appartenant aux plages d'adresses IP principales du sous-réseau des VM éligibles, dont les interfaces réseau utilisent un sous-réseau dans la région. Vous pouvez créer des passerelles NAT publiques supplémentaires 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 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 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, à condition de respecter les quotas et limites de NAT public. Vous choisissez les plages d'adresses IP principales ou secondaires du sous-réseau qui doivent être utilisées par chaque passerelle.

Plusieurs passerelles NAT publiques

Vous pouvez disposer de plusieurs passerelles NAT publiques 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 NAT publique à 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 NAT publiques que nécessaire, à condition de respecter les quotas et limites de NAT public. Pour en savoir plus, consultez la section Limites des passerelles Cloud NAT.

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 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 NAT publique ne peut s'appliquer qu'à une seule interface réseau d'une VM. Des passerelles NAT publiques distinctes 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 IP 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 possède pas d'adresse IP externe et que vous avez configuré une passerelle NAT publique pour s'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 allocation automatique d'adresses IP NAT, tenez compte des points suivants:

  • Vous pouvez sélectionner les niveaux de service réseau (Niveau Premium ou Standard) à partir desquels la passerelle NAT publique alloue les adresses IP.
  • Lorsque vous modifiez le niveau d'une passerelle NAT publique 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 ports.

    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 NAT publique 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 la section Adresses IP NAT publiques.

Vous pouvez configurer le nombre de ports sources que chaque passerelle NAT publique 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.

Étape suivante