Crear conexiones VPN de alta disponibilidad entre Google Cloud y AWS

En este tutorial se muestra cómo crear conexiones VPN de alta disponibilidad entre Google Cloud y Amazon Web Services (AWS) para que las redes VPC de las dos plataformas en la nube se comuniquen directamente.

En este tutorial se da por hecho que conoces los conceptos básicos de las redes de nube privada virtual (VPC), el protocolo de pasarela fronteriza (BGP), las redes privadas virtuales (VPN) y los túneles IPsec.

Google Cloud proporciona un servicio de VPN de alta disponibilidad altamente disponible para conectar tu red VPC con entornos que se ejecutan fuera de Google Cloud, como entornos on-premise o en AWS, a través de una conexión VPN IPSec. Las VPN de alta disponibilidad ofrecen un acuerdo de nivel de servicio del 99,99% de disponibilidad del servicio cuando se configuran según las prácticas recomendadas de Google. Para obtener más información, consulta el Acuerdo de Nivel de Servicio de Cloud VPN.

Información general sobre la arquitectura

La arquitectura descrita en esta página incluye los siguientes componentes:

  • Cloud Router: un servicio totalmente distribuido y gestionado Google Cloud que proporciona enrutamiento dinámico mediante BGP para tus redes de VPC.
  • Pasarela de VPN de alta disponibilidad: una pasarela de VPN gestionada por Google que se ejecuta en Google Cloud. Cada pasarela VPN de alta disponibilidad es un recurso regional que tiene dos interfaces, cada una con sus propias direcciones IP externas: la interfaz 0 y la interfaz 1.
  • Túneles VPN: conexiones desde la pasarela de VPN de alta disponibilidad a la pasarela de VPN de par en AWS a través de las cuales pasa el tráfico cifrado.
  • Pasarela VPN de par: dos endpoints de VPN de sitio a sitio de AWS, que pueden ser de una pasarela privada virtual de AWS o de una pasarela de tránsito de AWS. Para obtener más información, consulta ¿Qué es la VPN de sitio a sitio de AWS?

Cada una de las conexiones de la pasarela de VPN de par incluye dos túneles preconfigurados para que apunten a una única pasarela de cliente, que en este caso es unaGoogle Cloud interfaz de VPN de alta disponibilidad. Con esta configuración, el número mínimo de túneles para cumplir el SLA de disponibilidad del servicio del 99,99% es cuatro.

Las opciones de enrutamiento y el ancho de banda combinado de los túneles VPN varían en función de la opción de VPN de sitio a sitio que se utilice en AWS:

En el siguiente diagrama se muestra la arquitectura.

Información general sobre la arquitectura.

Objetivos

  • Crea una red de VPC en Google Cloud.
  • Crea una pasarela de VPN de alta disponibilidad y un Cloud Router enGoogle Cloud.
  • Crea pasarelas de cliente en AWS.
  • Crea una conexión VPN con enrutamiento dinámico en AWS.
  • Crea una pasarela de VPN externa y túneles de VPN en Google Cloud.
  • Verifica y prueba la conexión VPN entre redes VPC enGoogle Cloud y AWS.
  • Usa Cloud Location Finder para identificar las regiones Google Cloud más cercanas.

Ejemplo de módulo de Terraform

Puedes usar el módulo gcp-to-aws-ha-vpn-terraform-module para aprovisionar una VPN de alta disponibilidad entre Google Cloud y AWS.

Costes

En este tutorial se usan componentes facturables de Google Cloud, incluidos los siguientes:

Para obtener una estimación de los costes de los Google Cloud componentes, usa la Google Cloud calculadora de precios.

En este tutorial se usan componentes facturables de Amazon Web Services, incluidos los siguientes:

  • AWS Transit Gateway
  • VPN de sitio a sitio de AWS

Para obtener una estimación de los costes de los componentes de AWS, usa la calculadora de precios de AWS.

