Créer des connexions VPN haute disponibilité entre Google Cloud et AWS

Ce tutoriel explique comment créer des connexions VPN à disponibilité élevée entre Google Cloud et Amazon Web Services (AWS) pour assurer une communication directe entre les réseaux VPC sur les deux plates-formes cloud.

Dans ce tutoriel, nous partons du principe que vous maîtrisez les concepts de base des réseaux de cloud privé virtuel (VPC), du protocole BGP (Border Gateway Protocol), des réseaux privés virtuels (VPN) et des tunnels IPsec.

Google Cloud fournit un service VPN haute disponibilité pour connecter votre réseau VPC à des environnements s'exécutant en dehors de Google Cloud, tels que les environnements sur site ou sur AWS via une connexion VPN IPsec. Les VPN haute disponibilité fournissent un contrat de niveau de service garantissant une disponibilité de 99,99%, lorsqu'ils sont configurés conformément aux bonnes pratiques de Google. Pour en savoir plus, consultez le contrat de niveau de service (SLA) de Cloud VPN.

Présentation de l'architecture

L'architecture décrite sur cette page comprend les composants suivants:

  • Cloud Router : service Google Cloud entièrement distribué et géré servant à fournir un routage dynamique à l'aide du protocole BGP pour vos réseaux VPC.
  • Passerelle VPN haute disponibilité : passerelle VPN gérée par Google s'exécutant sur Google Cloud. Chaque passerelle VPN haute disponibilité est une ressource régionale dotée de deux interfaces, chacune avec ses propres adresses IP externes : interface 0 et 1.
  • Tunnels VPN : connexions de la passerelle VPN haute disponibilité à la passerelle VPN de pairs sur AWS, à travers laquelle circule le trafic chiffré.
  • Passerelle VPN de pairs : deux points de terminaison VPN de site à site AWS pouvant être fournis par une passerelle virtuelle privée AWS ou d'une passerelle de transit AWS. Pour plus d'informations, consultez la page Qu'est-ce que le VPN site à site d'AWS ?

Chacune des connexions de passerelle VPN de pairs comporte deux tunnels préconfigurés pour pointer vers une seule passerelle client, qui est ici une interface VPN haute disponibilité Google Cloud. Avec cette configuration, le nombre minimal de tunnels pour atteindre la disponibilité de 99,99% garantie par le contrat de niveau de service est de quatre.

Les options de routage et la bande passante combinée sur les tunnels VPN varient en fonction de l'option de VPN site à site côté AWS :

Le diagramme suivant montre l'architecture.

Présentation de l'architecture

Objectifs

  • Créer un réseau VPC sur Google Cloud.
  • Créer une passerelle VPN haute disponibilité et un routeur Cloud sur Google Cloud.
  • Créer des passerelles client sur AWS.
  • Créer une connexion VPN avec routage dynamique sur AWS.
  • Créer une passerelle VPN externe et des tunnels VPN sur Google Cloud.
  • Vérifier et tester la connexion VPN entre les réseaux VPC sur Google Cloud et AWS.

Exemple de module Terraform

Vous pouvez utiliser le module gcp-to-aws-ha-vpn-terraform-module pour provisionner un VPN haute disponibilité entre Google Cloud et AWS.

Coûts

Ce tutoriel utilise des composants facturables de Google Cloud, y compris :

Pour obtenir une estimation des coûts pour les composants Google Cloud, utilisez le simulateur de coût Google Cloud.

Ce tutoriel utilise des composants facturables d'Amazon Web Services, y compris :

  • Passerelle de transit AWS
  • VPN de site à site AWS

Pour obtenir une estimation des coûts des composants AWS, utilisez le simulateur de coût AWS.

Avant de commencer

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

    Go to project selector

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

  3. Enable the Compute Engine API.

    Enable the API

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  5. Assurez-vous que vous disposez des rôles d'administrateur requis pour configurer les composants réseau :

    • Administrateur réseau : compute.networkAdmin
    • Administrateur de sécurité : compute.securityAdmin
    • Administrateur de Compute : compute.admin

    Pour plus d'informations sur les objectifs de ces rôles, consultez la section Rôles IAM pour les postes liés à la mise en réseau.

