NAT publique

La fonctionnalité NAT publique permet aux instances de machines virtuelles (VM) Google Cloud qui n'ont pas d'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 l'utilise pour créer des connexions sortantes vers l'Internet.

Configuration et workflow de NAT public de base

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 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 ayant 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 NAT (traduction d'adresse réseau) attribuées manuellement: 192.0.2.50 et 192.0.2.60
  • NAT fourni pour la plage d'adresses IP principale de subnet-1

La fonctionnalité NAT publique suit la procédure de réservation de port pour 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 du paquet de requête. Le paquet modifié est envoyé à Internet si le réseau cloud privé virtuel (VPC) dispose d'une route vers 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 à Internet une NAT 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 a toujours la priorité et effectue toujours une NAT de type un à un, sans utiliser de 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), la NAT publique peut fournir un service, même si le cluster possède des adresses IP externes dans certains cas. Pour en savoir plus, consultez la section Interaction GKE.

La NAT publique autorise les connexions sortantes et les réponses entrantes à ces connexions. Chaque passerelle NAT publique effectue la NAT source en sortie et la NAT de destination pour les paquets de réponses établis.

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

Chaque passerelle NAT publique est associée à un seul réseau VPC, à une seule région et à un seul routeur Cloud Router. La passerelle NAT publique et le routeur cloud 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

La fonctionnalité NAT publique repose 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.

La fonctionnalité NAT publique n'est soumise à aucune 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 qui autorisent les connexions vers ou depuis des adresses IP NAT. Lorsqu'une passerelle NAT publique fournit une 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 la NAT.

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

Vous pouvez configurer la passerelle NAT publique pour qu'elle fournisse 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 la 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 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 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 des plages d'adresses IP principales du 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 publiques supplémentaires dans la région pour fournir la NAT aux plages d'adresses IP d'alias à partir des plages d'adresses IP secondaires du sous-réseau des VM éligibles.

  • Liste de sous-réseaux personnalisée Une seule passerelle NAT publique fournit une 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 provenant 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, selon les quotas et limites de NAT public. Vous choisissez les plages d'adresses IP principales ou secondaires des sous-réseaux qui doivent être diffusé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, en fonction des quotas et des limites de NAT public. Pour en savoir plus, consultez la page 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 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 qu'elle comporte 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.
  • L'une des interfaces d'une VM à interfaces réseau multiples peut avoir une adresse IP externe, ce qui la rend inéligible à la NAT publique, tandis qu'une autre de ses interfaces peut être éligible à la NAT si cette interface n'a 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 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) auxquels la passerelle NAT publique attribue les adresses IP.
  • Lorsque vous modifiez le niveau d'une passerelle NAT publique à laquelle des adresses IP NAT ont été automatiquement allouées, Google Cloud libère toutes les adresses IP attribuées pour cette passerelle et supprime toutes les allocations de ports.

    Un nouvel ensemble d'adresses IP du niveau nouvellement sélectionné 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 à partir du niveau Premium ou Standard, ou des deux, sous 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

La NAT publique est compatible avec le mappage indépendant des points de terminaison et le filtrage dépendant des points de terminaison, tels que définis 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 dépend 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.

La NAT publique est une NAT en cône restreint de port telle que définie dans la 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

La NAT publique 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 Expirations de délai NAT.

Étapes suivantes