Crea una VPN clásica mediante el enrutamiento dinámico

En esta página, se describe cómo crear una puerta de enlace de VPN clásica y un túnel con enrutamiento dinámico, que usa el Protocolo de Enrutamiento 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.

Si deseas obtener prácticas recomendadas antes de configurar Cloud VPN, consulta Prácticas recomendadas para Cloud VPN.

Requisitos

Requisitos y lineamientos generales

Crea Cloud Routers

Cuando configuras una nueva puerta de enlace de VPN con alta disponibilidad, puedes crear un nuevo Cloud Router o usar un Cloud Router que ya utilices con túneles de Cloud VPN o adjuntos de interconexión (VLAN) existentes. Sin embargo, el Cloud Router que usas no debe administrar una sesión de BGP para un adjunto de interconexión (VLAN) asociado con una interconexión de socio, debido a los requisitos específicos del ASN.

Antes de comenzar

Configurar los siguientes elementos en Google Cloud facilita la configuración de Cloud VPN:

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

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

    Ir a la página del selector de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Instala e inicializa el SDK de Cloud.
  1. Si usas comandos de gcloud, configura tu 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

También puedes ver un ID del proyecto que ya se configuró:

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

Crea una red y una subred de nube privada virtual personalizada

Antes de crear una puerta de enlace de VPN clásica y un túnel, debes crear una red de nube privada virtual y al menos una subred en la región donde residirá la puerta de enlace de VPN clásica.

Crea una puerta de enlace y un túnel

El asistente de configuración de VPN es la única opción de consola para crear una puerta de enlace de VPN clásica. En el asistente se incluyen todos los pasos de configuración necesarios para crear una puerta de enlace de VPN clásica, túneles, sesiones de BGP y un recurso de puerta de enlace de VPN externa. Sin embargo, puedes completar ciertos pasos más adelante. Por ejemplo, configurar sesiones de BGP.

El botón Crear puerta de enlace VPN solo admite la creación de puertas de enlace de VPN con alta disponibilidad.

Console

Configura la puerta de enlace

  1. Ve a la página VPN en Google Cloud Console.
    Ir a la página 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).
    • 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 (64512 - 65534, 4200000000 - 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: Es un ASN público o privado (64512 - 65534, 4200000000 - 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 Métricas de ruta. 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 vínculo 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 \
           --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 \
          --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 \
          --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 (64512 - 65534, 4200000000 - 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 con 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
        
      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
        

Pasos de seguimiento

Debes completar los siguientes pasos antes de poder utilizar una nueva puerta de enlace y túnel de Cloud VPN:

  1. Configura la puerta de enlace de VPN de intercambio de tráfico y configura el túnel correspondiente allí. Consulta estas páginas:
  2. Configura las reglas de firewall en Google Cloud y en la red de intercambio de tráfico según sea necesario. Consulta la página de reglas del firewall para obtener sugerencias.
  3. Comprueba el estado del túnel, incluidas las reglas de reenvío.
Aplica una política de la organización de VPN

Aplica una restricción de política de la organización que restrinja las direcciones IP de las puertas de enlace VPN de intercambio de tráfico

Puedes crear una restricción de política de la organización de Google Cloud que defina un conjunto de direcciones IP permitidas o denegadas para el intercambio de tráfico entre puertas de enlace de VPN a través de VPN clásicas o túneles VPN con alta disponibilidad. Esta restricción contiene una lista de permisos o una lista de denegación de estas direcciones IP de par, que entra en vigor para los túneles de Cloud VPN creados después de aplicar la restricción. Para obtener más información, consulta la Descripción general de Cloud VPN.

Permisos necesarios

Para establecer una restricción de IP de par en el nivel de organización o proyecto, primero debes tener la función de Administrador de políticas de la organización (orgpolicy.policyAdmin).

Cómo establecer restricciones

Si quieres crear políticas de la organización y asociarlas con una organización, una carpeta o un proyecto, usa los ejemplos de las siguientes secciones y sigue los pasos en Usa las restricciones.

Restringe la conectividad de direcciones IP de par específicas a través de un túnel de Cloud VPN

Para permitir solo direcciones IP de par específicas, sigue estos pasos:

  1. Ingresa el siguiente comando para buscar el ID de la organización:
    gcloud organizations list

    El resultado del comando debería verse como el siguiente ejemplo:

          DISPLAY NAME             ID
          example-organization     29252605212
        
  2. Crea un archivo JSON que defina la política. Debes proporcionar una política como un archivo JSON, como en el siguiente ejemplo:

         {
           "constraint": "constraints/compute.restrictVpnPeersIPs",
           "listPolicy": {
             "allowedValues": [
               "100.1.1.1",
             ],
           }
         }
       
  3. Usa el comando set-policy de Resource Manager de gcloud para configurar la política de la organización, pasar el archivo JSON y usar el “ORGANIZATION_ID” que obtuviste en el paso anterior.

Restringe la conectividad de cualquier IP de par de tráfico a través de un túnel de Cloud VPN

Si quieres prohibir la creación de cualquier túnel de Cloud VPN nuevo, sigue los pasos de esta restricción de ejemplo.

  1. Busca el ID de la organización o el ID del nodo en la jerarquía de recursos en la que deseas establecer una política.
  2. Crea un archivo JSON como se muestra en el siguiente ejemplo.

        {
          "constraint": "constraints/compute.restrictVpnPeersIPs",
          "listPolicy": {
            "allValues": "DENY"
          }
        }
    
  3. Ingresa el mismo comando que usarías para restringir direcciones IP de par específicas para pasar el archivo JSON.