Créer la passerelle VPN haute disponibilité et le routeur Cloud sur Google Cloud

Dans cette section, vous allez créer un réseau VPC, une passerelle VPN haute disponibilité et un routeur Cloud sur Google Cloud.

  1. Dans Cloud Shell, assurez-vous que vous travaillez dans le projet Google Cloud que vous avez créé ou sélectionné.

    gcloud config set project YOUR_PROJECT_ID
    
    export PROJECT_ID=`gcloud config list --format="value(core.project)"`

    Remplacez YOUR_PROJECT_ID par l'ID de votre projet Google Cloud.

  2. Pour créer un réseau VPC personnalisé avec un seul sous-réseau, utilisez la commande gcloud compute networks create:

    gcloud compute networks create NETWORK \
        --subnet-mode SUBNET_MODE \
        --bgp-routing-mode BGP_ROUTING_MODE

    Remplacez les éléments suivants :

    Par exemple, la commande suivante crée un réseau VPC personnalisé nommé gc-vpc avec un seul sous-réseau:

    gcloud compute networks create gc-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
    
  3. Pour créer un sous-réseau pour héberger les VM de test, utilisez la commande gcloud compute networks subnets create:

    gcloud compute networks subnets create SUBNET_NAME \
        --network NETWORK \
        --region SUBNET_REGION \
        --range IP_ADDRESS_RANGE

    Remplacez les éléments suivants :

    • SUBNET_NAME : nom du sous-réseau
    • SUBNET_REGION : région dans laquelle créer le sous-réseau
    • IP_ADDRESS_RANGE : plage d'adresses IP du sous-réseau

      Par exemple, la commande suivante crée un sous-réseau nommé subnet-east4 dans le réseau VPC gc-vpc.

    gcloud compute networks subnets create subnet-east4  \
        --network gc-vpc \
        --region us-east4 \
        --range 10.1.1.0/24
    
  4. Pour créer une passerelle VPN haute disponibilité, utilisez la commande gcloud compute vpn-gateways create:

    gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \
        --network NETWORK \
        --region REGION

    Remplacez HA_VPN_GATEWAY_NAME par le nom de la passerelle VPN haute disponibilité.

  5. Pour créer un routeur Cloud Router, utilisez la commande gcloud compute routers create:

    gcloud compute routers create ROUTER_NAME \
        --region REGION \
        --network NETWORK \
        --asn GOOGLE_ASN \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets

    Remplacez les éléments suivants :

    • ROUTER_NAME : nom de votre routeur Cloud Router
    • GOOGLE_ASN : numéro ASN privé pour le routeur cloud que vous créez. Il peut s'agir de n'importe quel numéro ASN privé compris dans les plages 64512-65534 ou 4200000000-4294967294 que vous n'utilisez pas déjà en tant que numéro ASN de pair dans la même région et sur le même réseau.

    Par exemple, la commande suivante crée un routeur Cloud Router nommé cloud-router.

    gcloud compute routers create cloud-router \
        --region us-east4 \
        --network gc-vpc \
        --asn 65534 \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets
    

Pour créer une passerelle VPN avec deux interfaces, notez les adresses IP externes. Vous aurez besoin de ces adresses lorsque vous configurerez votre environnement côté AWS.

Créer des passerelles et des connexions VPN sur AWS

Dans cette section, vous allez créer des passerelles client, une passerelle cible et des connexions VPN avec routage dynamique.

