Crear una VPN clásica mediante enrutamiento dinámico

En esta página, se describe cómo usar el enrutamiento dinámico para crear una puerta de enlace de VPN clásica y un túnel que use el protocolo de puerta de enlace fronteriza (BGP).

Con el enrutamiento dinámico, no especificas los selectores de tráfico locales ni remotos; en cambio, usas un Cloud Router. La información de la ruta se intercambia dinámicamente.

Para obtener más información sobre Cloud VPN, consulta los siguientes recursos:

Requisitos

Lineamientos generales

Instala software de VPN de terceros en una VM de Compute Engine

Cuando creas un túnel de VPN clásica con enrutamiento dinámico, la dirección IP que especifiques para la interfaz de puerta de enlace de VPN de intercambio de tráfico debe asignarse a una VM de Compute Engine.

Por lo tanto, antes de crear cualquier túnel de VPN clásica, debes instalar el software de VPN de terceros en una VM de Compute Engine. Cuando configures los túneles de VPN clásica, debes especificar la dirección IP externa de la VM de Compute Engine como la interfaz de puerta de enlace de VPN de intercambio de tráfico.

Además, la dirección IP de la interfaz de puerta de enlace de VPN de intercambio de tráfico debe asignarse desde el grupo de direcciones IPv4 externas regional que es propiedad de Google. La dirección IP no puede pertenecer a un rango Lleva tu propia dirección IP (BYOIP).

Crea Cloud Routers

Para crear un túnel que use enrutamiento dinámico con VPN clásica, debes usar Cloud Router. Puedes crear un Cloud Router nuevo o usar un Cloud Router existente con túneles de Cloud VPN existentes o adjuntos de VLAN. Sin embargo, el Cloud Router que usas no debe administrar una sesión de BGP para un adjunto de VLAN asociado con una conexión de interconexión de socio, debido a los requisitos específicos del ASN.

Antes de comenzar

Configura los siguientes elementos en Google Cloud para facilitar la configuración de Cloud VPN:

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  1. Si usas Google Cloud CLI, configura el ID del proyecto con el siguiente comando. En las instrucciones de gcloud de esta página, se da por hecho que estableciste el ID del proyecto antes de emitir comandos.

        gcloud config set project PROJECT_ID
        
  1. También puedes ver un ID del proyecto que ya se estableció con la ejecución del siguiente comando:

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

Crea una red y una subred de VPC personalizadas

Antes de crear una puerta de enlace de VPN clásica y un túnel, crea una red de nube privada virtual (VPC) y al menos una subred en la región donde reside la puerta de enlace de VPN clásica:

Crea una puerta de enlace y un túnel

Console

Configura la puerta de enlace

  1. Ve a la página VPN en la consola de Google Cloud.
    Ir a la página de VPN
    1. Si creas una puerta de enlace por primera vez, selecciona el botón Crear conexión de VPN.
    2. Selecciona el Asistente de configuración de VPN.
  2. Selecciona el botón de selección de VPN clásica.
  3. Haz clic en Continuar.
  4. En la página Crear una conexión de VPN, especifica la siguiente configuración de puerta de enlace:
    • Nombre: El nombre de la puerta de enlace VPN. El nombre no se puede cambiar más adelante.
    • Descripción: Si lo deseas, agrega una descripción.
    • Red: Especifica una red de VPC existente en la que se creará la puerta de enlace de VPN y el túnel.
    • Región: Las puertas de enlace y túneles de Cloud VPN son objetos regionales. Elige la región de Google Cloud en la que se ubicará la puerta de enlace. Las instancias y otros recursos en diferentes regiones pueden usar el túnel para el tráfico de salida sujeto al orden de las rutas. Para obtener un mejor rendimiento, ubica la puerta de enlace y el túnel en la misma región que los recursos relevantes de Google Cloud.
    • Dirección IP: Crea o elige una dirección IP externa regional existente.

