Crea conexiones de VPN con alta disponibilidad entre Google Cloud y AWS

En este instructivo, se muestra cómo crear conexiones de VPN con alta disponibilidad entre Google Cloud y Amazon Web Services (AWS) para la comunicación directa entre las redes de VPC en las dos plataformas en la nube.

En este instructivo, se supone que estás familiarizado con los conceptos básicos de las redes de nube privada virtual (VPC), el protocolo de puerta de enlace de frontera (BGP), las redes privadas virtuales (VPNs) y los túneles IPsec.

Google Cloud proporciona un servicio de VPN con alta disponibilidad (HA) para conectar tu red de VPC a entornos que se ejecutan fuera de Google Cloud, como de forma local o en AWS a través de una conexión de VPN IPsec. La VPN con alta disponibilidad proporciona un ANS del 99.99% de disponibilidad del servicio cuando se configura en función de las prácticas recomendadas de Google. Para obtener más información, consulta el Acuerdo de Nivel de Servicio (ANS) de Cloud VPN.

Descripción general de la arquitectura

La arquitectura que se describe en esta página incluye los siguientes componentes:

  • Cloud Router: Servicio de Google Cloud completamente distribuido y administrado a fin de proporcionar enrutamiento dinámico mediante BGP para tus redes de VPC.
  • Puerta de enlace de VPN con alta disponibilidad: Una puerta de enlace de VPN administrada por Google que se ejecuta en Google Cloud. Cada puerta de enlace de VPN con alta disponibilidad es un recurso regional que tiene dos interfaces, cada una con sus propias direcciones IP externas: la interfaz 0 y la 1.
  • Túneles VPN: Conexiones desde la puerta de enlace de VPN con alta disponibilidad a la puerta de enlace de VPN de intercambio de tráfico en AWS a través de la cual pasa el tráfico encriptado.
  • Puerta de enlace de VPN de intercambio de tráfico: Dos extremos de VPN de sitio a sitio de AWS, que pueden ser de una puerta de enlace privada virtual de AWS o una puerta de enlace 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 puerta de enlace de VPN de intercambio de tráfico viene con dos túneles preconfigurados para apuntar a una única puerta de enlace de cliente, que en este caso es una interfaz de VPN con alta disponibilidad de Google Cloud. Con esta configuración, la cantidad mínima de túneles para cumplir con el ANS del 99.99% de disponibilidad del servicio es cuatro.

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

En el siguiente diagrama, se muestra la arquitectura.

Descripción general de la arquitectura

Objetivos

  • Crear una red de VPC en Google Cloud.
  • Crear una puerta de enlace de VPN con alta disponibilidad y Cloud Router en Google Cloud.
  • Crear puertas de enlace de cliente en AWS
  • Crea una conexión de VPN con enrutamiento dinámico en AWS.
  • Crear una puerta de enlace de VPN externa y túneles VPN en Google Cloud
  • Verificar y probar la conexión de VPN entre redes de VPC en Google Cloud y AWS.

Ejemplo de módulo de Terraform

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

Costos

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

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

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

  • Puerta de enlace de tránsito de AWS
  • VPN de sitio a sitio de AWS

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

Antes de comenzar

  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. Asegúrate de tener las funciones administrativas requeridas para configurar los componentes de herramientas de redes:

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

    A fin de obtener más información sobre los propósitos de estas funciones, consulta Funciones de IAM para características de trabajo relacionadas con las herramientas de redes.