Vous exécutez des commandes AWS à l'aide de l'interface de ligne de commande AWS.

  1. Pour créer deux passerelles client à l'aide de la commande AWS suivante, utilisez la commande AWS CLI create-customer-gateway:

    aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_0_IP_ADDRESS --bgp-asn GOOGLE_ASN
    
    aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_1_IP_ADDRESS --bgp-asn GOOGLE_ASN

    Remplacez INTERFACE_0_IP_ADDRESS et INTERFACE_1_IP_ADDRESS par les adresses IP externes de l'étape finale de la section précédente.

  2. Pour créer une passerelle cible et l'associer à votre VPC Amazon, procédez comme suit:

    La passerelle cible peut être une passerelle réseau privé virtuel ou une passerelle de transit. Pour en savoir plus, consultez la section Créer une passerelle cible.

    Passerelle réseau privé virtuel

    1. Créez une passerelle réseau privé virtuel avec un numéro ASN AWS spécifique à l'aide de la commande AWS CLI create-vpn-gateway:

      aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn AWS_SIDE_ASN

      Remplacez AWS_SIDE_ASN par le numéro ASN côté AWS.

      Cette commande doit ressembler à l'exemple suivant :

      aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
      
    2. Associez la passerelle réseau privé virtuel à votre réseau VPC à l'aide de la commande attach-vpn-gateway de l'AWS CLI:

      aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID

    Passerelle de transit

    1. Créez une passerelle de transit à l'aide de la commande AWS CLI create-transit-gateway:

      aws ec2 create-transit-gateway --description TRANSIT_GATEWAY_DESCRIPTION \
          --options=AmazonSideAsn=65001,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable

      Remplacez TRANSIT_GATEWAY_DESCRIPTION par une description de votre passerelle de transit.

    2. Associez votre réseau VPC à la passerelle de transit à l'aide de la commande create-transit-gateway-vpc-attachment de la CLI AWS:

      aws ec2 create-transit-gateway-vpc-attachment \
          --transit-gateway-id TRANSIT_GATEWAY_ID \
          --vpc-id VPC_ID \
          --subnet-ids "SUBNET_ID"

      Remplacez les éléments suivants :

      • TRANSIT_GATEWAY_ID: ID de la passerelle de transit
      • VPC_ID: ID du VPC
      • SUBNET_ID: ID d'un ou de plusieurs sous-réseaux
  3. Pour créer une connexion VPN avec routage dynamique, procédez comme suit:

    La méthode de création d'une connexion VPN avec routage dynamique diffère selon que votre passerelle cible est une passerelle réseau privé virtuel ou une passerelle de transit. Pour en savoir plus, consultez la section Créer une connexion VPN.

    Passerelle réseau privé virtuel

    Créez une connexion VPN avec routage dynamique entre la passerelle réseau privé virtuel et la passerelle client, puis appliquez des tags à la connexion VPN :

        aws ec2 create-vpn-connection \
            --type ipsec.1 \
            --customer-gateway-id CUSTOMER_GATEWAY_1 \
            --vpn-gateway-id VPN_GATEWAY_ID \
            --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
    
        aws ec2 create-vpn-connection \
            --type ipsec.1 \
            --customer-gateway-id CUSTOMER_GATEWAY_2 \
            --vpn-gateway-id VPN_GATEWAY_ID \
            --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

    Remplacez les éléments suivants :

    • CUSTOMER_GATEWAY_1 : passerelle Google Cloud VPN, interface 0
    • CUSTOMER_GATEWAY_2 : passerelle Google Cloud VPN, interface 1
    • AWS_T1_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 1, tunnel 1
    • AWS_T2_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 1, tunnel 2
    • AWS_T3_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 2, tunnel 1
    • AWS_T4_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 2, tunnel 2
    • SHARED_SECRET_1 : clé prépartagée pour la connexion 1, tunnel 1
    • SHARED_SECRET_2 : clé prépartagée pour la connexion 1, tunnel 2
    • SHARED_SECRET_3 : clé prépartagée pour la connexion 2, tunnel 1
    • SHARED_SECRET_4 : clé prépartagée pour la connexion 2, tunnel 2

    Passerelle de transit

    Créez une connexion VPN avec routage dynamique entre la passerelle de transit et les passerelles client :

    aws ec2 create-vpn-connection \
        --type ipsec.1 \
        --customer-gateway-id CUSTOMER_GATEWAY_1 \
        --transit-gateway-id TRANSIT_GATEWAY_ID \
        --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
    
    aws ec2 create-vpn-connection \
        --type ipsec.1 \
        --customer-gateway-id CUSTOMER_GATEWAY_2 \
        --transit-gateway-id TRANSIT_GATEWAY_ID \
        --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

    Remplacez l'élément suivant :

    • CUSTOMER_GATEWAY_1 : passerelle Google Cloud VPN, interface 0
    • CUSTOMER_GATEWAY_2 : passerelle Google Cloud VPN, interface 1
    • TRANSIT_GATEWAY_ID: ID de la passerelle de transit associée à la connexion VPN
    • AWS_T1_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 1, tunnel 1
    • AWS_T2_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 1, tunnel 2
    • AWS_T3_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 2, tunnel 1
    • AWS_T4_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 2, tunnel 2
    • SHARED_SECRET_1 : clé prépartagée pour la connexion 1, tunnel 1
    • SHARED_SECRET_2 : clé prépartagée pour la connexion 1, tunnel 2
    • SHARED_SECRET_3 : clé prépartagée pour la connexion 2, tunnel 1
    • SHARED_SECRET_4 : clé prépartagée pour la connexion 2, tunnel 2
    • CUSTOMER_GATEWAY_1 : passerelle Google Cloud VPN, interface 0
    • CUSTOMER_GATEWAY_2 : passerelle Google Cloud VPN, interface 1
    • TRANSIT_GATEWAY_ID: ID de la passerelle de transit associée à la connexion VPN
    • AWS_T1_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 1, tunnel 1
    • AWS_T2_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 1, tunnel 2
    • AWS_T3_IP : adresse IP interne pour la passerelle réseau privé virtuel pour la connexion 2, tunnel 1
    • AWS_T4_IP : adresse IP interne de la passerelle réseau privé virtuel pour la connexion 2, tunnel 2
    • SHARED_SECRET_1 : clé prépartagée pour la connexion 1, tunnel 1
    • SHARED_SECRET_2 : clé prépartagée pour la connexion 1, tunnel 2
    • SHARED_SECRET_3 : clé prépartagée pour la connexion 2, tunnel 1
    • SHARED_SECRET_4 : clé prépartagée pour la connexion 2, tunnel 2

    AWS réserve certaines plages CIDR. Vous ne pouvez donc pas utiliser les valeurs de ces plages en tant qu'adresses IP internes (AWS_T1_IP, AWS_T2_IP, AWS_T3_IP, AWS_T4_IP). Pour en savoir plus sur les blocs CIDR réservés par AWS, consultez la page Options de tunnel pour votre connexion VPN site à site.

    Ces commandes créent quatre tunnels vers Google Cloud.

  4. Téléchargez les fichiers de configuration pour les deux connexions VPN.

    Dans les étapes suivantes, vous allez utiliser les valeurs du fichier de configuration que vous avez téléchargé pour créer et configurer des ressources côté Google Cloud.

