Créer une passerelle VPN classique à l'aide du routage dynamique

Cette page explique comment utiliser le routage dynamique pour créer une passerelle VPN classique et un tunnel utilisant le protocole BGP (Border Gateway Protocol).

Avec le routage dynamique, vous ne spécifiez pas de sélecteurs de trafic locaux ou distants. Au lieu de cela, vous utilisez un routeur Cloud Router. Les informations relatives aux routes sont échangées de manière dynamique.

Pour en savoir plus sur Cloud VPN, consultez les ressources suivantes :

  • Pour découvrir les bonnes pratiques à suivre avant de configurer Cloud VPN, consultez la page Bonnes pratiques.

  • Pour en savoir plus sur Cloud VPN, consultez la Présentation de Cloud VPN.

  • Pour connaître la définition des termes utilisés sur cette page, consultez la section Termes clés.

Exigences

Consignes générales

  • Consultez les informations sur le fonctionnement du routage dynamique dans Google Cloud.
  • Assurez-vous que votre passerelle VPN de pairs est compatible avec le protocole BGP.
  • Consultez des exemples de topologies de VPN classiques.

Installer un logiciel VPN tiers sur une VM Compute Engine

Lorsque vous créez un tunnel VPN classique avec routage dynamique, l'adresse IP que vous spécifiez pour votre interface de passerelle VPN de pairs doit être attribuée à une VM Compute Engine.

Par conséquent, pour pouvoir créer des tunnels VPN classiques, vous devez préalablement installer un logiciel VPN tiers sur une VM Compute Engine. Lorsque vous configurez vos tunnels VPN classiques, vous spécifiez l'adresse IP externe de la VM Compute Engine comme interface de passerelle VPN de pairs.

En outre, l'adresse IP de l'interface de passerelle VPN de pairs doit être allouée à partir du pool d'adresses IPv4 externes régionales appartenant à Google. L'adresse IP ne peut pas appartenir à une plage d'utilisation de votre propre adresse IP (BYOIP).

Créer des routeurs cloud

Pour créer un tunnel qui utilise le routage dynamique avec un VPN classique, vous devez utiliser Cloud Router. Vous pouvez créer un routeur Cloud Router ou utiliser un routeur Cloud Router existant avec des tunnels Cloud VPN ou des rattachements de VLAN existants. Cependant, le routeur Cloud Router que vous utilisez ne doit pas déjà gérer une session BGP pour un rattachement de VLAN associé à une interconnexion partenaire, en raison des exigences spécifiques du numéro ASN du rattachement.

Avant de commencer

Configurez les éléments suivants dans Google Cloud pour faciliter la configuration de Cloud VPN :

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Installez Google Cloud CLI.
  5. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  6. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  8. Installez Google Cloud CLI.
  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  1. Si vous utilisez Google Cloud CLI, définissez votre ID de projet à l'aide de la commande suivante. Dans les instructions gcloud 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.

        gcloud config set project PROJECT_ID
        
  1. Vous pouvez également afficher un ID de projet déjà défini en exécutant la commande suivante :

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

Créer un réseau VPC et un sous-réseau personnalisés

Avant de créer une passerelle et un tunnel VPN classiques, créez un réseau cloud privé virtuel (VPC) et au moins un sous-réseau dans la région d'hébergement de la passerelle VPN classique :

Créer une passerelle et un tunnel

Console