Crea la puerta de enlace de VPN con alta disponibilidad y Cloud Router en Google Cloud

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

  1. En Cloud Shell, asegúrate de estar trabajando en el proyecto de Google Cloud que creaste o seleccionaste.

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

    Reemplaza YOUR_PROJECT_ID con tu ID del proyecto de Google Cloud.

  2. Para crear una red de 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

    Reemplaza lo siguiente:

    Por ejemplo, el siguiente comando crea una red de 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 para alojar 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

    Reemplaza lo siguiente:

    • SUBNET_NAME: el nombre de la subred
    • SUBNET_REGION: La región en la que se creará la subred
    • IP_ADDRESS_RANGE: El rango 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 puerta de enlace de VPN con alta disponibilidad, usa el comando gcloud compute vpn-gateways create:

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

    Reemplaza HA_VPN_GATEWAY_NAME con el nombre de la puerta de enlace de VPN con alta disponibilidad.

  5. Para crear un 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

    Reemplaza lo siguiente:

    • ROUTER_NAME: El nombre de tu Cloud Router
    • GOOGLE_ASN: El ASN (número de sistema autónomo) privado para el Cloud Router que estás creando. Puede ser cualquier ASN privado en el rango 64512-65534 o 4200000000-4294967294 que todavía no estés usando como ASN de intercambio de tráfico 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 puerta de enlace de VPN con dos interfaces, toma nota de las direcciones IP externales. Necesitarás estas direcciones cuando configures tu entorno en AWS.

Crea puertas de enlace y conexiones de VPN en AWS

En esta sección, crearás puertas de enlace de clientes, una puerta de enlace de destino y conexiones de VPN con enrutamiento dinámico.

Puedes ejecutar comandos de AWS con la interfaz de línea de comandos de AWS.

  1. Para crear dos puertas de enlace de clientes con el siguiente comando de AWS, usa el comando create-customer-gateway de AWS CLI:

    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

    Reemplaza INTERFACE_0_IP_ADDRESS y INTERFACE_1_IP_ADDRESS por las direcciones IP externas del paso final de la sección anterior.

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

    La puerta de enlace de destino puede ser una puerta de enlace privada virtual o una puerta de enlace de tránsito. Para obtener más información, consulta Crea una puerta de enlace de destino.

    Puerta de enlace privada virtual

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

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

      Reemplaza AWS_SIDE_ASN por el ASN de AWS.

      Este comando debe ser similar al siguiente ejemplo:

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

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

    Puerta de enlace de tránsito

    1. Crea una puerta de enlace de tránsito con el comando create-transit-gateway de AWS CLI:

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

      Reemplaza TRANSIT_GATEWAY_DESCRIPTION con una descripción para tu puerta de enlace de tránsito.

    2. Conecta tu red de VPC a la puerta de enlace de tránsito con el comando create-transit-gateway-vpc-attachment 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"

      Reemplaza lo siguiente:

      • TRANSIT_GATEWAY_ID: El ID de la puerta de enlace de tránsito
      • VPC_ID: Es el ID de la VPC.
      • SUBNET_ID: Los IDs de una o más subredes
  3. Para crear una conexión de VPN con enrutamiento dinámico, haz lo siguiente:

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

    Puerta de enlace privada virtual

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

    Reemplaza lo siguiente:

    • CUSTOMER_GATEWAY_1: Puerta de enlace de VPN de Google Cloud, interfaz 0
    • CUSTOMER_GATEWAY_2: Puerta de enlace de VPN de Google Cloud, interfaz 1
    • AWS_T1_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 1
    • AWS_T2_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 2
    • AWS_T3_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 2, túnel 1
    • AWS_T4_IP: dirección IP interna de la puerta de enlace privada virtual para 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

    Puerta de enlace de tránsito

    Crea una conexión de VPN con enrutamiento dinámico entre la puerta de enlace de tránsito y las puertas de enlace 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}]'

    Reemplaza lo siguiente:

    • CUSTOMER_GATEWAY_1: Puerta de enlace de VPN de Google Cloud, interfaz 0
    • CUSTOMER_GATEWAY_2: Puerta de enlace de VPN de Google Cloud, interfaz 1
    • TRANSIT_GATEWAY_ID: Es el ID de la puerta de enlace de tránsito asociada con la conexión de VPN.
    • AWS_T1_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 1
    • AWS_T2_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 2
    • AWS_T3_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 2, túnel 1
    • AWS_T4_IP: dirección IP interna de la puerta de enlace privada virtual para 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: Puerta de enlace de VPN de Google Cloud, interfaz 0
    • CUSTOMER_GATEWAY_2: Puerta de enlace de VPN de Google Cloud, interfaz 1
    • TRANSIT_GATEWAY_ID: Es el ID de la puerta de enlace de tránsito asociada con la conexión de VPN.
    • AWS_T1_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 1
    • AWS_T2_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 1, túnel 2
    • AWS_T3_IP: Dirección IP interna de la puerta de enlace privada virtual para la conexión 2, túnel 1
    • AWS_T4_IP: dirección IP interna de la puerta de enlace privada virtual para 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 rangos de CIDR, por lo que no puedes usar valores en estos rangos como direcciones IP (AWS_T1_IP, AWS_T2_IP, AWS_T3_IP, AWS_T4_IP). Para obtener información sobre qué bloques de CIDR reserva AWS, consulta Opciones de túnel para tu conexión de VPN de sitio a sitio.

    Con estos comandos, creas cuatro túneles a Google Cloud.

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

    En los próximos pasos, usarás valores del archivo de configuración que descargaste para crear y configurar recursos en Google Cloud.

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