Créer des tunnels VPN et des interfaces Cloud Router sur Google Cloud

Dans cette section, vous allez utiliser les informations de la connexion VPN AWS que vous avez créée à la section précédente pour créer une passerelle VPN externe, des tunnels VPN et des interfaces Cloud Router dans Google Cloud.

Lorsque vous configurez des tunnels Cloud VPN vers AWS, vous devez utiliser le protocole IKEv2 et ne sélectionner qu'un seul ensemble de chiffrement IKE pour vous assurer que le tunnel est correctement établi. Par exemple, sélectionnez un algorithme de chiffrement, un algorithme d'intégrité et un groupe Diffie-Hellman (DH) de phase 1 et de phase 2. Les ensembles de transformation AWS par défaut créent une charge utile association de sécurité (SA) importante, ce qui peut entraîner la fragmentation IP des paquets IKE. Cloud VPN n'est pas compatible avec les paquets IKE fragmentés.

  1. Dans Cloud Shell, créez une passerelle VPN externe avec quatre interfaces pour les adresses IP externes AWS.

    Avant de créer la passerelle VPN externe, vérifiez que les adresses IP externes AWS correspondent aux valeurs du fichier de configuration que vous avez téléchargé. Vous ne pourrez plus modifier ces adresses IP une fois la passerelle VPN externe créée. Si les adresses ne correspondent pas, la connexion du tunnel VPN haute disponibilité ne peut pas être établie.

    gcloud compute external-vpn-gateways create PEER_GATEWAY_NAME --interfaces \
      0=AWS_GW_IP_1,1=AWS_GW_IP_2,2=AWS_GW_IP_3,3=AWS_GW_IP_4

    Remplacez les éléments suivants :

    • AWS_GW_IP_1 : adresse IP externe de la passerelle réseau privé virtuel pour la connexion 1, tunnel 1
    • AWS_GW_IP_2 : adresse IP externe de la passerelle réseau privé virtuel pour la connexion 1, tunnel 2
    • AWS_GW_IP_3 : adresse IP externe de la passerelle réseau privé virtuel pour la connexion 2, tunnel 1
    • AWS_GW_IP_4 : adresse IP externe de la passerelle réseau privé virtuel pour la connexion 2, tunnel 2
  2. Créez quatre tunnels VPN.

    • Tunnel 1 :

      gcloud compute vpn-tunnels create tunnel-1 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 0 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_1 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 0
    • Tunnel 2 :

      gcloud compute vpn-tunnels create tunnel-2 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 1 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_2 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 0
    • Tunnel 3 :

      gcloud compute vpn-tunnels create tunnel-3 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 2 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_3 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 1
    • Tunnel 4 :

      gcloud compute vpn-tunnels create tunnel-4 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 3 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_4 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 1

      Remplacez les éléments suivants :

  3. Créez quatre interfaces Cloud Router.

    Dans les commandes suivantes, remplacez chaque espace réservé GOOGLE_BGP_IP_TUNNEL par l'adresse IP interne du tunnel côté Google Cloud. Les valeurs des fichiers de configuration VPN d'AWS sont utilisables en tant qu'adresses de passerelle client pour chaque tunnel. Chacune de ces adresses doit se trouver dans la plage CIDR /30 de la plage réseau 169.254.0.0/16.

    • Interface Cloud Router 1 :

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-1 \
          --vpn-tunnel tunnel-1 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_1 \
          --mask-length 30 \
          --region REGION
    • Interface Cloud Router 2 :

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-2 \
          --vpn-tunnel tunnel-2 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_2 \
          --mask-length 30 \
          --region REGION
    • Interface Cloud Router 3 :

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-3 \
          --vpn-tunnel tunnel-3 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_3 \
          --mask-length 30 \
          --region REGION
    • Interface Cloud Router 4 :

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-4 \
          --vpn-tunnel tunnel-4 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_4 \
          --mask-length 30 \
          --region REGION
  4. Ajoutez des pairs BGP.

    Dans les commandes suivantes, remplacez PEER_ASN par le numéro ASN pour la partie AWS de la session BGP.

    • Connexion AWS 1, tunnel 1:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn1-tunn1 \
          --peer-asn PEER_ASN \
          --interface int-1 \
          --peer-ip-address AWS_T1_IP \
          --region REGION
    • Connexion AWS 1, tunnel 2:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn1-tunn2 \
          --peer-asn PEER_ASN \
          --interface int-2 \
          --peer-ip-address AWS_T2_IP \
          --region REGION
    • Connexion AWS 2, tunnel 1:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn2-tunn1 \
          --peer-asn PEER_ASN \
          --interface int-3 \
          --peer-ip-address AWS_T3_IP \
          --region REGION
    • Connexion AWS 2, tunnel 2:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn2-tunn2 \
          --peer-asn PEER_ASN \
          --interface int-4 \
          --peer-ip-address AWS_T4_IP \
          --region REGION

