Créer une connexion VPN classique vers un site distant

Vous pouvez configurer une connexion de tunnel VPN classique entre un site et Google Cloud de sorte que les adresses IP source et de destination soient des adresses IP externes (non RFC 1918). Par exemple, vous pouvez configurer une connexion VPN classique vers un site distant pour que les plages d'adresses IP sur site n'entrent pas en conflit avec l'adresse IP de la VM Google Cloud.

Dans ce tutoriel, vous utilisez un projet Google Cloud, la console Google Cloud, une instance de machine virtuelle (VM), le VPN classique et quelques commandes Linux. Pour tester la connexion, vous devez créer une instance de VM afin d'envoyer et de recevoir du trafic entre la VM et un pair distant.

Avant de commencer

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Compute Engine API.

    Enable the API

  7. Sur votre poste de travail, installez l'outil de ligne de commande gcloud.
  8. Configurez l'outil de ligne de commande gcloud de sorte qu'il utilise votre projet. Dans la commande suivante, remplacez PROJECT_ID par l'ID de votre projet :
    gcloud config set project PROJECT_ID
  9. Assurez-vous que vos sous-réseaux sur site sont connectés à votre passerelle VPN sur site.
  10. Suivez les instructions de la section Configurer la passerelle VPN de pairs pour configurer la passerelle VPN de pairs entre Google Cloud et votre passerelle VPN sur site.

Réserver une nouvelle adresse IP externe statique

Dans Compute Engine, chaque instance de VM peut avoir plusieurs interfaces réseau. Chaque interface peut avoir des adresses IP internes et externes. Les règles de transfert peuvent disposer d'adresses IP externes pour l'équilibrage de charge externe ou d'adresses internes pour l'équilibrage de charge interne. Pour en savoir plus sur les adresses IP statiques, consultez la page Adresses IP externes.

Une adresse IP externe statique est une adresse IP réservée pour votre projet jusqu'à ce que vous décidiez de la libérer. Si vous disposez d'une adresse IP qui permet à vos clients d'accéder à votre service, vous pouvez réserver cette adresse IP pour qu'elle ne puisse être utilisée que par votre projet. Vous pouvez également convertir une adresse IP externe éphémère en adresse IP externe statique.

Vous pouvez réserver deux types d'adresses IP externes :

  • Une adresse IP régionale utilisée par les instances de VM avec une ou plusieurs interfaces réseau ou par les équilibreurs de charge régionaux.
  • Une adresse IP globale utilisée pour les équilibreurs de charge globaux.

Pour consulter la liste des équilibreurs de charge régionaux et globaux, reportez-vous au Récapitulatif des équilibreurs de charge Google Cloud.

Réservez une adresse IP externe statique à l'aide de Google Cloud CLI ou via l'API. Une fois que vous avez réservé l'adresse IP, attribuez-la à une nouvelle instance lors de sa création, ou bien attribuez l'adresse IP à une instance existante.

Console

  1. Accédez à la page Réserver une adresse statique.

    Accédez à la page "Réserver une adresse statique"

  2. Choisissez un nom pour la nouvelle adresse.

  3. Indiquez s'il s'agit d'une adresse IPv4 ou IPv6. Les adresses IPv6 ne peuvent être que globales et ne peuvent être utilisées qu'avec les équilibreurs de charge globaux.

  4. Choisissez si cette adresse IP est régionale ou globale. Si vous réservez une adresse IP statique pour une instance ou pour un équilibreur de charge régional, sélectionnez Régional. Si vous réservez une adresse IP statique pour un équilibreur de charge global, sélectionnez Global.

  5. S'il s'agit d'une adresse IP régionale, sélectionnez la région dans laquelle créer l'adresse.

  6. Facultatif : Sélectionnez une ressource à associer à l'adresse IP.

  7. Cliquez sur Réserver pour réserver l'adresse IP.

gcloud

Pour réserver une adresse IP externe statique à l'aide de gcloud compute, utilisez la commande compute addresses create.