En esta sección, usarás la información de la conexión de VPN de AWS que creaste en la sección anterior para crear una puerta de enlace de VPN externa, túneles de 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 algoritmos de cifrado IKE para garantizar que se establezca correctamente el túnel. Por ejemplo, selecciona un algoritmo de encriptación, un algoritmo de integridad y un grupo Diffie-Hellman (DH) de fase 1 y fase 2. Los conjuntos de transformación predeterminados de AWS crean una gran carga útil de asociación de seguridad (SA), que puede causar la fragmentación de IP de los paquetes IKE. Cloud VPN no admite paquetes IKE fragmentados.

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

    Antes de crear la puerta de enlace de VPN externa, verifica que las direcciones IP externas de AWS coincidan con los valores del archivo de configuración que descargaste. No puedes modificar estas direcciones IP después de crear la puerta de enlace de VPN externa. Si las direcciones no coinciden, no se puede establecer la conexión del túnel VPN con 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

    Reemplaza lo siguiente:

    • AWS_GW_IP_1: Dirección IP externa de la puerta de enlace privada virtual para la conexión 1, túnel 1
    • AWS_GW_IP_2: Dirección IP externa de la puerta de enlace privada virtual para la conexión 1, túnel 2
    • AWS_GW_IP_3: dirección IP externa de la puerta de enlace privada virtual para la conexión 2, túnel 1
    • AWS_GW_IP_4: dirección IP externa de la puerta de enlace privada virtual para 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

      Reemplaza lo siguiente:

  3. Crea cuatro interfaces de Cloud Router.

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

    • Interfaz 1 de Cloud Router:

      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 2 de Cloud Router:

      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 3 de Cloud Router:

      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 4 de Cloud Router:

      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. Agrega pares de BGP.

    En los comandos siguientes, reemplaza PEER_ASN por el ASN para AWS de la sesión de BGP.

    • Conexión AWS 1, 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 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 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 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

Verifica la configuración

  1. En Cloud Shell, verifica 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 es 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. Obtén una lista de todos los túneles:

    gcloud compute vpn-tunnels list

    El resultado es 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. Verifica el estado del túnel:

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

    El resultado es similar al siguiente:

    detailed_status: Tunnel is up and running.
    status:          ESTABLISHED
    
  4. Obtén una lista de las rutas dinámicas aprendidas por Cloud Router:

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

    El resultado es similar a este:

    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
    

Prueba la conexión de VPN

  1. Crea VMs de prueba en cada lado de los túneles para probar las solicitudes de ping.

    Asegúrate de tener reglas de firewall de VPC para permitir el tráfico ICMP.

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

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

    • Del servidor:

      iperf3 -s
    • Del cliente:

      iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

Realiza una limpieza

Borra los recursos de Google Cloud y AWS que creaste durante este instructivo.

Borra el proyecto de Google Cloud

Puedes borrar tu proyecto para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo:

  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.

Borra los recursos de AWS

  1. Cómo borrar una conexión de VPN de sitio a sitio
  2. Borra la puerta de enlace de tránsito
  3. Cómo finalizar instancias de Amazon EC2

¿Qué sigue?