Antes de empezar

  1. 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

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

  3. 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

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

    Activate Cloud Shell

  5. Asegúrate de que tienes los roles de administrador necesarios para configurar los componentes de red:

    • Administrador de red: compute.networkAdmin
    • Administrador de seguridad: compute.securityAdmin
    • Administrador de Compute: compute.admin

    Para obtener más información sobre los objetivos de estos roles, consulta Roles de gestión de identidades y accesos para funciones de tareas relacionadas con redes.

  6. Crea la pasarela de VPN de alta disponibilidad y el Cloud Router en Google Cloud

    En esta sección, crearás una red de VPC, una pasarela de VPN de alta disponibilidad y un Cloud Router en Google Cloud.

    1. En Cloud Shell, asegúrate de que estás trabajando en elGoogle Cloud proyecto que has creado o seleccionado.

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

      Sustituye YOUR_PROJECT_ID por elGoogle Cloud ID de tu proyecto.

    2. Para crear una red VPC personalizada con una sola subred, usa el comando gcloud compute networks create:

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

      Haz los cambios siguientes:

      Por ejemplo, el siguiente comando crea una red VPC personalizada llamada gc-vpc con una sola subred:

      gcloud compute networks create gc-vpc \
          --subnet-mode custom \
          --bgp-routing-mode global
      
    3. Para crear una subred que aloje las VMs de prueba, usa el comando gcloud compute networks subnets create:

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

      Haz los cambios siguientes:

      • SUBNET_NAME: el nombre de la subred
      • SUBNET_REGION: la región en la que se creará la subred.
      • IP_ADDRESS_RANGE: intervalo de direcciones IP de la subred.

        Por ejemplo, el siguiente comando crea una subred llamada subnet-east4 en la red de VPC gc-vpc.

      gcloud compute networks subnets create subnet-east4  \
          --network gc-vpc \
          --region us-east4 \
          --range 10.1.1.0/24
      
    4. Para crear una pasarela de VPN de alta disponibilidad, usa el comando gcloud compute vpn-gateways create:

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

      Sustituye HA_VPN_GATEWAY_NAME por el nombre de la pasarela de VPN de alta disponibilidad.

    5. Para crear un router de Cloud Router, usa el comando 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

      Haz los cambios siguientes:

      • ROUTER_NAME: nombre de Cloud Router
      • GOOGLE_ASN: el ASN privado (número de sistema autónomo) del router de Cloud que vas a crear. Puede ser cualquier ASN privado del intervalo 64512-65534 o 4200000000-4294967294 que no estés usando ya como ASN de par en la misma región y red.

      Por ejemplo, el siguiente comando crea un Cloud Router llamado cloud-router.

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

    Para crear una pasarela VPN con dos interfaces, anota las direcciones IP externas. Necesitas estas direcciones para configurar tu entorno en AWS.

    Crear pasarelas y conexiones VPN en AWS

    En esta sección, creará pasarelas de cliente, una pasarela de destino y conexiones VPN con enrutamiento dinámico.

    Los comandos de AWS se ejecutan mediante la interfaz de línea de comandos de AWS.

    1. Para crear dos pasarelas de cliente con el siguiente comando de AWS, usa el create-customer-gatewaycomando de la CLI de AWS:

      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

      Sustituye INTERFACE_0_IP_ADDRESS y INTERFACE_1_IP_ADDRESS por las direcciones IP externas del último paso de la sección anterior.

    2. Para crear una pasarela de destino y adjuntarla a tu VPC de Amazon, haz lo siguiente:

      La pasarela de destino puede ser una pasarela privada virtual o una pasarela de tránsito. Para obtener más información, consulta el artículo Crear una pasarela de destino.

      Pasarela privada virtual

      1. Crea una gateway privada virtual con un ASN específico del lado de AWS mediante el create-vpn-gateway comando de la CLI de AWS:

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

        Sustituye AWS_SIDE_ASN por el ASN del lado de AWS.

        Este comando debería ser similar al siguiente ejemplo:

        aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
        
      2. Asocia la gateway privada virtual a tu red de VPC mediante el comando de la CLI de AWS attach-vpn-gateway:

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

      Pasarela de tránsito

      1. Crea una transit gateway con el create-transit-gatewaycomando de la CLI de AWS:

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

        Sustituye TRANSIT_GATEWAY_DESCRIPTION por una descripción de tu pasarela de transporte.

      2. Adjunta tu red de VPC a la pasarela de tránsito mediante el create-transit-gateway-vpc-attachmentcomando de la CLI de AWS:

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

        Haz los cambios siguientes:

        • TRANSIT_GATEWAY_ID: el ID de la pasarela de tránsito
        • VPC_ID: ID de la VPC.
        • SUBNET_ID: los IDs de una o varias subredes.
    3. Para crear una conexión VPN con enrutamiento dinámico, haz lo siguiente:

      El método para crear una conexión VPN con enrutamiento dinámico varía en función de si la pasarela de destino es una pasarela privada virtual o una pasarela de tránsito. Para obtener más información, consulta Crear una conexión VPN.

      Pasarela privada virtual

      Crea una conexión VPN con enrutamiento dinámico entre la pasarela privada virtual y las pasarelas del cliente, y aplica etiquetas a la conexión 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}]'

      Haz los cambios siguientes:

      • CUSTOMER_GATEWAY_1: interfaz 0 de la puerta de enlace de Google Cloud VPN
      • CUSTOMER_GATEWAY_2: Google Cloud VPN gateway, interface 1
      • AWS_T1_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1
      • AWS_T2_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2
      • AWS_T3_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1
      • AWS_T4_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2
      • SHARED_SECRET_1: clave precompartida para la conexión 1, túnel 1
      • SHARED_SECRET_2: clave precompartida para la conexión 1, túnel 2
      • SHARED_SECRET_3: clave precompartida para la conexión 2, túnel 1
      • SHARED_SECRET_4: Clave precompartida para la conexión 2, túnel 2

      Pasarela de tránsito

      Crea una conexión VPN con enrutamiento dinámico entre la pasarela de tránsito y las pasarelas del cliente:

      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}]'

      Haz los cambios siguientes:

      • CUSTOMER_GATEWAY_1: interfaz 0 de la puerta de enlace de Google Cloud VPN
      • CUSTOMER_GATEWAY_2: Google Cloud VPN gateway, interface 1
      • TRANSIT_GATEWAY_ID: el ID de la pasarela de tránsito asociada a la conexión VPN
      • AWS_T1_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1
      • AWS_T2_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2
      • AWS_T3_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1
      • AWS_T4_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2
      • SHARED_SECRET_1: clave precompartida para la conexión 1, túnel 1
      • SHARED_SECRET_2: clave precompartida para la conexión 1, túnel 2
      • SHARED_SECRET_3: clave precompartida para la conexión 2, túnel 1
      • SHARED_SECRET_4: Clave precompartida para la conexión 2, túnel 2
      • CUSTOMER_GATEWAY_1: interfaz 0 de la puerta de enlace de Google Cloud VPN
      • CUSTOMER_GATEWAY_2: Google Cloud VPN gateway, interface 1
      • TRANSIT_GATEWAY_ID: el ID de la pasarela de tránsito asociada a la conexión VPN
      • AWS_T1_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1
      • AWS_T2_IP: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2
      • AWS_T3_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1
      • AWS_T4_IP: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2
      • SHARED_SECRET_1: clave precompartida para la conexión 1, túnel 1
      • SHARED_SECRET_2: clave precompartida para la conexión 1, túnel 2
      • SHARED_SECRET_3: clave precompartida para la conexión 2, túnel 1
      • SHARED_SECRET_4: Clave precompartida para la conexión 2, túnel 2

      AWS reserva algunos intervalos CIDR, por lo que no puedes usar valores de estos intervalos como direcciones IP internas (AWS_T1_IP, AWS_T2_IP, AWS_T3_IP y AWS_T4_IP). Para obtener información sobre los bloques CIDR que reserva AWS, consulta Opciones de túnel para tu conexión VPN de sitio a sitio.

      Crea cuatro túneles para Google Cloud con estos comandos.

    4. Descarga el archivo de configuración de las dos conexiones VPN.

      En los pasos siguientes, utilizará los valores del archivo de configuración que ha descargado para crear y configurar recursos en el lado de Google Cloud.

    Crea túneles de VPN e interfaces de Cloud Router en Google Cloud

    En esta sección, utilizarás la información de la conexión VPN de AWS que has creado en la sección anterior para crear una pasarela de VPN externa, túneles VPN e interfaces de Cloud Router en Google Cloud.

    Cuando configures túneles de Cloud VPN en AWS, debes usar el protocolo IKEv2 y seleccionar solo un conjunto de cifrado IKE para asegurarte de que el túnel se establece correctamente. Por ejemplo, selecciona un algoritmo de cifrado de la fase 1 y otro de la fase 2, un algoritmo de integridad y un grupo Diffie-Hellman (DH). Los conjuntos de transformación predeterminados de AWS crean una carga útil de asociación de seguridad (SA) de gran tamaño, lo que puede provocar la fragmentación de IP de los paquetes IKE. Cloud VPN no admite paquetes IKE fragmentados.

    1. En Cloud Shell, crea una pasarela de VPN externa con cuatro interfaces para las direcciones IP externas de AWS.

      Antes de crear la puerta de enlace de VPN externa, comprueba que las direcciones IP externas de AWS coincidan con los valores del archivo de configuración que has descargado. No puedes modificar estas direcciones IP después de crear la pasarela de VPN externa. Si las direcciones no coinciden, no se podrá establecer la conexión del túnel VPN de alta disponibilidad.

      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

      Haz los cambios siguientes:

      • AWS_GW_IP_1: dirección IP externa de la pasarela privada virtual de la conexión 1, túnel 1
      • AWS_GW_IP_2: dirección IP externa de la pasarela privada virtual de la conexión 1, túnel 2
      • AWS_GW_IP_3: dirección IP externa de la pasarela privada virtual de la conexión 2, túnel 1
      • AWS_GW_IP_4: dirección IP externa de la pasarela privada virtual de la conexión 2, túnel 2
    2. Crea cuatro túneles VPN.

      • Túnel 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
      • Túnel 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
      • Túnel 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
      • Túnel 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

        Haz los cambios siguientes:

    3. Crea cuatro interfaces de Cloud Router.

      En los siguientes comandos, sustituye cada marcador de posición GOOGLE_BGP_IP_TUNNEL por la dirección IP interna del túnel en el lado Google Cloud . Puedes encontrar los valores en los archivos de configuración de VPN de AWS como la dirección de la gateway del cliente de cada túnel. Cada una de estas direcciones debe estar en el intervalo /30 CIDR dentro del intervalo de la red 169.254.0.0/16.

      • Interfaz de 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
      • Interfaz de 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
      • Interfaz de 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
      • Interfaz de 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. Añade peers de BGP.

      En los siguientes comandos, sustituye PEER_ASN por el ASN del lado de AWS de la sesión de BGP.

      • Conexión 1 de AWS, túnel 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
      • Conexión de AWS 1, túnel 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
      • Conexión de AWS 2, túnel 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
      • Conexión de AWS 2, túnel 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

    Verificar la configuración

    1. En Cloud Shell, comprueba el estado de Cloud Router:

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

      El resultado debería ser similar al siguiente:

      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. Mostrar todos los túneles:

      gcloud compute vpn-tunnels list

      El resultado debería ser similar al siguiente:

      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. Comprueba el estado del túnel:

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

      El resultado debería ser similar al siguiente:

      detailed_status: Tunnel is up and running.
      status:          ESTABLISHED
      
    4. Lista de rutas dinámicas aprendidas por Cloud Router:

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

      El resultado debería ser similar al siguiente:

      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
      

    Probar la conexión VPN

    1. Crea máquinas virtuales de prueba en cada extremo de los túneles para probar las solicitudes de ping.

      Asegúrate de que tienes reglas de cortafuegos de VPC para permitir el tráfico ICMP.

    2. Prueba la conexión con el comando ping.

      1. Si la prueba ping falla, consulta los registros en Google Cloud y los registros de la VPN de sitio a sitio de AWS. Los mensajes de error de los registros pueden ayudarte a identificar el problema. Para saber cómo solucionar problemas con tu conexión VPN, consulta los siguientes recursos:
    3. Mide el ancho de banda entre tus máquinas de prueba con iperf.

      • Lado del servidor:

        iperf3 -s
      • Lado del cliente:

        iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

    Limpieza

    Elimina los recursos de Google Cloud y AWS que hayas creado durante este tutorial.

    Eliminar el Google Cloud proyecto

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en este tutorial, puedes eliminar tu proyecto:

    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.

    Eliminar recursos de AWS

    1. Eliminar una conexión VPN de sitio a sitio
    2. Elimina la pasarela de tránsito.
    3. Finalizar instancias de Amazon EC2

    Siguientes pasos