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

En este instructivo, se muestra cómo crear conexiones de red privada virtual (VPN) con alta disponibilidad entre Google Cloud y Microsoft Azure. Puedes usar estos servicios de VPN con alta disponibilidad para la comunicación directa entre las redes de nube privada virtual (VPC) en las puertas de enlace de red virtual de Microsoft Cloud y Microsoft Azure.

En este documento, se supone que estás familiarizado con los conceptos básicos de las redes de VPC, el Protocolo de Puerta de Enlace Fronteriza (BGP), las VPNs y los túneles de Protocolo de seguridad de Internet (IPsec).

Google Cloud proporciona una VPN con alta disponibilidad (HA) servicio para conectar tu red de VPC a entornos que se ejecutan fuera de Google Cloud, como Microsoft Azure, a través de una conexión de VPN IPsec. Una VPN con alta disponibilidad proporciona un Acuerdo de Nivel de Servicio (ANS) del 99.99% de disponibilidad del servicio cuando se configura en función de las prácticas recomendadas de Google.

Descripción general de la arquitectura

En el siguiente diagrama, se muestra la arquitectura que se describe en este documento.

Descripción general de la arquitectura.

La arquitectura que se muestra en el diagrama 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: la interfaz 0 y la 1. Cada una de estas interfaces tiene su propia dirección IP externa.
  • Túneles VPN: Conexiones de la puerta de enlace de VPN con alta disponibilidad en Google Cloud a la puerta de enlace de VPN de intercambio de tráfico en Azure a través de la cual pasa el tráfico encriptado.
  • Puerta de enlace de red virtual: Dos redes privadas definidas en el servicio de Azure Cloud.

Cada conexión de puerta de enlace de red virtual viene con dos túneles preconfigurados para apuntar a una única puerta de enlace de cliente, que en este caso es una interfaz de puerta de enlace de VPN con alta disponibilidad en Google Cloud. Con esta configuración, la cantidad mínima de túneles de Cloud VPN necesarios para cumplir con el ANS del 99.99% de disponibilidad del servicio es de dos.

Direcciones IP necesarias para los procedimientos

Para completar los procedimientos de este documento, usa una variedad de direcciones IP en Google Cloud y en Azure. Algunas de estas direcciones IP se asignan de forma automática cuando creas un recurso.

Para las direcciones que no se asignan de forma automática, debes definir estas direcciones IP según las direcciones IP que tienes disponibles y las necesidades de tu organización.

Los recursos de Google Cloud requieren las siguientes direcciones IP:

  • Crear una subred para una red de nube privada virtual requiere un rango de direcciones IP definido por el usuario.
  • Después de crear la puerta de enlace de VPN con alta disponibilidad, Google Cloud asigna de forma automática dos direcciones IP externas a la puerta de enlace de VPN con alta disponibilidad. Google asigna una dirección IP a cada una de las dos interfaces de la puerta de enlace. Necesitas las direcciones IP para estas interfaces a fin de configurar las puertas de enlace de red local en Azure.
  • Cuando creas túneles VPN con alta disponibilidad en Google Cloud, cada túnel necesita una interfaz de BGP para el Cloud Router y una interfaz de BGP a la puerta de enlace de red virtual activa-activa (puerta de enlace VPN) en Azure. Para cada túnel, elige un par de direcciones IPv4 de intercambio de tráfico de BGP de vínculo local en un bloque /30 de los rangos 169.254.21.* y 169.254.22.*. Estos rangos son válidos para las direcciones IPv4 del intercambio de tráfico de BGP de la APIPA de Azure. Debes seleccionar cuatro direcciones IP en total.

    Las direcciones IPv4 del intercambio de tráfico de BGP que selecciones deben ser únicas entre todos los Cloud Routers en todas las regiones de una red de VPC.

Los recursos de Azure requieren las siguientes direcciones IP:

  • Cuando creas la red virtual, la VNet requiere un espacio de direcciones IP para la red y un espacio de direcciones IP para la subred de la red. Puedes usar los espacios de direcciones predeterminados o ingresar espacios de direcciones definidos por el usuario.
  • Cuando creas la puerta de enlace de red virtual activa-activa (puerta de enlace VPN), la puerta de enlace requiere un rango de direcciones de subred. Puedes usar el rango predeterminado o ingresar un rango definido por el usuario.
  • Cuando configuras el BGP para la puerta de enlace de VPN activa-activa, la puerta de enlace requiere dos direcciones IP de intercambio de tráfico de BGP de APIPA. Como se mencionó antes, los rangos válidos para las direcciones IP de intercambio de tráfico de BGP de la APIPA de Azure son 169.254.21.* y 169.254.22.*.
  • Después de crear una puerta de enlace de VPN activa-activa, Azure asigna de forma automática una dirección IP externa a cada una de las interfaces de la puerta de enlace. Necesitas estas direcciones IP para configurar la puerta de enlace de VPN de intercambio de tráfico en Google Cloud.