Pour réserver une adresse IP globale, utilisez les champs --global et --ip-version. Pour le champ --ip-version, spécifiez IPV4 ou IPV6. Les adresses IPv6 ne peuvent être que globales et ne peuvent être utilisées qu'avec les équilibreurs de charge globaux.

Remplacez ADDRESS_NAME par le nom de cette adresse.

gcloud compute addresses create ADDRESS_NAME \
    --global \
    --ip-version [IPV4 | IPV6]

Pour réserver une adresse IP régionale, utilisez le champ --region :

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

Remplacez les éléments suivants :

  • ADDRESS_NAME : nom de cette adresse.
  • REGION : région dans laquelle réserver cette adresse. Cette région doit être identique à celle de la ressource à laquelle l'adresse IP est attribuée. Toutes les adresses IP régionales sont de type IPv4.

Utilisez la commande compute addresses describe pour afficher le résultat :

gcloud compute addresses describe ADDRESS_NAME

API

Pour créer une adresse IPv4 régionale, appelez la méthode addresses.insert régionale :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  "name": "ADDRESS_NAME"
}

Remplacez les éléments suivants :

  • ADDRESS_NAME : nom de l'adresse
  • REGION : nom de la région pour cette requête.
  • PROJECT_ID : ID du projet pour cette requête

Pour les adresses IPv4 statiques globales, appelez la méthode globalAddresses.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  "name": "ADDRESS_NAME"
}

Pour les adresses IPv6 statiques globales, appelez la méthode globalAddresses.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6"
}

Utilisez la méthode addresses.get pour afficher le résultat.

Terraform

Vous pouvez utiliser un module Terraform pour créer une adresse IP externe.

Dans l'exemple suivant, les arguments Terraform contiennent des exemples de valeurs que vous pouvez modifier. L'exemple crée trois adresses IPv4 externes régionales.

module "address" {
  source       = "terraform-google-modules/address/google"
  version      = "~> 4.0"
  project_id   = var.project_id # Replace this with your service project ID in quotes
  region       = "europe-west1"
  address_type = "EXTERNAL"
  names = [
    "regional-external-ip-address-1",
    "regional-external-ip-address-2",
    "regional-external-ip-address-3"
  ]
}

L'exemple suivant crée une adresse IPv6 externe globale :

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

Activer le transfert IP

Vous pouvez activer le transfert IP lorsque vous créez une VM ou en mettant à jour la propriété d'instance canIpForward sur une VM existante. Le transfert IP est activé au niveau de la VM et s'applique à toutes les interfaces associées à la VM.

Activer le transfert IP lors de la création d'une VM

Ces instructions expliquent comment activer le transfert IP lorsque vous créez une VM. Si vous devez activer le transfert IP sur une VM existante, mettez à jour la propriété d'instance canIpForward.

Console

  1. Accédez à la page Instances de VM.
    Accéder à la page "Instances de VM"
  2. Cliquez sur Create instance (Créer une instance).
  3. Dans Disque de démarrage, vérifiez que vous avez sélectionné une image Linux, par exemple, Debian GNU/Linux.
  4. Cliquez sur Mise en réseau, disques, sécurité, gestion, location unique.
  5. Cliquez sur Mise en réseau.
  6. Pour Transfert IP, sélectionnez Activer.
  7. Indiquez les autres paramètres d'instance.
  8. Cliquez sur Créer.

gcloud

Lorsque vous créez une instance à l'aide de gcloud, ajoutez l'option --can-ip-forward à votre commande :

gcloud compute instances create ... --can-ip-forward

API

Lorsque vous créez une instance, utilisez le champ canIpForward pour activer le transfert IP.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel votre instance est créée.
  • ZONE : zone Google Cloud dans laquelle l'instance est créée.

Pour plus d'informations, reportez-vous à la méthode instances.insert.

Terraform

Vous pouvez utiliser la ressource Terraform pour créer une instance de VM sur laquelle le transfert IP est activé.