Vérifier la configuration

  1. Dans Cloud Shell, vérifiez l'état de Cloud Router :

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

    Le résultat ressemble à ce qui suit :

    result.bgpPeerStatus[].peerIpAddress)'
    result.bgpPeerStatus[0].ipAddress:     169.254.171.18
    result.bgpPeerStatus[0].name:          aws-conn1-tunn1
    result.bgpPeerStatus[0].peerIpAddress: 169.254.171.17
    result.bgpPeerStatus[1].ipAddress:     169.254.156.154
    result.bgpPeerStatus[1].name:          aws-conn1-tunn2
    result.bgpPeerStatus[1].peerIpAddress: 169.254.156.153
    result.bgpPeerStatus[2].ipAddress:     169.254.123.38
    result.bgpPeerStatus[2].name:          aws-conn2-tunn1
    result.bgpPeerStatus[2].peerIpAddress: 169.254.123.37
    result.bgpPeerStatus[3].ipAddress:     169.254.48.186
    result.bgpPeerStatus[3].name:          aws-conn2-tunn2
    result.bgpPeerStatus[3].peerIpAddress: 169.254.48.185
    
  2. Répertoriez tous les tunnels :

    gcloud compute vpn-tunnels list

    Le résultat ressemble à ce qui suit :

    NAME      REGION    GATEWAY    PEER_ADDRESS
    tunnel-1  us-east4  ha-vpn-gw  34.205.x.x
    tunnel-2  us-east4  ha-vpn-gw  52.203.x.x
    tunnel-3  us-east4  ha-vpn-gw  3.208.x.x
    tunnel-4  us-east4  ha-vpn-gw  52.204.x.x
    
  3. Vérifiez l'état du tunnel :

    gcloud compute vpn-tunnels describe tunnel-1 \
         --region REGION \
         --format='flattened(status,detailedStatus)'

    Le résultat ressemble à ce qui suit :

    detailed_status: Tunnel is up and running.
    status:          ESTABLISHED
    
  4. Répertoriez les routes dynamiques apprises par Cloud Router :

    gcloud compute routers get-status ROUTER_NAME \
        --region REGION \
        --format="flattened(result.bestRoutes)"

    Le résultat ressemble à ce qui suit :

    result.bestRoutes[0].creationTimestamp: 2021-01-19T20:42:07.366-08:00
    result.bestRoutes[0].destRange:         10.2.2.0/24
    result.bestRoutes[0].kind:              compute#route
    result.bestRoutes[0].nextHopIp:         169.254.171.17
    result.bestRoutes[0].priority:          100
    result.bestRoutes[1].creationTimestamp: 2021-01-19T20:42:07.366-08:00
    result.bestRoutes[1].destRange:         10.2.2.0/24
    result.bestRoutes[1].kind:              compute#route
    result.bestRoutes[1].nextHopIp:         169.254.156.153
    result.bestRoutes[1].priority:          100
    result.bestRoutes[2].creationTimestamp: 2021-01-19T20:56:26.588-08:00
    result.bestRoutes[2].destRange:         10.2.2.0/24
    result.bestRoutes[2].kind:              compute#route
    result.bestRoutes[2].nextHopIp:         169.254.123.37
    result.bestRoutes[2].priority:          100
    result.bestRoutes[3].creationTimestamp: 2021-01-19T20:56:26.588-08:00
    result.bestRoutes[3].destRange:         10.2.2.0/24
    result.bestRoutes[3].kind:              compute#route
    result.bestRoutes[3].nextHopIp:         169.254.48.185
    result.bestRoutes[3].priority:          100
    

Tester la connexion VPN

  1. Créez des VM de test de chaque côté des tunnels afin de tester les requêtes ping.

    Assurez-vous que des règles de pare-feu VPC sont en place pour autoriser le trafic ICMP.

  2. Testez la connexion à l'aide de la commande ping.

    1. Si le test ping échoue, consultez les journaux dans Google Cloud et les journaux du VPN de site à site AWS. Les messages d'erreur dans les journaux peuvent vous aider à identifier le problème. Pour résoudre les problèmes liés à votre connexion VPN, consultez les ressources suivantes :
  3. Mesurez la bande passante entre vos machines de test à l'aide de iperf.

    • Côté serveur :

      iperf3 -s
    • Côté client :

      iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

Effectuer un nettoyage

Supprimez les ressources Google Cloud et AWS que vous avez créées au cours de ce tutoriel.

Supprimer le projet Google Cloud

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, vous pouvez supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer les ressources AWS

  1. Supprimer une connexion VPN site à site
  2. Supprimez la passerelle de transit.
  3. Arrêter des instances Amazon EC2

Étape suivante