Configurer la passerelle

  1. Accédez à la page VPN dans la console Google Cloud.
    Accéder à la page "VPN"
    1. Si vous créez une passerelle pour la première fois, sélectionnez le bouton Créer une connexion VPN.
    2. Sélectionnez l'assistant de configuration VPN.
  2. Sélectionnez la case d'option correspondant à un VPN classique.
  3. Cliquez sur Continuer.
  4. 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, spécifiez les éléments suivants dans la section Tunnels :

    • 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é secrète partagée : fournissez une clé prépartagée utilisée pour l'authentification. Cette clé secrète partagée du tunnel Cloud VPN doit correspondre à celle utilisée lors de la configuration du tunnel équivalent sur la passerelle VPN de pairs. Vous pouvez suivre ces instructions pour générer une clé secrète partagée sécurisée de manière cryptographique.

    • Options de routage : sélectionnez Dynamique (BGP). Vous ne pouvez utiliser le routage dynamique que pour la connexion à un logiciel de passerelle VPN tierce qui s'exécute dans une instance de VM Google Cloud.

    • Routeur Cloud Router : si vous ne l'avez pas déjà fait, créez un routeur Cloud Router en spécifiant les options indiquées ci-dessous. Vous pouvez également utiliser un routeur Cloud Router existant si le routeur ne gère pas déjà une session BGP pour un rattachement d'interconnexion associé à une interconnexion partenaire. Si vous choisissez un routeur Cloud Router existant, vous poursuivrez la création d'une session BGP, mais le numéro ASN Google restera identique. Pour créer un routeur Cloud Router, spécifiez les détails suivants :

      • Nom : nom du routeur cloud. Vous ne pourrez pas le modifier par la suite.
      • Description : si vous le souhaitez, vous pouvez saisir une description.
      • Numéro ASN Google : choisissez un numéro ASN privé (64512 à 65534, 4200000000 à 4294967294). Ce numéro ASN Google est utilisé pour toutes les sessions BGP gérées par le routeur Cloud Router. Vous ne pourrez pas le modifier par la suite.
      • Cliquez sur Enregistrer et continuer.
    • Session BGP : cliquez sur l'icône en forme de crayon, puis spécifiez les informations suivantes. Une fois l'opération terminée, cliquez sur Enregistrer et continuer :

      • Nom : nom de la session BGP. Vous ne pourrez pas le modifier par la suite.
      • Numéro ASN du pair : numéro ASN public ou privé (64512 à 65534, 4200000000 à 4294967294) utilisé par votre passerelle VPN de pairs.
      • Priorité des routes annoncées : (facultatif) priorité de base utilisée par Cloud Router pour annoncer les routes "vers Google Cloud". Pour en savoir plus, consultez la section Priorités et préfixes annoncés. Votre passerelle VPN de pairs importe ces valeurs en tant que valeurs MED.
      • Adresse IP BGP de Cloud Router et Adresse IP du pair BGP : les deux adresses IP des interfaces BGP doivent correspondre à des adresses IP de liaison locale appartenant à un masque CIDR /30 commun du bloc 169.254.0.0/16. Chaque adresse IP BGP définit l'adresse IP de la liaison locale utilisée pour échanger des informations de routage. Par exemple, 169.254.1.1 et 169.254.1.2 appartiennent à un bloc /30 commun.
  2. Si vous devez créer plusieurs tunnels sur la même passerelle, cliquez sur Ajouter un tunnel et répétez l'étape précédente. Vous pouvez ajouter d'autres tunnels ultérieurement.

  3. Cliquez sur Créer.

gcloud