Dans cet exemple, les valeurs des arguments Terraform peuvent être modifiées.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "instance-next-hop"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  can_ip_forward = true
}

Créer une route pour le trafic entrant

Suivez les étapes ci-après pour créer une route statique. Au préalable, assurez-vous de connaître les points suivants :

  • Les routes statiques ne peuvent pas avoir de plages de destination identiques à celles utilisées par l'une des routes de sous-réseau de votre réseau VPC, ni de plages plus spécifiques.

    • Lorsque vous utilisez un appairage de réseaux VPC entre deux réseaux VPC, les routes statiques d'un réseau ne peuvent pas avoir de destinations identiques à celles des sous-réseaux des deux réseaux, ni de destinations plus spécifiques. Google Cloud rejette les routes statiques qui risquent d'entrer en conflit avec les routes de sous-réseau.
  • Pour éviter les conflits lors de l'utilisation d'un réseau VPC en mode automatique, ne créez pas de routes statiques dont les destinations correspondent à 10.128.0.0/9. Pour en savoir plus, consultez les plages d'adresses IPv4 en mode automatique.

  • Les destinations des routes statiques ne peuvent chevaucher aucune plage allouée interne.

  • Assurez-vous de bien connaître les instances utilisées comme sauts suivants avant de créer une route statique personnalisée qui utilise une VM comme saut suivant. Google Cloud vérifie seulement qu'une VM existe au moment où vous créez la route si vous choisissez une instance de saut suivant.

  • Si vous créez une route à l'aide d'un tag réseau, seules les VM dotées de ce tag recevront cette route. Cependant, les VM dotées d'un tag continuent de recevoir toutes les routes qui n'ont pas de tag réseau.

Console

  1. Accédez à la page "Routes" dans Google Cloud Console.
    Accéder à la page "Routes"
  2. Cliquez sur Créer une route.
  3. Spécifiez un nom et une description pour la route.
  4. Sélectionnez le réseau existant auquel la route s'appliquera.
  5. Spécifiez une plage d'adresses IP de destination pour définir la destination de la route.
  6. Spécifiez une priorité pour la route. La priorité n'est utilisée que pour déterminer l'ordre de routage lorsque des routes ont des destinations équivalentes. Pour en savoir plus, consultez Paramètres des routes.
  7. Pour rendre la route applicable uniquement à la sélection d'instances associées aux tags réseau correspondants, spécifiez ces tags dans le champ Tags des instances. Laissez le champ vide pour rendre la route applicable à toutes les instances du réseau, ou si vous sélectionnez un équilibreur de charge TCP/UDP interne comme saut suivant de la route. Les tags réseau ne s'appliquent pas aux routes dont le saut suivant est un équilibreur de charges TCP/UDP interne.
  8. Sélectionnez un saut suivant pour la route :

    • L'option Spécifier une instance vous permet de sélectionner une instance par nom. Le trafic sera acheminé vers cette instance (ou toute instance de remplacement portant le même nom dans la même zone) même si son adresse IP change.
    • L'option Spécifier l'adresse IP vous permet de saisir l'adresse IP d'une instance existante du réseau VPC. Consultez Prochains sauts et caractéristiques pour connaître les restrictions importantes sur les adresses IP de prochain saut valides.
  9. Cliquez sur Créer.

gcloud

Créez une route statique :

gcloud compute routes create ROUTE_NAME \
    --destination-range=DESTINATION_RANGE \
    --network=NETWORK \
    NEXT_HOP_SPECIFICATION