Configura túneles

  1. Especifica lo siguiente en la sección Túneles para el elemento de túnel nuevo:

    • Nombre: El nombre del túnel VPN. El nombre no se puede cambiar más adelante.
    • Descripción: Opcionalmente, escribe una descripción.
    • Dirección IP de intercambio de tráfico remoto: Especifica la dirección IP externa de la puerta de enlace de VPN de intercambio de tráfico.
    • Versión de IKE: Elige la versión de IKE adecuada compatible con la puerta de enlace de VPN de intercambio de tráfico. Se prefiere IKEv2 si es compatible con el dispositivo de intercambio de tráfico.

    • Secreto compartido: Proporciona una clave compartida previamente utilizada para la autenticación. El secreto compartido del túnel de Cloud VPN debe coincidir con el que se usa cuando se configura el túnel equivalente en la puerta de enlace de VPN de intercambio de tráfico. Puedes seguir estas instrucciones para generar un secreto compartido que sea seguro de manera criptográfica.

    • Opciones de enrutamiento: Selecciona Dinámico (BGP). Solo puedes usar el enrutamiento dinámico para conectarte a software de puerta de enlace de VPN de terceros que se ejecuta dentro de una instancia de VM de Google Cloud.

    • Cloud Router: Si aún no lo has hecho, crea un Cloud Router nuevo que especifique las opciones que se indican a continuación. Como alternativa, puedes usar un Cloud Router existente, si el Cloud Router no administra una sesión de BGP para un adjunto de interconexión asociado con una interconexión de socio. Si eliges un Cloud Router existente, estarás creando una sesión de BGP nueva, pero el ASN de Google será el mismo. Para crear un Cloud Router nuevo, especifica los siguientes detalles:

      • Nombre: el nombre del Cloud Router. El nombre no se puede cambiar más adelante.
      • Descripción: Opcionalmente, escribe una descripción.
      • ASN de Google — Elige un ASN privado (de 64512 a 65534, de 4200000000 a 4294967294). Este ASN de Google se usa para todas las sesiones de BGP administradas por Cloud Router. El ASN no se puede cambiar más adelante.
      • Haz clic en Guardar y continuar.
    • Sesión de BGP: Haz clic en el ícono de lápiz y especifica los siguientes detalles. Cuando hayas terminado, haz clic en Guardar y continuar:

      • Nombre: El nombre de la sesión de BGP. No se puede cambiar más adelante.
      • ASN de intercambio de tráfico — Un ASN público o privado (de 64512 a 65534, de 4200000000 a 4294967294) que usa tu puerta de enlace de VPN de intercambio de tráfico.
      • Prioridad de ruta anunciada: La prioridad base que usa Cloud Router cuando anuncia las rutas “a Google Cloud” (Opcional). Para obtener más información, consulta Prioridades y prefijos anunciados. La puerta de enlace de VPN de intercambio de tráfico los importa como valores MED.
      • IP de BGP de Cloud Router y la IP de intercambio de tráfico de BGP: Las dos direcciones IP de la interfaz de BGP deben ser direcciones IP de link-local que pertenezcan a un CIDR /30 común del bloque 169.254.0.0/16. Cada IP de BGP define la respectiva IP de vínculo local utilizada para intercambiar información de ruta. Por ejemplo, 169.254.1.1 y 169.254.1.2 pertenecen a un bloque común /30.
  2. Si necesitas crear más túneles en la misma puerta de enlace, haz clic en Agregar túnel y repite el paso anterior. Puedes agregar más túneles más adelante.

  3. Haz clic en Crear.

gcloud