Dans les commandes suivantes, remplacez :

  • PROJECT_ID par l'ID de votre projet ;
  • NETWORK par le nom de votre réseau Google Cloud ;
  • REGION par la région Google Cloud dans laquelle la passerelle et le tunnel doivent être créés ;
  • (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.
  • GW_NAME par le nom de la passerelle ;
  • GW_IP_NAME par le nom de l'adresse IP externe utilisée par la passerelle.

Pour créer une passerelle Google Cloud, exécutez les commandes suivantes dans l'ordre indiqué :

  1. Créez les ressources pour la passerelle Cloud VPN :

    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 \
           --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 \
          --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 \
          --ip-protocol UDP \
          --ports 4500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  2. Si vous ne l'avez pas déjà fait, exécutez la commande suivante pour créer un routeur Cloud Router. Remplacez les options comme indiqué ci-dessous. Vous pouvez également utiliser un routeur Cloud Router existant tant que le routeur ne gère pas encore une session BGP pour un rattachement d'interconnexion associé à une interconnexion partenaire.

    • Remplacez ROUTER_NAME par le nom du routeur Cloud Router.
    • Remplacez GOOGLE_ASN par un numéro ASN privé (64512 à 65534, 4200000000 à 4294967294). Ce numéro est utilisé pour toutes les sessions BGP gérées par le même routeur Cloud Router, et il est impossible de le modifier ultérieurement.
      gcloud compute routers create ROUTER_NAME \
      --asn GOOGLE_ASN \
      --network NETWORK \
      --region REGION \
      --project PROJECT_ID
    
  3. Créez le tunnel Cloud VPN en indiquant les informations suivantes :

    • Remplacez TUNNEL_NAME par le nom du tunnel.
    • Remplacez ON_PREM_IP par l'adresse IP externe de la passerelle VPN de pairs.
    • Remplacez IKE_VERS par 1 pour IKEv1 ou 2 pour IKEv2.
    • Remplacez SHARED_SECRET par votre clé secrète partagée. Cette clé secrète partagée du tunnel Cloud VPN doit correspondre à celle utilisée lors de la configuration du tunnel équivalent sur la passerelle VPN de pairs. Vous pouvez suivre ces instructions pour générer une clé secrète partagée sécurisée de manière cryptographique.
    • Remplacez ROUTER_NAME par le nom du routeur Cloud que vous souhaitez utiliser pour gérer les routes du tunnel Cloud VPN. Le routeur Cloud Router doit exister avant de créer un tunnel.

      gcloud compute vpn-tunnels create TUNNEL_NAME \
          --peer-address ON_PREM_IP \
          --ike-version IKE_VERS \
          --shared-secret SHARED_SECRET \
          --router ROUTER_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  4. Configurez une session BGP pour le routeur Cloud, en créant une interface et un pair BGP. Sélectionnez l'une des méthodes suivantes :

    • Pour permettre à Google Cloud de choisir automatiquement les adresses IP de liaison locales BGP :

      1. Ajoutez une nouvelle interface au routeur Cloud. Indiquez le nom de l'interface en remplaçant INTERFACE_NAME.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --region REGION \
            --project PROJECT_ID
        
      2. Ajoutez un pair BGP à l'interface. Remplacez PEER_NAME par le nom du pair, et PEER_ASN par le numéro ASN configuré pour la passerelle VPN de pairs.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --region REGION \
            --project PROJECT_ID
        

        Si vous souhaitez définir des routes apprises personnalisées pour le pair, ajoutez l'option --set-custom-learned-route-ranges. Vous pouvez également utiliser l'option --custom-learned-route-priority afin de définir une valeur de priorité comprise entre 0 et 65535 (inclus) pour les routes. Chaque session BGP peut avoir une valeur de priorité qui s'applique à toutes les routes apprises personnalisées pour la session. Pour plus d'informations sur cette fonctionnalité, consultez la section Routes apprises personnalisées.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        
      3. Répertoriez les adresses IP BGP sélectionnées par le routeur Cloud. Si vous avez ajouté une nouvelle interface à un routeur Cloud existant, les adresses IP BGP de la nouvelle interface doivent être répertoriées en indiquant le numéro d'index le plus élevé. L'adresse IP du pair correspond à l'adresse IP BGP que vous devez utiliser pour configurer votre passerelle VPN de pairs.

        gcloud compute routers get-status ROUTER_NAME \
             --region REGION \
             --project PROJECT_ID \
             --format='flattened(result.bgpPeerStatus[].ipAddress, \
             result.bgpPeerStatus[].peerIpAddress)'
        

        Le résultat attendu pour un routeur Cloud Router gérant un seul tunnel Cloud VPN (index 0) ressemble à l'exemple suivant, où GOOGLE_BGP_IP correspond à l'adresse IP BGP de l'interface du routeur Cloud Router et ON_PREM_BGP_IP correspond à l'adresse IP BGP de son pair.

        result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
        result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
        
    • Pour attribuer manuellement les adresses IP BGP associées à l'interface Google Cloud BGP et au pair, procédez comme suit :

      1. Choisissez deux adresses IP de liaison locales BGP dans un bloc /30 de la plage 169.254.0.0/16. Attribuez l'une de ces adresses IP BGP au routeur Cloud Router en remplaçant GOOGLE_BGP_IP dans la première commande, indiquée ci-dessous. L'autre adresse IP BGP est utilisée pour votre passerelle VPN de pairs. Vous devez configurer votre appareil pour utiliser cette adresse en remplaçant ON_PREM_BGP_IP dans la dernière commande, indiquée ci-dessous.

      2. Ajoutez une nouvelle interface au routeur Cloud. Spécifiez le nom de l'interface en remplaçant INTERFACE_NAME.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --ip-address GOOGLE_BGP_IP \
            --mask-length 30 \
            --region REGION \
            --project PROJECT_ID
        
      3. Ajoutez un pair BGP à l'interface. Remplacez PEER_NAME par le nom du pair, et PEER_ASN par le numéro ASN configuré pour la passerelle VPN de pairs.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --peer-ip-address ON_PREM_BGP_IP \
            --region REGION \
            --project PROJECT_ID
        

        Si vous souhaitez définir des routes apprises personnalisées pour le pair, ajoutez l'option --set-custom-learned-route-ranges. Vous pouvez également utiliser l'option --custom-learned-route-priority pour définir une valeur de priorité comprise entre 0 et 65535 (inclus) pour les routes. Chaque session BGP peut avoir une valeur de priorité qui s'applique à toutes les routes apprises personnalisées que vous avez configurées pour la session. Pour plus d'informations sur cette fonctionnalité, consultez la section Routes apprises personnalisées.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        

Terminer la configuration

Pour utiliser une nouvelle passerelle Cloud VPN et son tunnel VPN associé, procédez comme suit :

  1. Terminez la configuration de la passerelle VPN de pairs avec le logiciel VPN tiers de votre instance de VM Google Cloud. Configurez-y le tunnel correspondant. Vous ne pouvez utiliser le routage dynamique avec le VPN classique que pour la connexion à un logiciel de passerelle VPN tierce qui s'exécute dans une instance de VM Google Cloud.
  2. Configurez les règles de pare-feu dans Google Cloud et votre réseau de pairs, si nécessaire.
  3. Vérifiez l'état de votre tunnel VPN et de vos règles de transfert.

Étapes suivantes

  • Pour contrôler les adresses IP autorisées pour les passerelles VPN de pairs, consultez la page Limiter les adresses IP pour les passerelles VPN de pairs.
  • Pour utiliser des scénarios à haute disponibilité et à haut débit, ou des scénarios à plusieurs sous-réseaux, consultez la section Configurations avancées.
  • Pour vous aider à résoudre les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Cloud VPN, consultez la page Dépannage.