Remplacez les espaces réservés :

  • ROUTE_NAME est le nom de la route.
  • DESTINATION_RANGE représente les adresses IP de destination auxquelles cette route s'appliquera. La destination la plus large possible est 0.0.0.0/0.
  • NETWORK correspond au nom du réseau VPC qui contiendra la route.
  • NEXT_HOP_SPECIFICATION représente le prochain saut de la route statique. Vous devez spécifier une seule des options suivantes en tant que saut suivant. Pour en savoir plus sur les différents types de prochains sauts, consultez Prochains sauts et caractéristiques.
    • --next-hop-instance=INSTANCE_NAME et --next-hop-instance-zone=ZONE : utilisez ce saut suivant pour diriger le trafic vers une instance de VM existante par nom et par zone. Le trafic est envoyé vers l'adresse IP interne principale pour l'interface réseau d'une VM située sur le même réseau que la route.
    • --next-hop-address=ADDRESS : utilisez ce saut suivant pour diriger le trafic vers l'adresse IP d'une instance de VM existante.

Pour que la route statique ne s'applique qu'à certaines VM identifiées par tag réseau, ajoutez l'option --tags et spécifiez un ou plusieurs tags réseau. Pour en savoir plus sur la manière dont les tags réseau et les routes statiques fonctionnent ensemble, consultez Routes applicables. Vous pouvez utiliser des tags avec n'importe quelle route statique.

Consultez la documentation du SDK pour en savoir plus sur la syntaxe gcloud.

API

Créez une route statique.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": VALUE
}

Remplacez les espaces réservés :

  • PROJECT_ID est l'ID du projet dans lequel votre route est créée.
  • DESTINATION_RANGE représente les adresses IP de destination auxquelles cette route s'appliquera. La destination la plus large possible est 0.0.0.0/0.
  • ROUTE_NAME est le nom de la route.
  • NETWORK_NAME correspond au nom du réseau VPC qui contiendra la route.
  • La valeur VALUE de NEXT_HOP_SPECIFICATION représente le prochain saut de la route statique. Pour NEXT_HOP_SPECIFICATION, vous ne devez spécifier qu'un seul des champs de prochain saut suivants : nextHopIp, nextHopInstance. Pour en savoir plus sur les différents types de prochains sauts et caractéristiques, consultez Prochains sauts et caractéristiques.

Pour plus d'informations, reportez-vous à la méthode routes.insert.

Terraform

Vous pouvez créer une route statique à l'aide d'un module Terraform.

Cette route statique crée une route par défaut vers Internet.

module "google_compute_route" {
  source       = "terraform-google-modules/network/google//modules/routes"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "default"

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = "egress-inet"
      next_hop_internet = "true"
    }
  ]
}

Créer un VPN classique à l'aide du routage statique

L'assistant de configuration du VPN est la seule option de Google Cloud Console permettant de créer une passerelle VPN classique. L'assistant inclut toutes les étapes de configuration nécessaires pour créer une passerelle VPN classique, des tunnels, des sessions BGP et une ressource de passerelle VPN externe. Vous pouvez cependant choisir d'effectuer certaines tâches ultérieurement, comme la configuration des sessions BGP.

Console

Configurer la passerelle

  1. Dans Google Cloud Console, accédez à la page VPN.

    Accéder au VPN

  2. Si vous créez une passerelle pour la première fois, cliquez sur Créer une connexion VPN.

  3. Sélectionnez l'assistant de configuration VPN.

  4. Sélectionnez le bouton d'option VPN classique.

  5. Cliquez sur Continuer.

  6. Sur la page Créer une connexion VPN, spécifiez les paramètres de passerelle suivants :

    • Nom : nom de la passerelle VPN. Vous ne pourrez pas le modifier par la suite.
    • Description : si vous le souhaitez, vous pouvez ajouter une description.
    • Réseau : spécifiez un réseau VPC existant dans lequel créer la passerelle et le tunnel VPN.
    • Région : les passerelles et les tunnels Cloud VPN sont des objets régionaux. Choisissez une région Google Cloud dans laquelle la passerelle sera située. Les instances et les autres ressources appartenant à des régions différentes peuvent utiliser le tunnel pour acheminer le trafic de sortie, en suivant l'ordre de priorité des routes. Pour optimiser les performances, situez la passerelle et le tunnel dans la même région que les ressources Google Cloud concernées.
    • Adresse IP : créez ou choisissez une adresse IP externe régionale existante.