Cuando definas direcciones IP, asegúrate de usar un conjunto único de direcciones IP para cada red.

Objetivos

  • Crea una red virtual (VNet) de Azure y una puerta de enlace de red virtual activa (puerta de enlace VPN).
  • Crea los componentes necesarios en Google Cloud: una red de VPC, un Cloud Router, una puerta de enlace de VPN con alta disponibilidad, una puerta de enlace de VPN de intercambio de tráfico y dos túneles VPN con alta disponibilidad con sesiones de BGP.
  • Crear dos puertas de enlace de red locales y dos conexiones de VPN en Azure Verifica la configuración de Cloud Router y el estado de los túneles VPN con alta disponibilidad en Google Cloud.
  • Prueba la conexión de Cloud VPN entre la red de VPC en Google Cloud y la red virtual (VNet) en Azure.

Costos

En los procedimientos que se indican en este documento, 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 los procedimientos que se indican en este documento, se usan componentes facturables de los servicios de Microsoft Azure Cloud, incluidos los siguientes:

  • Puertas de enlace de VPN
  • Puertas de enlace de red local

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

Antes de comenzar

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  3. Habilita la API de Compute Engine.

    Habilita la API

  4. En la consola de Google Cloud, activa Cloud Shell.

    Activar 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 Roles de IAM para características de trabajo relacionadas con las herramientas de redes.

Crea una VNet y una puerta de enlace de VPN activa-activa en Azure

En Azure, debes configurar los siguientes componentes:

  • Una red virtual de Azure (VNet) que permite que los recursos de Azure se comuniquen con Google Cloud VPN
  • Una puerta de enlace de red virtual (puerta de enlace VPN) activa-activa que permite que ambas instancias de las máquinas virtuales (VMs) de la puerta de enlace establezcan túneles VPN para tu Google Cloud VPN.

Crea una VNet

Un VNet permite que los recursos de Azure se comuniquen de forma segura entre sí, en Internet y en otras redes (como Cloud VPN). Si deseas obtener más información para crear una VNet, consulta la documentación de Azure sobre la creación de una VNet.

  1. Accede al portal de Azure.
  2. En el cuadro Buscar recursos, servicios y documentos (G+/), escribe virtual network.
  3. En la lista de resultados de Marketplace, selecciona Red virtual.
  4. En la página Red virtual, selecciona Crear.
  5. En la pestaña Conceptos básicos de la página Crear red virtual, establece la siguiente configuración de VNet para Detalles del proyecto y Detalles de la instancia:

    1. En el cuadro Suscripción, verifica que la suscripción que aparece en la lista sea la correcta. Para cambiar la suscripción, selecciónala en la lista .
    2. A fin de especificar el grupo de recursos, haz clic en Crear nuevo para crear un grupo nuevo y, luego, ingresa un nombre como azure‑to‑google‑resgroup para el nombre del grupo de recursos.
    3. En el cuadro Nombre, ingresa el nombre de tu VNet, como azure‑to‑google‑network.
    4. En la casilla Región, selecciona una ubicación para tu VNet.

      La ubicación que selecciones determinará la ubicación de almacenamiento de los recursos que implementarás en esta red virtual.

  6. En la pestaña Direcciones IP, en el cuadro Espacio de direcciones IPv4, usa el espacio de direcciones y la subred predeterminados que creó Azure.

  7. En la pestaña Seguridad, deja los valores para Host de bastión, Protección estándar contra DSD y Firewall establecidos en el valor predeterminado de Inhabilitar.

  8. Para validar la configuración de VNet, selecciona Revisar + crear.

  9. Después de que se valide la configuración, selecciona Crear.

Crea una puerta de enlace VPN activa-activa

Los siguientes procedimientos crean la puerta de enlace de VPN activa-activa:

  • El primer procedimiento define los detalles del proyecto y la instancia
  • El segundo procedimiento especifica la dirección IP para la puerta de enlace.

En este momento, solo creas la puerta de enlace de VPN activa-activa. Debes crear los componentes de Google Cloud antes de configurar los túneles necesarios en Azure. Para obtener más información sobre cómo crear una puerta de enlace VPN activa-activa, consulta el tema Configura puertas de enlace de VPN activa-activa con el portal en la documentación de Azure.

