Configurer et gérez la traduction d'adresse réseau avec Private NAT

Cette page explique comment configurer la traduction d'adresses réseau (NAT) entre réseaux privés dans Cloud NAT.

Avant de commencer

Effectuez les tâches suivantes avant de configurer Private NAT.

Examiner les spécifications de Private NAT

Consultez les spécifications et exigences suivantes :

  • Pour les spécifications générales, consultez Private NAT.
  • Pour le trafic entre les spokes d'un hub Network Connectivity Center, y compris les spokes VPC et hybrides, consultez Private NAT pour les spokes Network Connectivity Center.
  • Pour le trafic entre les réseaux de cloud privé virtuel (VPC) et les réseaux non-Google Cloud transitant par Cloud Interconnect ou Cloud VPN, consultez Hybrid NAT.

Obtenir des autorisations IAM

Le rôle Administrateur de réseaux Compute (roles/compute.networkAdmin) vous permet de créer une passerelle NAT sur Cloud Router, de réserver et d'attribuer des adresses IP NAT et de spécifier les sous-réseaux dont le trafic doit utiliser la traduction d'adresse réseau assurée par la passerelle NAT.

Configurer Google Cloud

Avant de commencer, configurez les éléments suivants dans Google Cloud.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  7. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  13. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  14. Dans les instructions concernant la Google Cloud CLI présentées sur cette page, nous partons du principe que vous avez défini l'ID de votre projet avant d'exécuter les commandes.

    1. Vous pouvez définir un ID de projet avec la commande suivante :

      gcloud config set project PROJECT_ID
      
    2. Vous avez également la possibilité d'afficher un ID de projet déjà défini :

      gcloud config list --format='text(core.project)'
      

    Créer un sous-réseau NAT avec l'objectif PRIVATE_NAT

    Avant de configurer Private NAT, vous devez créer un sous-réseau NAT avec l'objectif PRIVATE_NAT. Le sous-réseau NAT doit se trouver dans la même région que celle où vous prévoyez de créer votre passerelle Private NAT. La passerelle Private NAT utilise les plages d'adresses IP de ce sous-réseau pour effectuer les opérations de NAT. Assurez-vous que ce sous-réseau ne chevauche aucun sous-réseau existant dans l'un des réseaux connectés. Vous ne pouvez créer aucune ressource dans ce sous-réseau. Ce sous-réseau n'est utilisé que pour Private NAT.

    Console

    1. Dans la console Google Cloud , accédez à la page Réseaux VPC.

      Accéder aux réseaux VPC

    2. Pour afficher la page "Détails du réseau VPC", cliquez sur le nom d'un réseau VPC.

    3. Cliquez sur l'onglet Sous-réseaux.

    4. Cliquez sur Ajouter un sous-réseau. Dans la boîte de dialogue Ajouter un sous-réseau, procédez comme suit :

      1. Indiquez un nom pour le sous-réseau.
      2. Sélectionnez une région.
      3. Dans le champ Objectif, sélectionnez Private NAT.
      4. Spécifiez une plage d'adresses IP qui servira de plage d'adresses IPv4 principale pour le sous-réseau.

        Si vous sélectionnez une plage qui n'est pas conforme à la RFC 1918, vérifiez qu'elle n'entre pas en conflit avec une configuration existante. Pour plus d'informations sur les plages de sous-réseaux IPv4 valides, consultez Plages de sous-réseaux IPv4.

    5. Cliquez sur Ajouter.

    gcloud

    Exécutez la commande gcloud compute networks subnet create pour créer le sous-réseau.

      gcloud compute networks subnets create NAT_SUBNET \
          --network=NETWORK \
          --region=REGION \
          --range=IP_RANGE \
          --purpose=PRIVATE_NAT
    

    Remplacez les éléments suivants :

    • NAT_SUBNET : nom de la plage de sous-réseau Private NAT à créer.
    • NETWORK : réseau auquel appartient le sous-réseau.
    • REGION : région du sous-réseau à créer. Si la région n'est pas spécifiée, vous pouvez être invité à sélectionner une région (mode interactif uniquement).
    • IP_RANGE : espace d'adresses IP alloué à ce sous-réseau au format CIDR. Assurez-vous que IP_RANGE tient compte de l'utilisation du double du nombre de ports requis par VM.

    Configurer Private NAT

    Pour configurer Private NAT, vous devez créer une passerelle Private NAT dans le réseau VPC source. Chaque passerelle est associée à un seul réseau VPC, une seule région et un seul routeur Cloud Router.

    Lorsque vous configurez Private NAT, vous pouvez activer l'une des options suivantes, ou les deux :

    • Private NAT pour les spokes Network Connectivity Center. Cette option active le NAT pour le trafic entre les éléments suivants :

      • Un réseau VPC source et un réseau VPC de destination au sein d'un même hub Network Connectivity Center. Les deux réseaux doivent être configurés en tant que spokes VPC.
      • Un réseau VPC source configuré en tant que spoke VPC dans un hub Network Connectivity Center et un réseau de destination sur site (ou sur l'infrastructure d'un autre fournisseur de service cloud) connecté au hub via un spoke hybride.

      Si vous souhaitez utiliser des connexions propagées Private Service Connect dans le spoke VPC où Private NAT est déployé, consultez Interactions des connexions propagées Private Service Connect avant de configurer Private NAT.

    • Hybrid NAT : permet les opérations de NAT pour le trafic entre un réseau VPC source et un réseau de destination sur site ou sur l'infrastructure d'un autre fournisseur de services cloud. Les réseaux doivent être connectés via Cloud Interconnect ou Cloud VPN.

    Créer une passerelle Private NAT

    Créez une passerelle Private NAT dans le réseau VPC source pour lequel vous souhaitez configurer le NAT.

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Cliquez sur Premiers pas ou Créer une passerelle NAT.

    3. Indiquez un nom de passerelle.

    4. Dans le champ Type de NAT, sélectionnez Privé.

    5. Sélectionnez un réseau VPC pour la passerelle NAT.

    6. Sélectionnez la région de la passerelle NAT.

    7. Sélectionnez ou créez un routeur Cloud Router dans la région.

    8. Assurez-vous que Instances de VM est sélectionné comme type de point de terminaison source.

    9. Dans la liste Source, sélectionnez Personnalisée.

    10. Sélectionnez un sous-réseau sur lequel vous souhaitez effectuer les opérations de NAT.

    11. Si vous souhaitez spécifier des plages supplémentaires, cliquez sur Ajouter un sous-réseau et une plage d'adresses IP.

    12. Cliquez sur Ajouter une règle.

    13. Dans le champ Priorité de la règle, saisissez une valeur comprise entre 0 et 65000.

    14. Pour Correspondance, sélectionnez l'une des options suivantes :

      • Pour activer Hybrid NAT, sélectionnez Routes de connectivité hybride.
      • Pour activer Private NAT pour les spokes Network Connectivity Center, sélectionnez Hub Network Connectivity Center.
      • Pour activer les deux options, sélectionnez Routes de connectivité hybride et Hub Network Connectivity Center.
    15. Sélectionnez ou créez une plage de sous-réseau Private NAT.

    16. Cliquez sur OK.

    17. Facultatif : Ajustez les paramètres suivants dans la section Configurations avancées :

      • Vous devez choisir si la journalisation doit être configurée. Par défaut, l'option Aucune journalisation est sélectionnée.
      • Vous devez indiquer si le mode d'allocation des ports par Cloud NAT doit être modifié. Par défaut, l'option Activer l'allocation de ports dynamique est sélectionnée. Pour configurer l'allocation de ports statique, décochez Activer l'allocation de ports dynamique et spécifiez le nombre minimal de ports par instance de VM. La valeur par défaut est 64.
      • Indiquez s'il faut mettre à jour les délais d'inactivité du NAT pour les connexions de protocole. Pour en savoir plus sur ces délais d'inactivité et leurs valeurs par défaut, consultez Délais d'inactivité NAT.
    18. Cliquez sur Créer.

    gcloud

    1. Créez un routeur Cloud Router dans le réseau VPC pour lequel vous souhaitez configurer le NAT.

      Exécutez la commande gcloud compute routers create.

      gcloud compute routers create ROUTER_NAME \
          --network=NETWORK --region=REGION
      

      Remplacez les éléments suivants :

      • ROUTER_NAME : nom du routeur Cloud Router.
      • NETWORK : réseau VPC dans lequel le routeur Cloud Router doit être créé.
      • REGION : région dans laquelle le routeur Cloud Router doit être créé.
    2. Créez une passerelle Private NAT et spécifiez un ou plusieurs sous-réseaux du réseau VPC source pour lesquels vous souhaitez configurer le NAT.

      Exécutez la commande gcloud compute routers nats create avec l'option --type définie sur PRIVATE.

      gcloud compute routers nats create NAT_CONFIG \
          --router=ROUTER_NAME --type=PRIVATE --region=REGION \
          --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,...] | \
          [--nat-all-subnet-ip-ranges]
      

      Remplacez les éléments suivants :

      • NAT_CONFIG : nom de la configuration Private NAT que vous créez.
      • ROUTER_NAME : nom du routeur Cloud Router à utiliser avec cette passerelle. Il s'agit du routeur Cloud Router que vous avez créé à l'étape précédente. Ce nom ne doit pas être utilisé par d'autres ressources.
      • SUBNETWORK : nom du sous-réseau ou liste des sous-réseaux pour lesquels vous souhaitez utiliser le NAT.

        Vous pouvez également spécifier une liste de sous-réseaux séparés par une virgule, par exemple : SUBNETWORK_1, SUBNETWORK_2. Private NAT effectue toujours les opérations de NAT sur toutes les plages d'adresses IP de sous-réseau pour le sous-réseau ou la liste de sous-réseaux concernés.

      Par défaut, Private NAT utilise l'allocation de ports dynamique. Si vous souhaitez créer une passerelle Private NAT avec allocation de ports statique, exécutez la commande précédente avec l'option --no-enable-dynamic-port-allocation :

      gcloud compute routers nats create NAT_CONFIG \
          --router=ROUTER_NAME --type=PRIVATE --region=REGION \
          --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,...] | \
          [--nat-all-subnet-ip-ranges]
          --no-enable-dynamic-port-allocation \
          [--min-ports-per-vm=VALUE]
      

      Remplacez VALUE par le nombre minimal de ports à attribuer par VM. Si aucune valeur n'est spécifiée,Google Cloud attribue la valeur par défaut 64.

    3. Créez une règle NAT pour assurer la mise en correspondance du trafic en fonction du type de NAT que vous configurez.

      Exécutez la commande gcloud compute routers nats rules create avec l'option --match définie sur l'une des valeurs suivantes :

      • nexthop.is_hybrid : traduit le trafic sortant du réseau VPC source vers un réseau sur site (ou sur l'infrastructure d'un autre fournisseur de services cloud) connecté à Google Cloud via Cloud Interconnect ou Cloud VPN.
      • nexthop.hub : traduit le trafic sortant du spoke VPC source vers l'un des spokes VPC ou hybrides associés au même hub Network Connectivity Center que le spoke VPC source.
      • nexthop.is_hybrid || nexthop.hub : configure les deux types de Private NAT.

      Pour créer une règle NAT pour Hybrid NAT, exécutez la commande suivante :

      gcloud compute routers nats rules create NAT_RULE_PRIORITY \
          --router=ROUTER_NAME --region=REGION \
          --nat=NAT_CONFIG \
          --match='nexthop.is_hybrid' \
          --source-nat-active-ranges=NAT_SUBNET
      

      Pour créer une règle NAT pour Private NAT dédiée aux spokes Network Connectivity Center, exécutez la commande suivante :

      gcloud compute routers nats rules create NAT_RULE_PRIORITY \
          --router=ROUTER_NAME --region=REGION \
          --nat=NAT_CONFIG \
          --match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \
          --source-nat-active-ranges=NAT_SUBNET
      

      Pour créer une règle NAT pour Hybrid NAT et Private NAT dédiée aux spokes Network Connectivity Center, exécutez la commande suivante :

      gcloud compute routers nats rules create NAT_RULE_PRIORITY \
          --router=ROUTER_NAME --region=REGION \
          --nat=NAT_CONFIG \
          --match='nexthop.is_hybrid || nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \
          --source-nat-active-ranges=NAT_SUBNET
      

      Remplacez les éléments suivants :

      • NAT_RULE_PRIORITY : numéro de règle qui identifie de manière unique la règle NAT, de 0 (priorité la plus élevée) à 65000 (priorité la plus basse).
      • ROUTER_NAME : nom du routeur Cloud Router que vous avez créé précédemment.
      • REGION : région du routeur Cloud Router.
      • NAT_CONFIG : nom de la configuration Private NAT que vous avez créée précédemment.
      • PROJECT_ID : projet Google Cloud du hub Network Connectivity Center.
      • HUB : nom du hub Network Connectivity Center.
      • NAT_SUBNET : nom du sous-réseau Private NAT que vous avez créé précédemment. Vous pouvez également spécifier une liste de sous-réseaux séparés par des virgules.

    Afficher la configuration Private NAT

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Pour afficher les détails de la passerelle NAT, les informations de mappage ou les détails de configuration, cliquez sur le nom de votre passerelle NAT.

    3. Pour afficher l'état du NAT, consultez la colonne État de votre passerelle NAT.

    gcloud

    Vous pouvez afficher les détails de la configuration NAT en exécutant les commandes suivantes :

    • Affichez la configuration de la passerelle Private NAT.

      gcloud compute routers nats describe NAT_CONFIG \
          --router=ROUTER_NAME \
          --region=REGION
      

      Remplacez les éléments suivants :

      • NAT_CONFIG : nom de votre configuration NAT
      • ROUTER_NAME : nom de votre routeur Cloud Router.
      • REGION : région du NAT à décrire. Si elle n'est pas spécifiée, vous pouvez être invité à sélectionner une région (mode interactif uniquement).
    • Affichez le mappage des paires "plage d'adresses IP:port" allouées à l'interface de chaque VM.

      gcloud compute routers get-nat-mapping-info ROUTER_NAME \
          --region=REGION
      
    • Affichez l'état de la passerelle Private NAT.

      gcloud compute routers get-status ROUTER_NAME \
          --region=REGION
      

    Mettre à jour la configuration Private NAT

    Une fois votre passerelle Private NAT configurée, vous pouvez modifier sa configuration en fonction de vos besoins. Les sections suivantes listent les tâches que vous pouvez effectuer pour mettre à jour votre passerelle Private NAT.

    Modifier les sous-réseaux associés à Private NAT

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Cliquez sur votre passerelle NAT.

    3. Cliquez sur Modifier.

    4. Pour le mappage Cloud NAT, dans la liste Source, sélectionnez Personnalisée.

    5. Sélectionnez un nouveau sous-réseau dans la liste des sous-réseaux disponibles.

    6. Si vous souhaitez spécifier des plages supplémentaires, cliquez sur Ajouter un sous-réseau et une plage d'adresses IP, puis sélectionnez un autre sous-réseau.

    7. Cliquez sur Enregistrer.

    gcloud

    gcloud compute routers nats update NAT_CONFIG \
        --router=ROUTER_NAME \
        --region=REGION \
        --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,..]
    

    Remplacez les éléments suivants :

    • NAT_CONFIG : nom de la configuration Private NAT à mettre à jour.
    • ROUTER_NAME : nom du routeur à utiliser avec cette passerelle.
    • SUBNETWORK : nom du sous-réseau à utiliser.

    Supprimer les sous-réseaux associés à Private NAT

    Vous pouvez retirer de la passerelle NAT des sous-réseaux spécifiques qui ne sont plus utilisés.

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Cliquez sur votre passerelle NAT.

    3. Cliquez sur Modifier.

    4. Supprimez le sous-réseau que vous souhaitez retirer du mappage NAT.

    5. Cliquez sur Enregistrer.

    Ajouter des sous-réseaux NAT à votre configuration Private NAT

    Pour effectuer des opérations de NAT sur le trafic, une configuration Private NAT utilise des adresses IP NAT provenant d'un sous-réseau dont l'objectif est PRIVATE_NAT. Si votre configuration Private NAT nécessite plus d'adresses IP NAT que celles dont vous disposez, vous pouvez ajouter d'autres sous-réseaux dont l'objectif est PRIVATE_NAT à la configuration.

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Cliquez sur votre passerelle NAT.

    3. Cliquez sur Modifier.

    4. Développez la règle existante.

    5. Cliquez sur Ajouter des plages de sous-réseaux.

    6. Sélectionnez ou créez une plage de sous-réseau NAT, puis cliquez sur OK.

    7. Cliquez sur Enregistrer.

    gcloud

    gcloud compute routers nats rules update NAT_RULE_PRIORITY \
        --nat=NAT_CONFIG \
        --router=ROUTER_NAME \
        --region=REGION \
        --source-nat-active-ranges=NAT_SUBNET_1, NAT_SUBNET_2 ...
    

    Remplacez les éléments suivants :

    • NAT_RULE_PRIORITY : nombre qui identifie de manière unique la règle à mettre à jour, de 0 (priorité la plus élevée) à 65000 (priorité la plus basse).
    • NAT_CONFIG : nom de votre configuration Private NAT pour la règle à mettre à jour.
    • ROUTER_NAME : nom du routeur à utiliser avec cette passerelle.
    • NAT_SUBNET : noms des sous-réseaux Private NAT à ajouter à votre configuration NAT existante.

    Supprimer la configuration NAT

    La suppression d'une configuration de passerelle supprime la configuration NAT d'un routeur Cloud Router. La suppression d'une configuration de passerelle ne supprime pas le routeur lui-même.

    Console

    1. Dans la console Google Cloud , accédez à la page Cloud NAT.

      Accéder à Cloud NAT

    2. Cochez la case à côté de la configuration de passerelle que vous souhaitez supprimer.

    3. Dans le menu, cliquez sur Supprimer.

    gcloud

    gcloud compute routers nats delete NAT_CONFIG \
        --router=ROUTER_NAME \
        --region=REGION
    

    Remplacez les éléments suivants :

    • NAT_CONFIG : nom de votre configuration NAT
    • ROUTER_NAME : nom de votre routeur Cloud Router.
    • REGION : région du NAT à supprimer. Si elle n'est pas spécifiée, vous pouvez être invité à sélectionner une région (mode interactif uniquement).

    Étapes suivantes