Configurer les tunnels

  1. Pour le nouveau tunnel, dans la section Tunnels, spécifiez les paramètres suivants :

    • Nom : nom du tunnel VPN. Vous ne pourrez pas le modifier par la suite.
    • Description : si vous le souhaitez, vous pouvez saisir une description.
    • Adresse IP du pair distant : spécifiez l'adresse IP externe de la passerelle VPN de pairs.
    • Version d'IKE : choisissez une version d'IKE compatible avec la passerelle VPN de pairs. Nous vous recommandons d'utiliser IKEv2 si cette version est compatible avec l'appareil associé.
    • Clé pré-partagée IKE : fournissez une clé pré-partagée (clé secrète partagée) utilisée pour l'authentification. Cette clé pré-partagée du tunnel Cloud VPN doit correspondre à celle utilisée lors de la configuration du tunnel équivalent sur la passerelle VPN de pairs. Pour générer une clé pré-partagée sécurisée de manière cryptographique, suivez ces instructions.
    • Sélectionnez des tunnels basés sur des règles.
    • Sous Options de routage, sélectionnez Basé sur des règles.
    • Sous Plages d'adresses IP du réseau distant, saisissez la liste des plages d'adresses IP utilisées par le trafic local sur la configuration VPN sur site, séparées par des espaces.
    • Dans le champ Plages d'adresses IP locales, saisissez la plage d'adresses IP externe que vous avez créée précédemment avec le préfixe de sous-réseau /32.
    • Cliquez sur OK.
    • Cliquez sur Créer.

gcloud

Pour créer une passerelle Cloud VPN, exécutez les commandes suivantes dans l'ordre indiqué. Dans les commandes, remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • NETWORK : nom de votre réseau Google Cloud
  • REGION : région Google Cloud dans laquelle vous créez la passerelle et le tunnel
  • GW_NAME : nom de la passerelle
  • GW_IP_NAME : un nom pour l'adresse IP externe utilisée par la passerelle.
  • (Facultatif) --target-vpn-gateway-region correspond à la région de la passerelle VPN classique à utiliser. Sa valeur doit être identique à celle de --region. Si cette option n'est pas spécifiée, elle est définie automatiquement. Cette option ignore la valeur par défaut de la propriété "compute/region" pour cet appel de commande.

Configurer les ressources de la passerelle

  1. Créez l'objet passerelle VPN cible.

    gcloud compute target-vpn-gateways create GW_NAME \
       --network=NETWORK \
       --region=REGION \
       --project=PROJECT_ID
    
  2. Réservez une adresse IP externe régionale (statique).

    gcloud compute addresses create GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
  3. Notez l'adresse IP de façon à pouvoir l'utiliser lors de la configuration de votre passerelle VPN de pairs :

    gcloud compute addresses describe GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID \
       --format='flattened(address)'
    
  4. Créez trois règles de transfert. Ces règles indiquent à Google Cloud d'acheminer le trafic ESP (IPSec), UDP 500 et UDP 4500 vers la passerelle.

    gcloud compute forwarding-rules create fr-GW_NAME-esp \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=ESP \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=4500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    