Define los detalles de la puerta de enlace

  1. Accede al portal de Azure.
  2. En Buscar recursos, servicios y documentos (G+/), escribe virtual network gateway.
  3. En Servicios en los resultados de la búsqueda, ubica y selecciona Virtual network gateway.
  4. En la página Virtual network gateway, selecciona Crear.
  5. En la pestaña Conceptos básicos de la página Crear la puerta de enlace de red virtual, especifica los siguientes valores para las opciones en las secciones Detalles del proyecto y Detalles de la instancia:

    1. En la lista Suscripción, selecciona la suscripción que deseas usar.
    2. Opcional: En el cuadro Rango de direcciones de la subred de la puerta de enlace, ingresa el rango de direcciones para la subred.
    3. Verifica que Grupo de recursos muestre el grupo de recursos que corresponde a la red virtual que seleccionas en esta página.
    4. En Nombre, ingresa el nombre de tu puerta de enlace, como azure‑to‑google‑gateway.
    5. En Región, selecciona la misma región que usaste cuando creaste tu VNET.
    6. En Tipo de puerta de enlace, selecciona VPN.
    7. En Tipo de VPN, selecciona el tipo de VPN basado en rutas.

    8. En la lista SKU, selecciona el SKU de la puerta de enlace que deseas usar.

      Los SKUs que aparecen en el menú desplegable dependen del tipo de VPN que selecciones.

    9. En la lista Generación, selecciona la generación que deseas usar.

    10. En la lista Virtual network, selecciona la VNet que creaste antes

  6. Permanece en esta página para el siguiente procedimiento.

Define las direcciones IP de la puerta de enlace

  1. En la pestaña Conceptos básicos de la página Crear puerta de enlace de red virtual, sigue estos pasos para crear las direcciones IP externas que usa la puerta de enlace activa-activa de VPN:

    1. En Dirección IP pública, selecciona Crear nueva.

      Azure asigna de forma automática la dirección IP externa a la puerta de enlace de VPN activa-activa.

    2. En el cuadro Nombre de dirección IP pública, escribe un nombre para la instancia de dirección IP externa, como azure‑to‑google‑network‑ip1.

    3. En Habilitar modo activo-activo, selecciona Habilitado.

    4. Opcional: Si está disponible para tu región, configura la Zona de disponibilidad. Por ejemplo, puedes seleccionar Redundante de zona.

    5. En Segunda dirección IP pública, selecciona Crear nueva.

    6. En el cuadro Nombre de dirección IP pública, escribe el nombre de la segunda dirección IP externa, como azure‑to‑google‑network‑ip2.

    7. En Configurar BGP, selecciona Habilitado.

    8. En Números de sistema autónomo (ASN), configura el ASN en un valor permitido y válido.

      Usa este valor de ASN cuando configures las sesiones de BGP para los túneles en Google Cloud. Registra este valor como AZURE_ASN para hacer referencia a esta puerta de enlace de VPN activa-activa.

    9. En Dirección IP de BGP de la APIPA de Azure personalizada, ingresa la primera dirección IP de BGP de la APIPA y registra el valor como AZURE_BGP_IP_0. Los rangos válidos para las direcciones IP de BGP de la APIPA de Azure son 169.254.21.* y 169.254.22.*.

    10. En Segunda dirección IP de BGP de la APIPA de Azure personalizada, ingresa la segunda dirección IP de BGP de la APIPA y registra el valor como AZURE_BGP_IP_1. Usarás estas variables cuando configures las sesiones de BGP en Google Cloud.

  2. Para ejecutar la validación, selecciona Revisar + crear.

  3. Una vez que se complete la validación, selecciona Crear para implementar la puerta de enlace de VPN.

Visualiza y registra las direcciones IP externas de la puerta de enlace de VPN activa-activa

Necesitas las direcciones IP externas que Azure asignó de forma automática a la puerta de enlace de VPN activa-activa. Usa estas direcciones IP para crear el recurso de puerta de enlace de VPN de intercambio de tráfico en Google Cloud.

  1. En la página Descripción general de la puerta de enlace activa-activa que acabas de crear, ubica las direcciones IP externas para ella.
  2. Registra las direcciones IP que ves en la pantalla:
    • Registra la primera dirección IP externa como AZURE_GW_IP_0.
    • Registra la segunda dirección IP externa como AZURE_GW_IP_1.

Más adelante, en este documento, se hace referencia a estas direcciones IP como AZURE_GW_IP_0 y AZURE_GW_IP_1.

Crea tus componentes de Google Cloud

En Google Cloud, debes configurar los siguientes componentes:

  • Una red de VPC.
  • Una puerta de enlace de VPN con alta disponibilidad.
  • Un Cloud Router.
  • Una puerta de enlace de VPN de intercambio de tráfico.
  • Túneles VPN con alta disponibilidad con sesiones de BGP.

En los siguientes procedimientos, se da por sentado que configuraste Google Cloud como se describe en Antes de comenzar. Si no completaste esos pasos, hazlo ahora.

Crea una red de VPC, una subred, una puerta de enlace de VPN con alta disponibilidad y un Cloud Router en Google Cloud

