Exemple de configuration Compute Engine

Présentation

Cette page vous explique comment configurer un exemple de configuration Cloud NAT avec Compute Engine. Avant de configurer Cloud NAT, consultez la page Présentation de Cloud NAT.

Prérequis

Autorisations IAM

  • Le rôle roles/compute.networkAdmin peut créer une passerelle NAT sur Cloud Router, réserver/attribuer des adresses IP NAT et spécifier les sous-réseaux dont le trafic doit utiliser la traduction NAT par la passerelle NAT.

Configurer Google Cloud

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

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Installez et initialisez le SDK Cloud.
      gcloud config set project PROJECTID
    

Vous avez également la possibilité d'afficher un ID de projet déjà défini :

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

Exemple de configuration Compute Engine

Utilisez cet exemple si vous souhaitez qu'une simple configuration Cloud NAT fonctionne avec Compute Engine.

Étape 1 : Créer un réseau VPC et un sous-réseau

Si vous disposez déjà d'un réseau et d'un sous-réseau, vous pouvez ignorer cette étape.

Console

  1. Accédez à la page Réseaux VPC dans Google Cloud Console.
    Accéder à la page "Réseaux VPC"
  2. Cliquez sur Créer un réseau VPC.
  3. Saisissez le nom custom-network1.
  4. Sous Sous-réseaux, définissez le paramètre Mode de création de sous-réseau sur Custom.
  5. Saisissez le nom subnet-us-east-192.
  6. Définissez le paramètre Région sur us-east4.
  7. Définissez le paramètre Plage d'adresses IP sur 192.168.1.0/24.
  8. Cliquez sur OK.
  9. Cliquez sur Créer.

gcloud

  1. Créez un réseau VPC en mode personnalisé dans votre projet.

        gcloud compute networks create custom-network1 \
            --subnet-mode custom
  2. Spécifiez le préfixe de sous-réseau pour la première région. Dans cet exemple, nous attribuons 192.168.1.0/24 à la région us-east4.

        gcloud compute networks subnets create subnet-us-east-192 \
           --network custom-network1 \
           --region us-east4 \
           --range 192.168.1.0/24

Étape 2 : Créer une instance de VM sans adresse IP externe

Console

  1. Accédez à la page des instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur le bouton Créer.
  3. Définissez le paramètre Nom sur nat-test-1 pour votre instance.
  4. Définissez le paramètre Région sur us-east4.
  5. Définissez le paramètre Zone sur us-east4-c.
  6. Cliquez sur le lien Gestion, sécurité, disques, mise en réseau et location unique.
  7. Cliquez sur l'onglet Réseau.
  8. Sous Interfaces réseau, cliquez sur l'icône en forme de crayon pour l'interface par défaut de la VM.
    1. Définissez le paramètre Réseau sur custom-network1.
    2. Définissez le paramètre Sous-réseau sur subnet-us-east-192.
    3. Définissez le paramètre Adresse IP externe sur None.
    4. Cliquez sur OK.
  9. Cliquez sur le bouton Créer pour créer et démarrer l'instance.

gcloud

    gcloud compute instances create nat-test-1 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --network custom-network1 \
        --subnet subnet-us-east-192 \
        --zone us-east4-c \
        --no-address

Étape 3 : Créer une règle de pare-feu qui autorise les connexions SSH

Console

  1. Accédez à la page "Règles de pare-feu" dans Google Cloud Console.
    Accéder à la page Règles de pare-feu
  2. Cliquez sur Créer une règle de pare-feu.
  3. Saisissez le nom allow-ssh.
  4. Définissez le paramètre Réseau sur custom-network1.
  5. Définissez le paramètre Sens du trafic sur ingress.
  6. Définissez le paramètre Action en cas de correspondance sur allow.
  7. Définissez paramètre Cibles sur All instances in the network.
  8. Définissez Filtre source sur IP ranges.
  9. Définissez le paramètre Plages d'adresses IP sources sur 35.235.240.0/20.
  10. Définissez le paramètre Protocoles et ports sur Specified protocols and ports.
  11. Sélectionnez tcp et spécifiez le port 22.
  12. Cliquez sur Créer.

gcloud

    gcloud compute firewall-rules create allow-ssh \
        --network custom-network1 \
        --source-ranges 35.235.240.0/20 \
        --allow tcp:22

Étape 4 : Créer des autorisations SSH IAP pour votre instance de test

Au cours d'une étape ultérieure, utilisez IAP pour vous connecter à votre instance de test.