Créer le tunnel Cloud VPN

  1. Dans les commandes, remplacez les éléments suivants :

    • TUNNEL_NAME : un nom pour le tunnel.
    • ON_PREM_IP : adresse IP externe de la passerelle VPN de pairs.
    • IKE_VERS : 1 pour IKEv1 ou 2 pour IKEv2
    • SHARED_SECRET : votre clé prépartagée (clé secrète partagée). Cette clé pré-partagée du tunnel Cloud VPN doit correspondre à celle utilisée lors de la configuration du tunnel équivalent sur la passerelle VPN de pairs. Pour générer une clé pré-partagée sécurisée de manière cryptographique, suivez ces instructions.

    Pour les VPN basés sur des règles :

    • LOCAL_IP_RANGES : liste de plages d'adresses IP Google Cloud, séparées par des virgules. Par exemple, vous pouvez indiquer le bloc CIDR pour chaque sous-réseau d'un réseau VPC. Il s'agit de la partie s'affichant à gauche de la page Cloud VPN
    • REMOTE_IP_RANGES : liste des plages d'adresses IP du réseau de pairs, séparées par des virgules. Il s'agit de la partie s'affichant à droite de la page Cloud VPN.

    Pour configurer un tunnel VPN basé sur des règles, exécutez la commande suivante :

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=LOCAL_IP_RANGES \
        --remote-traffic-selector=REMOTE_IP_RANGES \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    Pour les VPN basés sur des routes, les sélecteurs de trafic local et distant correspondent à 0.0.0.0/0 comme défini dans la section Options de routage et sélecteurs de trafic.

    Pour configurer un tunnel VPN basé sur des routes, exécutez la commande suivante :

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Créez une route statique pour chaque plage d'adresses IP distante spécifiée dans l'option --remote-traffic-selector à l'étape précédente. Répétez cette commande pour chaque plage d'adresses IP distantes. Remplacez ROUTE_NAME par le nom unique de la route, et REMOTE_IP_RANGE par la plage d'adresses IP distantes appropriée.

    gcloud compute routes create ROUTE_NAME \
        --destination-range=REMOTE_IP_RANGE \
        --next-hop-vpn-tunnel=TUNNEL_NAME \
        --network=NETWORK \
        --next-hop-vpn-tunnel-region=REGION \
        --project=PROJECT_ID
    

Configurer la VM pour envoyer et recevoir du trafic

Pour finaliser la configuration et vérifier si vous pouvez envoyer et recevoir du trafic à partir de la VM, procédez comme suit :

Recevoir du trafic

  1. Dans Google Cloud Console, accédez à la page Instances de VM.
  2. Dans la liste des instances de machines virtuelles, recherchez la VM que vous avez créée précédemment et cliquez sur SSH.
  3. Créez un alias d'adresse IP pour la VM à l'aide de l'adresse IP publique que vous avez réservée précédemment. Vous pourrez recevoir du trafic vers la VM une fois cette étape terminée.

    Exécutez la commande suivante :

    sudo ip address add EXTERNAL_IP_ADDRESS/32 dev eth0
    

    Remplacez EXTERNAL_IP_ADDRESS par l'adresse IP publique que vous avez réservée précédemment.

Envoyer du trafic

  1. Dans Google Cloud Console, accédez à la page Instances de VM.
  2. Dans la liste des instances de machines virtuelles, recherchez la VM que vous avez créée précédemment et cliquez sur SSH.
  3. Exécutez la commande suivante pour vérifier si vous pouvez pinguer une adresse IP externe :

    $ ping -I EXTERNAL_IP_ADDRESS REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) from EXTERNAL_IP_ADDRESS : 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=4.46 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.11 ms
    

    Remplacez REMOTE_PEER_IP_ADDRESS par une adresse IP du sous-réseau du pair distant.

  4. Pour permettre à la VM d'utiliser automatiquement cette interface lors de l'envoi de trafic vers le tunnel VPN, vous pouvez créer une règle iptables.

    Par exemple, exécutez la commande suivante pour créer une règle iptables :

    $ sudo iptables -t nat -A POSTROUTING --destination REMOTE_PEER_SUBNET -j SNAT --to-source EXTERNAL_IP_ADDRESS
    

    Remplacez REMOTE_PEER_SUBNET par le sous-réseau du pair distant.

  5. Exécutez les commandes suivantes pour tester le tunnel Cloud VPN:

    $ ping REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=3.48 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.42 ms
    
    $ ping EXTERNAL_IP_ADDRESS
    PING 35.195.72.19 (35.195.72.19) 56(84) bytes of data.
    64 bytes from 35.195.72.19: icmp_seq=1 ttl=64 time=0.033 ms
    64 bytes from 35.195.72.19: icmp_seq=2 ttl=64 time=0.062 ms