En estos comandos, reemplaza lo siguiente:

  • PROJECT_ID con el ID de tu proyecto.
  • NETWORK con el nombre de tu red de Google Cloud.
  • REGION con la región de Google Cloud en la que necesitas crear la puerta de enlace y el túnel.
  • --target-vpn-gateway-region es la región de la puerta de enlace de VPN clásica en la que se debe operar (opcional). Su valor debe ser el mismo que el de --region. Si no se especifica, esta opción se configura de forma automática. Con esta opción, se anula el valor predeterminado de la propiedad de procesamiento según región para esta invocación de comando.
  • GW_NAME con el nombre de la puerta de enlace.
  • GW_IP_NAME con un nombre para la IP externa utilizada por la puerta de enlace.

Completa la siguiente secuencia de comandos para crear una puerta de enlace de Google Cloud:

  1. Crea los recursos para la puerta de enlace de Cloud VPN:

    1. Crea el objeto de puerta de enlace VPN de destino.

      gcloud compute target-vpn-gateways create GW_NAME \
          --network NETWORK \
          --region REGION \
          --project PROJECT_ID
      
    2. Reserva una dirección IP externa regional (estática):

      gcloud compute addresses create GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID
      
    3. Anota la dirección IP (para que puedas usarla cuando configures tu puerta de enlace de VPN de intercambio de tráfico):

      gcloud compute addresses describe GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID \
          --format='flattened(address)'
      
    4. Crea tres reglas de reenvío. Estas reglas le indican a Google Cloud que envíe tráfico ESP (IPsec), UDP 500 y UDP 4500 a la puerta de enlace.

       gcloud compute forwarding-rules create fr-GW_NAME-esp \
           --load-balancing-scheme=EXTERNAL \
           --ip-protocol ESP \
           --address GW_IP_NAME \
           --target-vpn-gateway GW_NAME \
           --region REGION \
           --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 4500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  2. Si aún no lo has hecho, completa el siguiente comando para crear un Cloud Router. Reemplaza las opciones como se indica a continuación. Como alternativa, puedes usar un Cloud Router existente, siempre que este no administre ya una sesión de BGP para un adjunto de interconexión asociado con una interconexión de socio.

    • Reemplaza ROUTER_NAME por un nombre para el Cloud Router.
    • Reemplaza GOOGLE_ASN por un ASN privado (desde 64512 hasta 65534, 4200000000 hasta 4294967294). El ASN de Google se utiliza para todas las sesiones de BGP en el mismo Cloud Router y no se puede cambiar más adelante.
      gcloud compute routers create ROUTER_NAME \
      --asn GOOGLE_ASN \
      --network NETWORK \
      --region REGION \
      --project PROJECT_ID
    
  3. Crea el túnel de Cloud VPN con los siguientes detalles:

    • Reemplaza TUNNEL_NAME con un nombre para el túnel.
    • Reemplaza ON_PREM_IP por la dirección IP externa de la puerta de enlace VPN de intercambio de tráfico.
    • Reemplaza IKE_VERS con 1 para IKEv1 o 2 para IKEv2.
    • Reemplaza SHARED_SECRET por tu secreto compartido. El secreto compartido del túnel de Cloud VPN debe coincidir con el que se usa cuando se configura el túnel equivalente en la puerta de enlace de VPN de intercambio de tráfico. Puedes seguir estas instrucciones para generar un secreto compartido que sea seguro de manera criptográfica.
    • Reemplaza ROUTER_NAME con el nombre del Cloud Router que deseas utilizar para administrar las rutas para el túnel de Cloud VPN. Debes tener un Cloud Router antes de crear el túnel.

      gcloud compute vpn-tunnels create TUNNEL_NAME \
          --peer-address ON_PREM_IP \
          --ike-version IKE_VERS \
          --shared-secret SHARED_SECRET \
          --router ROUTER_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  4. Configura una sesión de BGP para el Cloud Router. Para ello, crea una interfaz y un par de BGP. Elige uno de los siguientes métodos:

    • Para permitir que Google Cloud elija de forma automática las direcciones IP de BGP de vínculo local, sigue estos pasos:

      1. Agrega una interfaz nueva al Cloud Router. Reemplaza INTERFACE_NAME para proporcionar un nombre a la interfaz.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --region REGION \
            --project PROJECT_ID
        
      2. Agrega un par BGP a la interfaz. Reemplaza PEER_NAME por un nombre para el intercambio de tráfico y PEER_ASN con el ASN configurado para la puerta de enlace de VPN de intercambio de tráfico.

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

        Si deseas definir rutas de aprendizaje personalizadas para el par, agrega la marca --set-custom-learned-route-ranges. También puedes usar la marca --custom-learned-route-priority a fin de establecer un valor de prioridad entre 0 y 65535 (inclusive) para las rutas. Cada sesión de BGP puede tener un valor de prioridad que se aplica a todas las rutas aprendidas personalizadas que configuraste para la sesión. Para obtener más información sobre esta función, consulta Rutas aprendidas personalizadas.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        
      3. Enumera las direcciones IP de BGP que eligió Cloud Router. Si agregaste una nueva interfaz a un Cloud Router existente, las direcciones IP de BGP para la nueva interfaz deberían aparecer con el número de índice más alto. La dirección IP de intercambio de tráfico es la IP de BGP que debes usar para configurar tu puerta de enlace de VPN de intercambio de tráfico.

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

        El resultado esperado para un Cloud Router que administra un solo túnel de Cloud VPN (índice 0) se parece al siguiente: en el que GOOGLE_BGP_IP representa la IP de BGP de la interfaz de Cloud Router y ON_PREM_BGP_IP representa la IP del par BGP.

        result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
        result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
        
    • Para asignar de forma manual las direcciones IP de BGP asociadas con la interfaz y el par BGP de Google Cloud, sigue estos pasos:

      1. Elige un par de direcciones IP de BGP de vínculo local en un bloque /30 del rango 169.254.0.0/16. Asigna una de estas direcciones IP de BGP a Cloud Router en el siguiente comando mediante el reemplazo de GOOGLE_BGP_IP. La otra dirección IP de BGP se usa para la puerta de enlace de VPN de intercambio de tráfico. Debes configurar tu dispositivo para usar esa dirección y reemplazar ON_PREM_BGP_IP en el último comando, a continuación.

      2. Agrega una interfaz nueva al Cloud Router. Reemplaza INTERFACE_NAME a fin de especificar un nombre para la interfaz.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --ip-address GOOGLE_BGP_IP \
            --mask-length 30 \
            --region REGION \
            --project PROJECT_ID
        
      3. Agrega un par BGP a la interfaz. Reemplaza PEER_NAME por un nombre para el intercambio de tráfico y PEER_ASN con el ASN configurado para la puerta de enlace de VPN de intercambio de tráfico.

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

        Si deseas definir rutas de aprendizaje personalizadas para el par, agrega la marca --set-custom-learned-route-ranges. También puedes usar la marca --custom-learned-route-priority a fin de establecer un valor de prioridad entre 0 y 65535 (inclusive) para las rutas. Cada sesión de BGP puede tener un valor de prioridad que se aplica a todas las rutas aprendidas personalizadas que configuraste para la sesión. Para obtener más información sobre esta función, consulta Rutas aprendidas personalizadas.

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

Completa la configuración

Para poder usar una puerta de enlace de Cloud VPN nueva y sus túneles VPN asociados, completa los siguientes pasos:

  1. Completa la configuración de la puerta de enlace de VPN de intercambio de tráfico con el software de VPN de terceros en la instancia de VM de Google Cloud. Configura el túnel correspondiente allí. Solo puedes usar el enrutamiento dinámico con VPN clásica para conectarte a software de VPN de terceros que se ejecuta dentro de Google Cloud.
  2. Configura las reglas de firewall en Google Cloud y en la red de intercambio de tráfico según sea necesario.
  3. Comprueba el estado del túnel VPN y las reglas de reenvío.

¿Qué sigue?