En Google Cloud, creas una red de VPC, creas una puerta de enlace de VPN con alta disponibilidad, creas un Cloud Router y, luego, configuras las reglas de firewall en Google Cloud.

  1. En Google Cloud Shell, asegúrate de estar trabajando en el proyecto de 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 por tu ID del proyecto de Cloud.

  2. Crea una red de VPC personalizada con una sola subred.

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

    Reemplaza lo siguiente:

    • NETWORK: El nombre de la red, como google‑to‑azure‑vpc
    • SUBNET_MODE: Es el modo de subred configurado como custom.
  3. BGP_ROUTING_MODE: El modo de enrutamiento BGP configurado como global.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute networks create google-to-azure-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
    
  4. Crea una subred para alojar las VM de prueba:

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

    Reemplaza lo siguiente:

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute networks subnets create subnet-central1  \
        --network google-to-azure-vpc \
        --region us-central1 \
        --range 10.1.1.0/24
    
  5. Crea la puerta de enlace de VPN con alta disponibilidad:

    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.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute vpn-gateways create ha-vpn-gw-a \
       --network google-to-azure-vpc \
       --region us-central1
    

    La puerta de enlace que crees debe ser similar al siguiente resultado de ejemplo:

    Created [https://www.googleapis.com/compute/v1/projects/YOUR_PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a].
    NAME          INTERFACE0     INTERFACE1     NETWORK     REGION
    ha-vpn-gw-a   203.0.113.1   203.0.113.2   google-to-azure-vpc   us-central1
    

    El resultado muestra las direcciones IPv4 externas que se asignaron de forma automática a cada interfaz de puerta de enlace (INTERFACE0 y INTERFACE1). Necesitas estas direcciones IP cuando configuras las puertas de enlace de red local en Azure:

    • Registra la dirección IP de INTERFACE0 en HA_VPN_INT_0.
    • Registra la dirección IP de INTERFACE1 en HA_VPN_INT_1.
  6. Crea un Cloud Router:

    gcloud compute routers create ROUTER_NAME \
        --region REGION \
        --network NETWORK \
        --asn GOOGLE_ASN \
    

    Reemplaza lo siguiente:

    • ROUTER_NAME: El nombre de tu Cloud Router.
    • REGION: La región en la que crearás la puerta de enlace de VPN con alta disponibilidad y los túneles.
    • GOOGLE_ASN: El número de sistema autónomo (ASN) 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.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers create cloud-router \
        --region us-central1 \
        --network google-to-azure-vpc \
        --asn 65534
    

Crea una puerta de enlace de VPN de intercambio de tráfico para la VPN de Azure

En esta sección, crearás un recurso de puerta de enlace de VPN externa que proporciona información a Google Cloud sobre tu puerta de enlace de VPN activa-activa en Azure. Debes crear una puerta de enlace de VPN de intercambio de tráfico única que use dos interfaces independientes, cada una con su propia dirección IP externa.

Crea una sola puerta de enlace de VPN de intercambio de tráfico externa con dos interfaces:

gcloud compute external-vpn-gateways create AZURE_GW_NAME \
     --interfaces 0=AZURE_GW_IP_0,1=AZURE_GW_IP_1

Reemplaza lo siguiente:

  • AZURE_GW_NAME: El nombre de tu puerta de enlace de VPN activa-activa de Azure
  • AZURE_GW_IP_0: La dirección IP externa de una interfaz de la puerta de enlace de intercambio de tráfico
  • AZURE_GW_IP_1: La dirección IP externa de otra interfaz de la puerta de enlace de intercambio de tráfico

El recurso de puerta de enlace de VPN de intercambio de tráfico que creaste debería ser similar al siguiente ejemplo, en el que AZURE_GW_IP_0 y AZURE_GW_IP_1 muestran las direcciones IP externas reales de las interfaces de puerta de enlace de intercambio de tráfico:

gcloud compute external-vpn-gateways create azure-peer-gw \
     --interfaces 0=203.0.113.1,1=203.0.113.2

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
NAME     INTERFACE0    INTERFACE1
azure-peer-gw  203.0.113.1  203.0.113.2

Crea túneles VPN

Debes crear dos túneles VPN: uno para cada interfaz de la puerta de enlace de VPN de intercambio de tráfico. Cuando configures los túneles VPN en Azure, usa el protocolo de encriptación IKEv2.

Para los comandos que se usaron en esta sección, reemplaza lo siguiente:

  • TUNNEL_NAME_IF0 y TUNNEL_NAME_IF1: Un nombre para el túnel; incluir el nombre de la interfaz de la puerta de enlace en los nombres de los túneles puede facilitar la identificación de los túneles más adelante.
  • AZURE_GW_NAME: El nombre de la puerta de enlace externa de intercambio de tráfico que se creó antes
  • AZURE_GW_INT_NUM_0 y AZURE_GW_INT_NUM_1: Los números de interfaz configurado anteriormente en la puerta de enlace externa de intercambio de tráfico
  • IKE_VERS: Usa 2 para IKEv2.
  • SHARED_SECRET: Es tu clave precompartida (secreto compartido), que debe corresponderse con la clave precompartida que especificas cuando configuras las conexiones VPN en Azure. Para obtener recomendaciones, consulta Genera una clave precompartida segura.
  • HA_VPN_GATEWAY_NAME: El nombre de la puerta de enlace de VPN con alta disponibilidad
  • INT_NUM_0: El número 0 para la primera interfaz en la puerta de enlace de VPN con alta disponibilidad que creaste antes
  • INT_NUM_1: El número 1 para la segunda interfaz de la puerta de enlace de VPN con alta disponibilidad que creaste antes

Sigue estos pasos para crear los túneles VPN:

  1. Crea el túnel VPN para la interfaz 0:

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=AZURE_GW_NAME \
       --peer-external-gateway-interface=AZURE_GW_INT_NUM_0  \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=HA_VPN_GATEWAY_NAME \
       --interface=INT_NUM_0
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute vpn-tunnels create azure-tunnel-1 \
       --peer-external-gateway azure-peer-gw \
       --peer-external-gateway-interface 0  \
       --region us-central1  \
       --ike-version 2 \
       --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \
       --router cloud-router \
       --vpn-gateway ha-vpn-gw-a \
       --interface 0
    
  2. Crea el túnel VPN para la interfaz 1:

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
      --peer-external-gateway=AZURE_GW_NAME \
      --peer-external-gateway-interface=AZURE_GW_INT_NUM_1 \
      --region=REGION \
      --ike-version=IKE_VERS \
      --shared-secret=SHARED_SECRET \
      --router=ROUTER_NAME \
      --vpn-gateway=HA_VPN_GATEWAY_NAME \
      --interface=INT_NUM_1
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute vpn-tunnels create azure-tunnel-2 \
       --peer-external-gateway azure-peer-gw \
       --peer-external-gateway-interface 1  \
       --region us-central1  \
       --ike-version 2 \
       --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \
       --router cloud-router \
       --vpn-gateway ha-vpn-gw-a \
       --interface 1
    

Crea sesiones de BGP

Para el enrutamiento dinámico, usa Cloud Router a fin de establecer sesiones de BGP entre Google Cloud y Azure. Recomendamos usar el enrutamiento dinámico en lugar del enrutamiento estático siempre que sea posible, como se explica en la descripción general de Cloud VPN y Enrutamiento de túneles y redes de Cloud VPN.

Debes crear una sesión de BGP para cada túnel VPN. Cada sesión de BGP consta de una interfaz de BGP para el Cloud Router y un par de BGP. Debes crear un par de BGP para cada uno de los dos túneles VPN que acabas de crear.

Para los comandos que se usaron en esta sección, reemplaza lo siguiente:

  • ROUTER_NAME es el nombre que le asignaste al Cloud Router.
  • ROUTER_INTERFACE_NAME_0 y ROUTER_INTERFACE_NAME_1: Un nombre para la interfaz de BGP de Cloud Router; puede ser útil usar nombres relacionados con los nombres de túnel configurados antes.
  • MASK_LENGTH: especifica 30; cada sesión de BGP en el mismo Cloud Router debe usar un CIDR /30 único del bloque 169.254.0.0/16.
  • GOOGLE_BGP_IP_0 y GOOGLE_BGP_IP_1: Son las direcciones IP de intercambio de tráfico de BGP para las interfaces de puerta de enlace de VPN con alta disponibilidad que configures; cada túnel usa una interfaz de puerta de enlace diferente. Debido a que los rangos permitidos para las direcciones IP de intercambio de tráfico de BGP de la APIPA de Azure son 169.254.21.* y 169.254.22.*, debes seleccionar una dirección IP disponible en el CIDR /30 de esos rangos para tus direcciones IP de intercambio de tráfico de BGP de Cloud Router.
  • AZURE_BGP_IP_0 y AZURE_BGP_IP_1: son las direcciones IP de intercambio de tráfico de BGP de APIPA que ya configuraste en la puerta de enlace de VPN activa-activa de Azure; cada túnel usa una dirección diferente.
  • TUNNEL_NAME_IF0 y TUNNEL_NAME_IF1: El túnel asociado con la interfaz de puerta de enlace de VPN con alta disponibilidad que configuraste
  • AZURE_ASN: El ASN que configuraste para la puerta de enlace de VPN de intercambio de tráfico activa-activa en Azure.
  • BGP_PEER_NAME_1 y BGP_PEER_NAME_2 por nombres únicos para cada par de BGP. Por ejemplo, azure‑bgp‑peer‑1 y azure‑bgp‑peer‑2.

A fin de crear sesiones de BGP para los túneles VPN, sigue estos pasos:

  1. Para el primer túnel VPN, agrega una interfaz de BGP al Cloud Router:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --mask-length=MASK_LENGTH \
       --vpn-tunnel=TUNNEL_NAME_IF0 \
       --ip-address=GOOGLE_BGP_IP_0 \
       --region=REGION
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers add-interface cloud-router \
       --interface-name azure-tunnel-1-int-0 \
       --mask-length 30 \
       --vpn-tunnel azure-tunnel-1 \
       --ip-address 169.254.21.2 \
       --region us-central1
    
  2. Para el primer túnel VPN, agrega un par de BGP a la interfaz:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=BGP_PEER_NAME_1 \
       --peer-asn=AZURE_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --peer-ip-address=AZURE_BGP_IP_0 \
       --region=REGION
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers add-bgp-peer cloud-router \
       --peer-name azure-bgp-peer-1 \
       --peer-asn 65515 \
       --interface azure-tunnel-1-int-0 \
       --peer-ip-address 169.254.21.1 \
       --region us-central1
    
  3. Para el segundo túnel VPN, agrega una interfaz de BGP al Cloud Router:

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_1 \
       --mask-length=MASK_LENGTH \
       --vpn-tunnel=TUNNEL_NAME_IF0 \
       --ip-address=GOOGLE_BGP_IP_1 \
       --region=REGION
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers add-interface cloud-router \
       --interface-name azure-tunnel-2-int-1 \
       --mask-length 30 \
       --vpn-tunnel azure-tunnel-2 \
       --ip-address 169.254.22.2 \
       --region us-central1
    
  4. Para el segundo túnel VPN, agrega un par de BGP a la interfaz:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=BGP_PEER_NAME_2 \
       --peer-asn=AZURE_ASN \
       --interface=ROUTER_INTERFACE_NAME_1 \
       --peer-ip-address=AZURE_BGP_IP_1 \
       --region=REGION
    

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers add-bgp-peer cloud-router \
      --peer-name azure-bgp-peer-2 \
      --peer-asn 65515 \
      --interface azure-tunnel-2-int-1 \
      --peer-ip-address 169.254.22.1 \
      --region us-central1
    

Crea puertas de enlace de VPN y puertas de enlace de red locales en Azure

Una vez que hayas creado y configurado los componentes de Google Cloud, regresa al entorno de Azure para terminar de conectar Google Cloud a Azure. Para finalizar esta conexión, crea los siguientes componentes en Azure:

  • Dos puertas de enlace de red locales que representan tu VPN de Google Cloud en Azure.
  • Dos conexiones de VPN que corresponden a los dos túneles VPN con alta disponibilidad que configuraste en Google Cloud.

Crea dos puertas de enlace de red locales

Una puerta de enlace de red local es un objeto específico que representa tu Google Cloud VPN en Azure. Cuando crees una puerta de enlace de red local, especifica la siguiente información:

  • Un nombre para la puerta de enlace de red local.
  • La dirección IP de la interfaz de VPN con alta disponibilidad que se usará en la conexión.
  • La dirección IP del Google Cloud Router al que deseas crear una conexión.
  • Los prefijos de dirección IP que se enrutan a través de la puerta de enlace de VPN al Cloud Router. Los prefijos de dirección que especificas son los prefijos ubicados en tu Cloud VPN. Si la red privada virtual de Cloud cambia o necesitas cambiar la dirección IP externa para el Cloud Router, puedes actualizar los valores más adelante.

Debes crear dos puertas de enlace de red locales: una que se conecte a la primera interfaz de túnel VPN con alta disponibilidad de Google Cloud y otra que se conecte a la segunda interfaz de túnel con VPN con alta disponibilidad.

Para obtener más información, consulta la sección Crea una puerta de enlace de red local del instructivo Crea una conexión de VPN de sitio a sitio en el portal de Azure en la documentación de Azure.

Para crear la primera puerta de enlace de red local, sigue estos pasos:

  1. Accede al portal de Azure.
  2. En Buscar recursos, servicios y documentos (G+/), escribe local network gateway.
  3. En los resultados de la búsqueda en Marketplace, ubica y selecciona puerta de enlace de red local.
  4. Haz clic en Crear.
  5. En la pestaña Conceptos básicos de la página Crear la puerta de enlace de red local, especifica los siguientes valores para tu puerta de enlace de red local:

    1. En la lista Suscripción, verifica que se muestre la suscripción correcta.
    2. En la lista Grupo de recursos, selecciona el mismo grupo de recursos que creaste para VNet antes en este documento.
    3. En Región, selecciona la misma ubicación en la que reside tu VNet.
    4. En Nombre, ingresa un nombre para la puerta de enlace de red local, como azure-to-google-locgateway1.
    5. En Extremo, selecciona Dirección IP.
    6. En el cuadro Dirección IP, ingresa la dirección IP de INTERFACE0 de tu VPN con alta disponibilidad (es decir, ingresa HA_VPN_INT_0).
    7. En Espacio de direcciones, ingresa los rangos de direcciones de la red que representa esta red local.

      Puedes agregar varios rangos de espacios de direcciones. Asegúrate de que los rangos que especifiques aquí no se superpongan con los rangos de otras redes a las que deseas conectarte.

  6. En la pestaña Avanzado, establece la configuración de BGP de la siguiente manera:

    1. En Establece la configuración de BGP, selecciona .
    2. En Número de sistema autónomo (ASN), ingresa el ASN para tu Cloud Router (es decir, ingresa GOOGLE_ASN).
    3. En Dirección IP de par de BGP, ingresa la dirección IP de BGP para el Cloud Router en el túnel 1 (es decir, ingresa GOOGLE_BGP_IP_0).
  7. Para validar la configuración de la puerta de enlace de red local, haz clic en Revisar y crear en la parte inferior de la página.

  8. Una vez que se apruebe la validación, haz clic en Crear para crear la puerta de enlace de red local.

Para crear la segunda puerta de enlace de red local, sigue estos pasos:

  1. En el Portal de Azure, en Buscar recursos, servicios y documentos (G+/), escribe local network gateway.
  2. En Marketplace, en los resultados de la búsqueda, ubica y selecciona puerta de enlace de red local.
  3. En la pestaña Conceptos básicos de la página Crear la puerta de enlace de red local, especifica los siguientes valores para tu puerta de enlace de red local:

    1. En la lista Suscripción, verifica que se muestre la suscripción correcta.
    2. En la lista Grupo de recursos, selecciona el mismo grupo de recursos que creaste para VNet antes en este documento.
    3. En Región, selecciona la misma región que la de VNet.
    4. En Nombre, ingresa un nombre para la puerta de enlace de red local, como azure-to-google-locgateway2.
    5. En Extremo, selecciona Dirección IP.
    6. En el cuadro Dirección IP, ingresa la dirección IP de INTERFACE1 de tu VPN con alta disponibilidad (es decir, ingresa HA_VPN_INT_1).
    7. En Espacio de direcciones, ingresa los rangos de direcciones de la red que representa esta red local.

    Puedes agregar varios rangos de espacios de direcciones. Asegúrate de que los rangos que especifiques aquí no se superpongan con los rangos de otras redes a las que deseas conectarte.

  4. En la pestaña Avanzado, establece la configuración de BGP de la siguiente manera:

    1. En Establece la configuración de BGP, selecciona .
    2. En Número de sistema autónomo (ASN), ingresa el ASN para tu Cloud Router (es decir, ingresa GOOGLE_ASN).
    3. En Dirección IP de par de BGP, ingresa la dirección IP de BGP para el Cloud Router en el túnel 1 (es decir, ingresa GOOGLE_BGP_IP_1).
  5. Para validar la configuración de la puerta de enlace de tu red local, haz clic en Revisar y crear en la parte inferior de la página.

  6. Una vez que se apruebe la validación, haz clic en Crear para crear la puerta de enlace de red local.

Crea dos conexiones de VPN

Para crear las conexiones de VPN en Azure, necesitas las claves compartidas previamente, o SHARED_SECRET, que configuraste cuando configuraste los túneles VPN con alta disponibilidad en Google Cloud.

  1. En el Portal de Azure, busca la puerta de enlace de VPN activa-activa que creaste en Crea una puerta de enlace de VPN activa-activa.
  2. Seleccionar conexiones.
  3. En la parte superior de la página Conexiones, selecciona +Agregar.
  4. En la página Agregar conexión, especifica los siguientes valores para tu primera conexión:
    1. En Nombre, ingresa un nombre para la conexión, como azure-vnet-to-google1.
    2. En Tipo de conexión, selecciona Sitio a sitio (IPsec).
    3. En Puerta de enlace de red local, especifica la primera puerta de enlace de red local que creaste, como azure-to-google-locgateway1.
    4. En Clave compartida (PSK), especifica la clave compartida que configuraste para el primer túnel VPN con alta disponibilidad.
    5. Selecciona Habilitar BGP.
    6. En Protocolo de IKE (IKE Protocol), selecciona IKEv2.
    7. Haz clic en OK.
    8. En la página Conexiones, selecciona +Agregar para agregar una segunda conexión con los siguientes valores:
    9. En Nombre, ingresa un nombre para la conexión, como azure-vnet-to-google2.
    10. En Tipo de conexión, selecciona Sitio a sitio (IPsec).
    11. En Puerta de enlace de red local, especifica la segunda puerta de enlace de red local que creaste, como azure-to-google-locgateway2.
    12. En Clave compartida (PSK), especifica la clave compartida que configuraste para el segundo túnel VPN con alta disponibilidad.
    13. Selecciona Habilitar BGP.
    14. En Protocolo de IKE (IKE Protocol), selecciona IKEv2.
    15. Haz clic en OK.
  5. En la página Conexiones, verifica que el estado de ambas conexiones aparezca como Conectado.

Verifica la configuración

En Google Cloud, puedes verificar la configuración de VPN con alta disponibilidad si primero examinas (enumeras) la configuración de Cloud Router y, luego, verificas el estado de los túneles VPN con alta disponibilidad.

  1. En Cloud Shell, enumera las direcciones IP de intercambio de tráfico de BGP que eligió Cloud Router:

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

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute routers get-status cloud-router \
        --region us-central1 \
    --format='flattened(result.bgpPeerStatus[].name,result.bgpPeerStatus[].ipAddress,result.bgpPeerStatus[].peerIpAddress)'
    

    El resultado esperado para un Cloud Router que administra dos túneles VPN con alta disponibilidad (índice 0 y 1 de índice) debe ser similar al siguiente ejemplo:

    result.bgpPeerStatus[0].ipAddress:     169.254.21.2
    result.bgpPeerStatus[0].name:          azure-bgp-peer-1
    result.bgpPeerStatus[0].peerIpAddress: 169.254.21.1
    result.bgpPeerStatus[1].ipAddress:     169.254.22.2
    result.bgpPeerStatus[1].name:          azure-bgp-peer-2
    result.bgpPeerStatus[1].peerIpAddress: 169.254.22.1
    
  2. En Cloud Shell, observa el estado del primer túnel VPN con alta disponibilidad:

    gcloud compute vpn-tunnels describe TUNNEL_NAME_IF0 \
       --region=REGION
    

    Reemplaza lo siguiente:

    • TUNNEL_NAME_IF0: El túnel asociado con la primera interfaz de la puerta de enlace de VPN con alta disponibilidad que configuraste.
    • REGION: Es la región en la que implementaste la puerta de enlace de VPN con alta disponibilidad.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute vpn-tunnels describe azure-tunnel-1 -–region=us-central1
    

    El resultado esperado para el túnel debe ser similar al siguiente ejemplo:

    creationTimestamp: '2022-09-28T17:13:21.592-07:00'
    description: ''
    detailedStatus: Tunnel is up and running.
    id: '278561789474069966'
    ikeVersion: 2
    kind: compute#vpnTunnel
    localTrafficSelector:
    -   0.0.0.0/0
    name: azure-tunnel-1
    peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw
    peerExternalGatewayInterface: 0
    peerIp: 203.0.113.1
    region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1
    remoteTrafficSelector:
    -   0.0.0.0/0
    router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-1
    sharedSecret: '*************'
    sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9paz
    status: ESTABLISHED
    vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnGateways/ha-vpn-gw-a
    vpnGatewayInterface: 0
    
  3. En Cloud Shell, observa el estado del segundo túnel VPN con alta disponibilidad:

    gcloud compute vpn-tunnels describe TUNNEL_NAME_IF1 \
       --region=REGION
    

    Reemplaza lo siguiente:

    • TUNNEL_NAME_IF1: El túnel asociado con la segunda interfaz de la puerta de enlace de VPN con alta disponibilidad que configuraste.
    • REGION: Es la región en la que implementaste la puerta de enlace de VPN con alta disponibilidad.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute vpn-tunnels describe azure-tunnel-2 --region=us-central1
    

    El resultado esperado para el túnel debe ser similar al siguiente ejemplo:

    creationTimestamp: '2022-09-28T17:13:21.592-07:00'
    description: ''
    detailedStatus: Tunnel is up and running.
    id: '5665972275117479944'
    ikeVersion: 2
    kind: compute#vpnTunnel
    localTrafficSelector:
    -   0.0.0.0/0
    name: azure-tunnel-2
    peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw
    peerExternalGatewayInterface: 1
    peerIp: 203.0.113.2
    region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1
    remoteTrafficSelector:
    -   0.0.0.0/0
    router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-2
    sharedSecret: '*************'
    sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9ddd
    

Pruebe la conectividad

Para probar las conexiones VPN con alta disponibilidad, primero debes crear VMs en cada lado del túnel.

A continuación, debe asegurarse de tener reglas de firewall definidas en Google Cloud que permitan el tráfico ICMP entrante de las subredes de la red de Azure. Con las VMs y las reglas de firewall implementadas, puedes probar la conectividad mediante ping y el ancho de banda de prueba con iperf.

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

    También debes configurar el firewall de la red de Azure para permitir el tráfico entrante de los prefijos de subred que se usan en tu nube privada virtual.

  2. En Google Cloud, configura una regla de firewall que permita el tráfico ICMP entrante desde la VPN de Azure:

    gcloud compute firewall-rules create RULE_NAME \
        --network NETWORK \
        --direction ingress \
        --action allow \
        --source-ranges AZURE_VNET_RANGE \
        --rules icmp \
    

    Reemplaza AZURE_VNET_RANGE por el rango de direcciones IP asignado a tu Azure VNet.

    El comando debe ser similar al siguiente ejemplo:

    gcloud compute firewall-rules create allow-azure-icmp \
      --network google-to-azure-vpc \
      --direction ingress \
      --action allow \
      --source-ranges 10.0.0.0/16 \
      --rules icmp
    
  3. Prueba la conexión con el comando ping.

  4. Medir el ancho de banda entre tus máquinas de prueba con iperf

Realiza una limpieza

Borra los recursos de Google Cloud y Azure 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. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra un grupo de recursos de Azure

Borra el grupo de recursos de Azure Manager que creaste cuando creaste VNet. En este instructivo, el nombre del grupo de recursos de ejemplo es azure-to-google-resgroup.

Para obtener más información, consulta Eliminación de recursos y grupos de recursos de Azure Resource Manager.

¿Qué sigue?