Console

  1. Accédez à la page "Identity-Aware Proxy".

    Accéder à la page Identity-Aware Proxy

  2. Sélectionnez l'onglet SSH and TCP Resources (Ressources SSH et TCP).
  3. Mettez à jour les autorisations des membres sur les ressources en cochant la case Toutes les ressources de tunnels > us-east4-c > nat-test-1.
  4. Cliquez sur Ajouter un membre dans le volet de droite.
  5. Indiquez les utilisateurs, groupes ou comptes de service pour lesquels vous souhaitez accorder l'accès aux ressources en spécifiant leurs adresses e-mail dans le champ Nouveaux membres.
    Si vous ne faites que tester cette fonctionnalité, vous pouvez saisir votre propre adresse e-mail.
  6. Autorisez les membres à accéder aux ressources via la fonctionnalité de transfert TCP de Cloud IAP en ouvrant la liste déroulante Sélectionnez un rôle et en sélectionnant Cloud IAP > Utilisateur de tunnels sécurisés par IAP.
  7. Cliquez sur Save.

gcloud

Suivez les instructions dans l'onglet Console pour cette étape.

Étape 5 : Se connecter à nat-test-1 et confirmer qu'il ne peut pas accéder à Internet

Console

  1. Accédez à la page des instances de VM.

    Accéder à la page Instances de VM

  2. Pour nat-test-1, dans la colonne Connecter, cliquez sur le bouton SSH, puis sélectionnez Ouvrir dans la fenêtre de navigateur.
  3. À l'invite de commande de la VM, saisissez curl example.com et appuyez sur Entrée.

Vous ne devriez recevoir aucun résultat. Si vous en recevez, vous avez peut-être créé nat-test-1 avec une adresse IP externe, ou vous rencontrez peut-être un autre problème. Consultez la section Les instances peuvent accéder à Internet sans Cloud NAT pour résoudre le problème.

Vous devrez peut-être saisir Ctrl-C pour terminer la commande.

gcloud

  1. Ajoutez une clé SSH Compute Engine à votre hôte local.

        ssh-add ~/.ssh/google_compute_engine
        

  2. Connectez-vous à nat-test-1 et exécutez une commande :

        gcloud compute ssh nat-test-1 \
            --zone us-east4-c \
            --command "curl example.com" \
            --tunnel-through-iap

Vous ne devriez recevoir aucun résultat. Si vous en recevez, vous avez peut-être créé nat-test-1 avec une adresse IP externe, ou vous rencontrez peut-être un autre problème. Consultez la section Les instances peuvent accéder à Internet sans Cloud NAT pour résoudre le problème.

Vous devrez peut-être saisir Ctrl-C pour terminer la commande.

Étape 6 : Créer une configuration NAT à l'aide de Cloud Router

Vous devez créer le routeur cloud dans la même région que les instances qui utilisent Cloud NAT. Cloud NAT sert uniquement à placer des informations NAT sur les VM. Il n'est pas utilisé dans le cadre de la passerelle NAT réelle.

Cette configuration permet à toutes les instances de la région d'utiliser Cloud NAT pour toutes les plages d'adresses IP principales et d'alias. De plus, elle alloue automatiquement les adresses IP externes pour la passerelle NAT. Consultez la documentation de l'interface de ligne de commande gcloud pour plus d'options.

Console

  1. Accédez à la page "Cloud NAT" dans Google Cloud Console.
    Accéder à la page Cloud NAT
  2. Cliquez sur Commencer ou Créer une passerelle NAT.
  3. Définissez le paramètre Nom de la passerelle sur nat-config.
  4. Définissez le paramètre Réseau VPC sur custom-network1.
  5. Définissez le paramètre Région sur us-east4.
  6. Sous Cloud Router, sélectionnez Create new router.
    1. Saisissez le nom nat-router.
    2. Cliquez sur Créer.
  7. Cliquez sur Créer.

gcloud

Créer un routeur cloud

    gcloud compute routers create nat-router \
        --network custom-network1 \
        --region us-east4

Ajouter une configuration au routeur

    gcloud compute routers nats create nat-config \
        --router-region us-east4 \
        --router nat-router \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips

Étape 7 : Essayer de se reconnecter à Internet

La propagation de la configuration NAT peut prendre jusqu'à trois minutes. Attendez au moins une minute avant d'essayer d'accéder de nouveau à Internet.

Console

  1. Accédez à la page des instances de VM.

    Accéder à la page Instances de VM

  2. Pour nat-test-1, dans la colonne Connecter, cliquez sur le bouton SSH, puis sélectionnez Ouvrir dans la fenêtre de navigateur.
  3. À l'invite, saisissez la commande suivante, puis appuyez sur Entrée.

gcloud

Connectez-vous à nat-test-1 et exécutez une commande :

    gcloud compute ssh nat-test-1 \
        --zone us-east4-c \
        --command "curl example.com" \
        --tunnel-through-iap

Le résultat devrait contenir ce qui suit :


    <html>
    <head>
    <title>Example Domain</title>
    ...
    ...
    ...
    </head>

    <body>
    <div>
        <h1>Example Domain</h1>
        <p>This domain is established to be used for illustrative examples in documents. You may use this
        domain in examples without prior coordination or asking for permission.</p>
        <p><a href="http://www.iana.org/domains/example">More information...</a></p>
    </div>
    </body>
    </html>
    

Étape suivante