Establece la conectividad mediante un dispositivo de terceros

Network Connectivity Center te permite usar un dispositivo virtual de red de terceros para establecer la conectividad entre un sitio externo y tus recursos de red de nube privada virtual (VPC). Para establecer la conectividad de esta manera, debes usar la función de dispositivo de router.

El dispositivo de router es uno de los varios tipos de radio compatibles para Network Connectivity Center. Para obtener información sobre Network Connectivity Center, consulta la descripción general de Network Connectivity Center. Para obtener más información acerca del dispositivo de router, consulta la descripción general del dispositivo de router.

Configuración de ejemplo

En la siguiente topología, un sitio externo se conecta a dos redes de VPC mediante un radio de dispositivo de router.

La VM que aloja la instancia de dispositivo de router tiene una interfaz en cada red de VPC. La instancia de dispositivo de router mantiene las sesiones del Protocolo de puerta de enlace fronteriza (BGP) con los Cloud Routers en ambas redes.

Cada Cloud Router tiene dos interfaces. La interfaz del dispositivo de router en cada red intercambia tráfico con ambas interfaces del Cloud Router apropiado, lo que da un total de cuatro sesiones de intercambio de tráfico.

Crea sesiones de BGP para dispositivos de router
Topología de sitio a nube de muestra (haz clic para ampliar)

Tareas obligatorias

A fin de establecer la configuración de muestra, asegúrate de cumplir con los requisitos para realizar este procedimiento y, luego, completa las tareas requeridas:

  1. Crea la máquina virtual (VM) de Compute Engine que actúe como una instancia de dispositivo de router. Puedes crear la VM mediante una solución de socios compatible o tu propia imagen personalizada.

  2. Asegúrate de que se pueda acceder a la instancia del dispositivo de router al tráfico de BGP a través del puerto 179 TCP. Para que sea accesible, es posible que debas crear reglas de firewall.

  3. Crea dos radios, uno en cada red de VPC. Cada radio usa la misma instancia de dispositivo de router que su recurso de respaldo.

  4. Configura dos Cloud Routers, uno en cada red de VPC. Para cada Cloud Router, esta tarea incluye las siguientes subtareas:

    1. Crea un Cloud Router en la misma región que la instancia de dispositivo de router.

    2. Crea dos interfaces en cada Cloud Router

    3. Configura el intercambio de tráfico de BGP en cada Cloud Router

  5. Configura el intercambio de tráfico de BGP en la instancia del dispositivo de router.

La forma en que realizas estas tareas puede variar de forma significativa. Por ejemplo, si creas una instancia de dispositivo de router mediante una solución de socios, es posible que algunas de las tareas posteriores se automaticen.

Antes de comenzar

Antes de empezar, revisa las siguientes secciones.

Crea o elige un proyecto

Para facilitar la configuración de Network Connectivity Center, empieza por identificar un proyecto válido.

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

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

  4. Instala Google Cloud CLI.
  5. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  6. 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

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

  8. Instala Google Cloud CLI.
  9. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  1. Si usas Google Cloud CLI, configura el ID del proyecto con el comando gcloud config set.

    gcloud config set project PROJECT_ID

    Reemplaza PROJECT_ID por el ID de tu proyecto único.

    En las instrucciones de la CLI de gcloud de esta página, se supone que estableciste el ID del proyecto.

  1. Para confirmar que configuraste el ID del proyecto de forma correcta, usa el comando gcloud config list.

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

Habilita la API de Network Connectivity

Antes de que puedas hacer cualquier tarea con Network Connectivity Center, debes habilitar la API de Network Connectivity.

Console

Para habilitar la API de Network Connectivity, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Network Connectivity Center.

    Ir a Network Connectivity Center

  2. Haz clic en Habilitar.

Como alternativa, puedes habilitar la API mediante la biblioteca de la API de la consola de Google Cloud, como se describe en Habilita las API.

Obtén acceso

Para trabajar con Network Connectivity Center, necesitas los permisos descritos en Roles y permisos.

Cuando configuras Network Connectivity Center, también trabajas con recursos de Google Cloud, como redes de VPC, subredes y reglas de firewall. Si deseas obtener más información sobre los permisos que necesitas para trabajar con estos recursos, consulta la documentación de control de acceso de Compute Engine.

Direcciones IP e instancias de dispositivo de router

Para configurar una instancia de dispositivo de router, debes establecer el intercambio de tráfico entre la instancia y Cloud Router. Para configurar el intercambio de tráfico, la VM debe usar una dirección IP interna RFC 1918. No puedes intercambiar estos dos recursos si la VM usa un tipo de dirección diferente. Además, ambas direcciones IP deben estar en la misma región.

Si deseas obtener información para ver las direcciones IP de una VM, consulta los siguientes documentos:

Para obtener definiciones y más información sobre los tipos de direcciones IP, consulta Direcciones IP.

Reserva una dirección IP interna estática (recomendado)

Te recomendamos asignar una dirección IP interna estática a la instancia del dispositivo de router para que no cambie durante el reinicio. Si la dirección cambia, el intercambio de tráfico de BGP falla.

Tienes varias opciones para asignar una dirección IP reservada. Puedes reservar la dirección IP por adelantado. Como alternativa, puedes reservar la dirección IP cuando crees la VM. Si le asignas a la VM una dirección efímera por error, puedes convertirla más adelante en una dirección estática. Para obtener más información sobre las direcciones IP estáticas, consulta Reserva direcciones IP estáticas.

Direcciones IP para el intercambio de tráfico de BGP

Una instancia del dispositivo de router usa su dirección IP interna para intercambiar tráfico con el Cloud Router. La instancia no usa una dirección de vínculo local (como 169.254.x.x) para el intercambio de tráfico de BGP.

De manera similar, Cloud Router usa dos direcciones IP internas RFC 1918 a fin de intercambiar tráfico con la instancia del dispositivo de router, una para cada interfaz. Estas direcciones IP se pueden asignar de forma manual o automática desde la subred que contiene la instancia de dispositivo de router y el Cloud Router.

Crea recursos de VPC

En las siguientes secciones, se describe cómo crear redes y subredes de VPC.

Crea dos redes de VPC

Si aún no lo hiciste, crea dos redes de VPC. Configura el modo de enrutamiento dinámico de cada red como global.

Para obtener más información sobre la creación de redes de VPC, consulta Crea redes.

Console

Para crear una red de VPC personalizada con la consola de Google Cloud, consulta Crea una red de modo personalizado. Asegúrate de configurar el Modo de enrutamiento dinámico en Global. Si deseas seguir las convenciones de nombres que se usan en la configuración de muestra, llama a tus redes network-a y network-b.

gcloud

Para crear una red de VPC personalizada, usa el comando gcloud compute networks create.

  gcloud compute networks create NAME \
      --subnet-mode custom \
      --bgp-routing-mode global

Reemplaza NAME con el nombre de la red de VPC, por ejemplo, network-a o network-b.

API

Para crear una red de VPC personalizada con la API de Compute Engine, consulta Usa VPC.

Crear una subred

Crea una subred en network-a y una en network-b.

Console

Para agregar una subred con la consola de Google Cloud, consulta Agrega subredes.

Si deseas seguir las convenciones de nombres que se usan en la configuración de muestra, usa los siguientes valores para la subred en network-a:

  • Name: subnet-a
  • Región: us-central1
  • Rango: 10.1.3.0/24

Usa los siguientes valores para la subred en network-b:

  • Name: subnet-b
  • Región: us-central1
  • Rango: 192.168.10.0/24

gcloud

Para crear una subred de VPC, usa el comando gcloud compute networks subnets create.

  gcloud compute networks subnets create NAME \
      --network=NETWORK \
      --region=REGION \
      --range=RANGE

Reemplaza lo siguiente:

  • NAME es el nombre de la subred que contiene la VM del dispositivo de router, por ejemplo, subnet-a o subnet-b.
  • NETWORK es la red que contiene la subred, por ejemplo, network-a o network-b
  • REGION: La región que contiene la VM, por ejemplo, us-central1
  • RANGE es el rango de IP de la subred en notación CIDR, por ejemplo, 10.1.3.0/24 o 192.168.10.0/24

API

Para crear una subred de VPC mediante la API de Compute Engine, consulta Usa VPC.

Crea la VM del dispositivo de router

Crea la VM de Compute Engine que actúa como una instancia de dispositivo de router. La VM se representa en la topología de muestra como router-app-a. Tiene dos interfaces, una en network-a y otra en network-b.

Cuando creas la VM, debes seleccionar una imagen de dispositivo virtual de red. Esta imagen puede ser cualquiera de las siguientes opciones:

Para obtener más información sobre cómo especificar imágenes, consulta los siguientes recursos:

Para obtener información detallada sobre cómo crear una VM, consulta Crea y, luego, inicia una instancia de VM.

En los ejemplos de esta sección, se supone que reservaste las direcciones IP para la instancia del dispositivo de router. Para obtener más información, consulta Direcciones IP del dispositivo de router.

Console

Para crear la VM que se usa en la configuración de ejemplo, consulta Crea e inicia una instancia de VM. Cuando crees la VM, toma las siguientes decisiones:

  • Si deseas seguir las convenciones de nombres usadas en la configuración de muestra, usa los siguientes valores:

    • Name: router-app-a
    • Región: us-central1
    • Zona: us-central1-a
  • Para seleccionar una imagen, ve al área de Disco de arranque de la página, haz clic en Cambiar y navega hasta la imagen adecuada para la VM.

  • Expande Herramientas de redes, discos, seguridad, administración, usuario único y, luego, expande Herramientas de redes. Usa los siguientes valores:

    • En Reenvío de IP, selecciona Habilitar.
    • En Interfaces de red, crea dos interfaces: una en network-a y otra en network-b. Para crear cada interfaz, selecciona la red adecuada y, luego, haz clic en Agregar interfaz de red. Completa los siguientes campos:
      • Selecciona la Subred en la que deseas ubicar la instancia de dispositivo de router, por ejemplo, subnet-a o subnet-b.
      • En IP interna principal, selecciona la dirección IP interna RFC 1918 reservada que deseas usar, por ejemplo, 10.1.3.8 o 192.168.10.3.
      • En Nivel de servicio de red, selecciona Premium. Esta opción maximiza la medida en la que el tráfico usa la red de Google.

gcloud

Para crear las dos VM de dispositivos del router que se usan en la configuración de ejemplo, usa el comando gcloud compute instances create.

Ejecuta el comando dos veces: una vez para cada instancia del dispositivo del router. Reemplaza INSTANCE_NAME con el nombre de la VM que actúa como una instancia de dispositivo de router.

En el siguiente ejemplo, debes asignar la dirección IP interna estática y la dirección IP externa estática que reservaste antes para la VM. También debes especificar el proyecto que contiene una imagen proporcionada por el proveedor para la VM junto con el nombre de la imagen.

  gcloud compute instances create INSTANCE_NAME \
      --project=PROJECT \
      --zone=ZONE \
      --machine-type=MACHINE_TYPE \
      --network-tier=NETWORK_TIER \
      --network-interface=[subnet=SUBNET,private-network-ip=INTERNAL_IP_ADDRESS] \
      --can-ip-forward \
      --image-project=IMAGE_PROJECT \
      --image=IMAGE

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la VM que funciona como una instancia de dispositivo de router, por ejemplo, router-app-a o router-app-b
  • PROJECT: El nombre del proyecto que contiene las VM del dispositivo de router, por ejemplo, my-project
  • ZONE: La zona de Google Cloud en la que se encuentra la VM, por ejemplo, us-west1-a
  • MACHINE_TYPE: El recurso de tipo de máquina que se usará para la VM, por ejemplo, n1-standard-2
  • NETWORK_TIER: Cuando crees las VM del dispositivo de router, configura el nivel de red en premium. Esta opción maximiza la medida en la que el tráfico usa la red de Google
  • SUBNET: La subred asignada a la interfaz de la red principal para la VM, por ejemplo, subnet-a-1
  • INTERNAL_IP_ADDRESS: La dirección IP interna RFC 1918 asignada a la interfaz de VM que se conecta al Cloud Router, por ejemplo, 10.0.1.10
  • IMAGE_PROJECT: es el nombre del proyecto que contiene la imagen especificada en el campo image, por ejemplo, debian-cloud
  • IMAGE: El nombre de la imagen que se instalará, por ejemplo, debian-10-buster-v20210217.

API

Para crear las dos VM de dispositivos del router que se usan en la configuración de ejemplo, usa el método compute.instances.insert.

Para ver métodos de creación adicionales, consulta Crea y, luego, inicia una instancia de VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
 {
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "name": "INSTANCE_NAME",
   "canIpForward": "true",
   "networkInterfaces": [{
     "subnetwork": "regions/REGION/subnetworks/SUBNET",
     "networkIP": "INTERNAL_IP_ADDRESS",
     "accessConfigs": [{
         "networkTier": "NETWORK_TIER,
       }]
     }],
    "disks": [{
      "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
   }]
 }

Reemplaza lo siguiente:

  • PROJECT: El nombre del proyecto que contiene las VM del dispositivo de router, por ejemplo, my-project
  • ZONE: La zona de Google Cloud en la que se encuentra la VM, por ejemplo, us-west1-a
  • MACHINE_TYPE: El recurso de tipo de máquina que se usará para la VM, por ejemplo, zones/us-west1-a/machineTypes/n1-standard-2
  • INSTANCE_NAME: El nombre de la VM, por ejemplo, router-app-a o router-app-b
  • REGION: La región que contiene la VM, por ejemplo, us-west1
  • SUBNET: La subred asignada a la interfaz de la red principal para la VM, por ejemplo, regions/us-west1/subnetworks/subnet-a-1
  • INTERNAL_IP_ADDRESS: La dirección IP interna RFC 1918 asignada a la VM; configura la dirección para la interfaz de VM que se conecta al Cloud Router, por ejemplo, 10.0.1.10
  • NETWORK_TIER: Cuando crees las VM del dispositivo de router, configura el nivel de red en premium. Esta opción maximiza la medida en la que el tráfico usa la red de Google
  • IMAGE_PROJECT: El nombre del proyecto que contiene la imagen que especificas cuando creas la VM, por ejemplo, debian-cloud
  • IMAGE: El nombre de la imagen que se usará cuando se cree la VM, por ejemplo, debian-10-buster-v20210217

Crea una regla de firewall para permitir BGP

Crea dos reglas de firewall, una en network-a y otra en network-b. Cada regla debe permitir el tráfico de BGP en el puerto TCP 179.

Para obtener más información sobre los comandos de firewall, consulta Usa reglas de firewall.

Console

Para crear una regla de firewall de VPC mediante la consola de Google Cloud, consulta Crea reglas de firewall.

gcloud

Para crear una regla de firewall de VPC mediante Google Cloud CLI, consulta Crea reglas de firewall.

API

Para crear una regla de firewall de VPC mediante la API de Compute Engine, consulta Crea reglas de firewall.

Crea recursos de Network Connectivity Center

Para poder usar una VM de dispositivo de router, debes crear los recursos de Network Connectivity Center requeridos.

Crea un concentrador

Antes de crear radios del Network Connectivity Center, debes crear un concentrador.

Console

  1. En la consola de Google Cloud, ve a la página Network Connectivity Center.

    Ir a Network Connectivity Center

  2. Selecciona un proyecto en el menú.

  3. Ingresa un nombre de concentrador.

  4. Ingrese una descripción opcional

  5. Verifica el ID del proyecto. Si el ID del proyecto es incorrecto, selecciona un proyecto diferente mediante el menú desplegable que aparece en la parte superior de la pantalla.

  6. Haz clic en Continuar.

  7. La consola muestra un formulario que te permite crear un radio. Para llenarla ahora, sigue los pasos que se describen en Crea un radio de dispositivo Router.

  8. Haga clic en Listo.

gcloud

Para crear un concentrador, usa el comando gcloud network-connectivity hubs create.

  gcloud network-connectivity hubs create HUB_NAME \
    --description="DESCRIPTION" \
    --labels="KEY"="VALUE"

Reemplaza los siguientes valores:

  • HUB_NAME: nombre del nuevo concentrador
  • DESCRIPTION: texto opcional que describe el concentrador
  • KEY: clave en el par clave-valor para el texto de etiqueta opcional
  • VALUE: valor en el par clave-valor para el texto de la etiqueta

API

Para crear un concentrador, usa el método networkconnectivity.hubs.create.

  POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs
  {
    "name":"HUB_NAME",
    "description":"DESCRIPTION",
    "labels": {
      "KEY": "VALUE"
    }
  }

Reemplaza los siguientes valores:

  • PROJECT_ID: ID del proyecto que contiene el concentrador nuevo
  • HUB_NAME: nombre del nuevo concentrador
  • DESCRIPTION: texto opcional que describe el concentrador
  • KEY: clave en el par clave-valor para el texto de etiqueta opcional
  • VALUE: valor en el par clave-valor para el texto de la etiqueta

Crea dos radios de dispositivo de router

Crea dos radios de dispositivo de router. Ambos radios usan el mismo recurso de respaldo: la instancia de dispositivo de router que acabas de crear. Un radio usa la interfaz en network-a y el otro usa la interfaz en network- b.

Se requiere un radio para habilitar el intercambio de tráfico de BGP entre la instancia del dispositivo del router y el Cloud Router, que crearás en el paso siguiente.

Si deseas obtener más información para crear un radio, consulta Trabaja con concentradores y radios.

Console

Ingresa los detalles básicos del radio

  1. En la consola de Google Cloud, ve a la página Network Connectivity Center.

    Ir a Network Connectivity Center

  2. Selecciona un proyecto en el menú de proyecto.

  3. Haz clic en la pestaña Radios.

  4. Haz clic en Agregar radios.

  5. En el formulario Nuevo radio, configura el Tipo de radio como dispositivo de router.

  6. Ingresa un Nombre de radio, por ejemplo, spoke-a o spoke-b.

  7. De manera opcional, ingresa una Descripción.

  8. Selecciona el campo Región para el radio nuevo.

  9. En Transferencia de datos de sitio a sitio, selecciona Desactivado.

  10. En la lista desplegable Red de VPC, selecciona una red.

Ingresa los detalles del dispositivo de router

  1. En Adjunta instancias al radio, usa la lista desplegable para seleccionar un dispositivo de router, por ejemplo, router-app-a.
  2. Para agregar más instancias de dispositivos de router a este radio, haz clic en Agregar instancia y repite el paso anterior.
  3. Cuando termines, haz clic en Listo y continúa hasta Guardar tu radio.

Guarda tus radios

  1. Para agregar los segundos radios, haz clic en Agregar radio y empieza el proceso de nuevo. Comienza por ingresar un Nombre de radio.
  2. Cuando termines de agregar los radios, haz clic en Crear. La página Network Connectivity Center se actualiza para mostrar los detalles sobre los radios que creaste.

gcloud

Para crear los radios del dispositivo de router, usa el comando gcloud network-connectivity spokes linked-router-appliances create. Ejecuta el comando dos veces, una vez por cada radio.

  gcloud network-connectivity spokes linked-router-appliances create NAME \
    --hub="HUB_URI" \
    --description="DESCRIPTION" \
    --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \
    --region=REGION \
    --labels="KEY"="VALUE" \
 

Reemplaza los siguientes valores:

  • NAME: nombre del radio, por ejemplo, spoke-a
  • HUB_URI: nombre del concentrador al que adjuntas la radio
  • DESCRIPTION: Es el texto opcional que describe el radio.
  • ROUTER_APPLIANCE_URI: el URI de la instancia de dispositivo de router, por ejemplo,
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: la dirección IP interna de la instancia de dispositivo de router, en la red de VPC adecuada, por ejemplo, 10.1.3.8 o 192.168.10.3
  • REGION: la región de Google Cloud en la que deseas ubicar el radio, por ejemplo, us-central1
  • KEY: clave en el par clave-valor para el texto de etiqueta opcional
  • VALUE: valor en el par clave-valor para el texto de la etiqueta

    Por ejemplo, el siguiente comando crea un radio de dispositivo de router que usa router-app-a como sus recursos subyacentes. Este comando hace referencia a la instancia de dispositivo del router mediante la interfaz network-a:

    gcloud network-connectivity spokes linked-router-appliances create spoke-a \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=10.1.3.8 \
        --region=us-central1 \
    

    Por ejemplo, el siguiente comando crea un radio de dispositivo de router que usa router-app-a como sus recursos subyacentes. Este comando hace referencia a la instancia de dispositivo de router mediante la interfaz network-b:

    gcloud network-connectivity spokes linked-router-appliances create spoke-b \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=192.168.10.3\
        --region=us-central1 \
    

API

Para crear un radio de un dispositivo router, usa el método networkconnectivity.spokes.create. Para cada instancia de dispositivo de router que desees asociar con el radio, agrega una instancia mediante el array linkedRouterApplianceInstances.instances.

  POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME
  {
    "hub": "HUB_URI",
    "labels": {"KEY": "VALUE"},
    "linkedRouterApplianceInstances": {
      "instances": [
        {
          "virtualMachine": "ROUTER_APPLIANCE_URI",
          "ipAddress": INTERNAL_IP_ADDRESS,
        },
      ],
      "siteToSiteDataTransfer": BOOLEAN
    }
  }
 

Reemplaza los siguientes valores:

  • PROJECT_ID: el ID del proyecto
  • REGION: la región de Google Cloud en la que deseas ubicar el radio, por ejemplo, us-west1
  • SPOKE_NAME: el nombre que deseas asignar al diccionario
  • HUB_URI: el URI del concentrador al que adjuntas la radio, por ejemplo,
    http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME 
  • KEY: clave en el par clave-valor para el texto de etiqueta opcional
  • VALUE: valor en el par clave-valor para el texto de la etiqueta
  • ROUTER_APPLIANCE_URI: el URI de la instancia de dispositivo de router, por ejemplo,
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: la dirección IP interna de la instancia de dispositivo de router para la red de VPC adecuada, por ejemplo, 10.1.3.8 o 192.168.10.3
  • BOOLEAN: valor que determina si está habilitada la transferencia de datos de sitio a sitio para este radio. Para este caso práctico, configura la opción como false

    Por ejemplo, a fin de crear un radio que use router-app-a para la interfaz en network-a, el cuerpo de la solicitud debe estructurarse de la siguiente manera:

    {
      "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
    
      "labels": {
        "environment" : "test"
      },
    
      "linkedRouterApplianceInstances": {
        "instances": [
          {
            "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
            "ipAddress": "10.1.3.8",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

    Para crear un radio que use router-app-a para la interfaz en network-b, el cuerpo de la solicitud debe estructurarse de la siguiente manera:

    {
      "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
    
      "labels": {
        "environment" : "test"
      },
    
      "linkedRouterApplianceInstances": {
        "instances": [
          {
            "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
            "ipAddress": "192.168.10.3",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

Configura Cloud Routers

El dispositivo de router usa Cloud Routers para intercambiar rutas con redes de VPC. Por este motivo, debes crear un Cloud Router en cada red de VPC y completar algunas tareas de configuración.

Crea los Cloud Routers

Si usas los mismos valores que la topología de muestra, crea dos Cloud Routers, uno en network-a y otro en network-b. Ambos Cloud Routers deben estar en us-central1.

Para obtener más información, consulta Crea Cloud Routers.

Console

Para crear un Cloud Router en la consola de Google Cloud, usa uno de los siguientes enfoques:

gcloud

Para crear un Cloud Router, usa el comando gcloud compute routers create.

  gcloud compute routers create NAME \
      --region=REGION \
      --network=NETWORK \
      --asn=ASN \
      --project=PROJECT_ID

Reemplaza lo siguiente:

  • NAME: es el nombre del Cloud Router, por ejemplo, cloud-router-a o cloud-router-b
  • REGION: La región que contiene el Cloud Router, por ejemplo, us-central1
  • NETWORK: la red de VPC que contiene el Cloud Router, por ejemplo, network-a o network-b
  • ASN: El número de sistema autónomo (ASN) para Cloud Router. Este ASN debe ser un ASN privado de 16 bits o de 32 bits, como se define en RFC 6996, por ejemplo, 65000
  • PROJECT_ID: El ID del proyecto para Cloud Router, por ejemplo, my-project

API

Para crear un Cloud Router, usa el método compute.routers.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
{
 "name": "NAME",
 "network": "NETWORK",
 "bgp": {
   "asn": ASN
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto para Cloud Router, por ejemplo, my-project
  • REGION: La región que contiene el Cloud Router, por ejemplo, us-central1
  • NAME: es el nombre del Cloud Router, por ejemplo, cloud-router-a o cloud-router-b
  • NETWORK: el URI de la red de VPC que contiene el Cloud Router, por ejemplo, /global/networks/network-a o /global/networks/network-b
  • ASN: El número de sistema autónomo (ASN) para Cloud Router. Este ASN debe ser un ASN privado de 16 bits o de 32 bits, como se define en RFC 6996, por ejemplo, 65000

Crea dos interfaces en cada Cloud Router

Para establecer redundancia, crea dos interfaces en cada Cloud Router. En cada Cloud Router, las dos interfaces deben estar asociadas a la misma subred que la interfaz del dispositivo de router correspondiente. Si usas los valores de la topología de muestra, haz lo siguiente:

  • Para cloud-router-a, crea dos interfaces en subnet-a.
  • Para cloud-router-b, crea dos interfaces en subnet-b.

La interfaz de Cloud Router usa una dirección IP interna regional. Si especificas de forma explícita la dirección IP interna de la interfaz, la dirección IP debe pertenecer al rango de direcciones IP principal de la subred. Otro recurso, como una VM u otra interfaz de Cloud Router, no puede estar usándolo.

No hay instrucciones de la consola de Google Cloud para este paso. Si usas la consola de Google Cloud, cuando completes la siguiente tarea (Crea un intercambio de tráfico de BGP en cada Cloud Router), las interfaces se crearán de forma automática.

gcloud

Para crear interfaces redundantes en los Cloud Routers, usa el comando gcloud compute routers add-interface.

Completa los siguientes pasos dos veces: una vez para cloud-router-a y otra vez para cloud-router-b:

  1. Para cada Cloud Router, crea la primera interfaz:

    gcloud compute routers add-interface ROUTER_NAME \
        --interface-name=FIRST_INTERFACE_NAME \
        --ip-address=FIRST_INTERFACE_IP_ADDRESS \
        --subnetwork=SUBNET \
        --region=REGION \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • ROUTER_NAME: El nombre del Cloud Router que se actualizará, por ejemplo, cloud-router-a o cloud-router-b
    • FIRST_INTERFACE_NAME: El nombre de la interfaz, por ejemplo, interface-1
    • FIRST_INTERFACE_IP_ADDRESS: La dirección IP interna RFC 1918 que se usará para la primera interfaz; Si no especificas un valor, Google intenta encontrar una dirección libre en el rango de direcciones IP principal de la subred
    • SUBNET: La subred que contiene la interfaz de Cloud Router y la interfaz de la instancia de dispositivo de router correspondiente
    • REGION: La región de Google Cloud donde reside el Cloud Router, por ejemplo, us-central1
    • PROJECT_ID: El ID del proyecto para Cloud Router, por ejemplo, my-project
  2. Para cada Cloud Router, crea la interfaz redundante:

    gcloud compute routers add-interface ROUTER_NAME \
        --interface-name=SECOND_INTERFACE_NAME \
        --ip-address=SECOND_INTERFACE_IP_ADDRESS \
        --subnetwork=SUBNET \
        --redundant-interface=FIRST_INTERFACE_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • ROUTER_NAME: El nombre del Cloud Router que se actualizará, por ejemplo, cloud-router-a o cloud-router-b
    • SECOND_INTERFACE_NAME: El nombre de la interfaz, por ejemplo, interface-2
    • SECOND_INTERFACE_IP_ADDRESS: La dirección IP interna RFC 1918 que se usará para la segunda interfaz; Si no especificas un valor, Google intenta encontrar una dirección libre en el rango de direcciones IP principal de la subred
    • SUBNET: La subred que contiene las dos interfaces de Cloud Router y la interfaz de la instancia de dispositivo de router correspondiente
    • FIRST_INTERFACE_NAME: El nombre de la interfaz que creaste en el paso 1
    • REGION: La región de Google Cloud donde reside el Cloud Router, por ejemplo, us-central1
    • PROJECT_ID: El ID del proyecto para Cloud Router, por ejemplo, my-project

    Comandos de muestra para cloud-router-a

    Con el siguiente comando, se crea la primera interfaz en cloud-router-a:

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=interface-1 \
        --ip-address=10.1.3.14 \
        --subnetwork=subnet-a \
        --region=us-central1 \
        --project=my-project
    

    Con el siguiente comando, se crea la segunda interfaz en cloud-router-a:

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=interface-2 \
        --ip-address=10.1.3.15 \
        --subnetwork=subnet-a \
        --redundant-interface=interface-1 \
        --region=us-central1 \
        --project=my-project
    

    Comandos de muestra para cloud-router-b

    Con el siguiente comando, se crea la primera interfaz en cloud-router-b:

    gcloud compute routers add-interface cloud-router-b \
        --interface-name=interface-1 \
        --ip-address=192.168.10.14 \
        --subnetwork=subnet-b \
        --region=us-central1 \
        --project=my-project
    

    Con el siguiente comando, se crea la segunda interfaz en cloud-router-b:

    gcloud compute routers add-interface cloud-router-b \
       --interface-name=interface-2 \
       --ip-address=192.168.10.15 \
       --subnetwork=subnet-b \
       --redundant-interface=interface-1 \
       --region=us-central1 \
       --project=my-project
    

API

Para crear interfaces redundantes en los Cloud Routers, usa el método compute.routers.patch.

Usa la siguiente solicitud dos veces, una vez para cloud-router-a y otra vez para cloud-router-b:

    "PATCH
    https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
    {
      "region":"REGION",
      "interfaces":[
        {
          "name":"FIRST_INTERFACE_NAME",
          "privateIpAddress:"FIRST_INTERFACE_IP_ADDRESS",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
        },
        {
          "name":"SECOND_INTERFACE_NAME",
          "privateIpAddress:"SECOND_INTERFACE_IP_ADDRESS",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
          "redundantInterface": "FIRST_INTERFACE_NAME"
        }
      ]
    }
  

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto para Cloud Router, por ejemplo, my-project
  • REGION: La región de Google Cloud donde reside el Cloud Router, por ejemplo, us-central1
  • NAME: el nombre del Cloud Router que se actualizará, por ejemplo, cloud-router-a o cloud-router-b
  • NETWORK: La red de VPC que contiene el Cloud Router, por ejemplo, network-a
  • FIRST_INTERFACE_NAME: El nombre de la primera interfaz, por ejemplo, interface-1
  • FIRST_INTERFACE_IP_ADDRESS: La dirección IP interna RFC 1918 que se usará para la primera interfaz; Si no especificas un valor, Google intenta encontrar una dirección libre en el rango de direcciones IP principal de la subred
  • SUBNET: La subred que contiene las dos interfaces de Cloud Router y la interfaz de la instancia de dispositivo de router correspondiente
  • SECOND_INTERFACE_NAME: El nombre de la segunda interfaz, por ejemplo, interface-2
  • SECOND_INTERFACE_IP_ADDRESS: La dirección IP interna RFC 1918 que se usará para la segunda interfaz; Si no especificas un valor, Google intenta encontrar una dirección libre en el rango de direcciones IP principal de la subred

    Comandos de muestra para cloud-router-a

    Con el siguiente comando, se crean dos interfaces en cloud-router-a:

     "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-a
      {
       "region":"us-central1",
       "interfaces":[
         {
          "name":"router-appliance-interface-0",
          "privateIpAddress:"10.1.3.14",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a"
         },
         {
          "name":"router-appliance-interface-1",
          "privateIpAddress:"10.1.3.15",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a",
          "redundantInterface": "router-appliance-interface-0"
         }
       ]
      }
     

    Comando de muestra para cloud-router-b

    Con el siguiente comando, se crean dos interfaces en cloud-router-b:

    "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-b
     {
       "region":"us-central1",
       "interfaces":[
         {
          "name":"router-appliance-interface-0",
          "privateIpAddress:"192.168.10.14",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b"
       },
       {
          "name":"router-appliance-interface-1",
          "privateIpAddress:"192.168.10.15",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b",
          "redundantInterface": "router-appliance-interface-0"
       }
     ]
    }
    

Configura el intercambio de tráfico de BGP en cada Cloud Router

Para cada interfaz de la instancia de dispositivo de router, debes crear dos sesiones de intercambio de tráfico de BGP: una para cada interfaz de Cloud Router. Si usas los valores de la topología de muestra, haz lo siguiente:

  • Crea dos sesiones de intercambio de tráfico entre cloud-router-a y la interfaz network-a de router-app-a.

  • Crea dos sesiones de intercambio de tráfico entre cloud-router-b y la interfaz network-b de router-app-a.

Console

Completa los siguientes pasos dos veces: una vez para spoke-a y otra vez para spoke-b:

  1. Dirígete a la página de Network Connectivity Center.
  2. Ir a Network Connectivity Center
  3. Selecciona un proyecto en el menú de proyecto.
  4. Haz clic en la pestaña Radios.
  5. En la columna Nombre del radio, selecciona un radio para ver la página Detalles del radio. Por ejemplo, selecciona spoke-a o spoke-b.
  1. En la columna Nombre, busca router-app-a. Haz clic en el ícono de expandir para mostrar los vínculos Configurar sesión de BGP. Haz clic en cualquiera de estos vínculos. En respuesta, el sistema muestra el panel Configura sesiones de Cloud Router y BGP.

  1. En Cloud Router, realiza una de las siguientes acciones:

    • Para seleccionar un Cloud Router existente, haz clic en Usar existente. Usa el campo Cloud Router para identificar el recurso adecuado y, luego, haz clic en Seleccionar y continuar.
    • Para crear un Cloud Router en la página Network Connectivity Center, haz clic en Crear nuevo y sigue las indicaciones para crear el Cloud Router. Luego, haz clic en Crear y continuar.
  2. En Sesiones de BGP, configura las dos sesiones de BGP. Completa los siguientes pasos dos veces, una vez por cada sesión:
    1. Haz clic en Editar sesión de BGP.
    2. Para completar el formulario, ingresa un nombre, un ASN de par y una Prioridad de ruta anunciada (MED). Haz clic en Guardar y continuar.
  3. Haz clic en Crear.

gcloud

Para crear pares de BGP en tus Cloud Routers, usa el comando gcloud compute routers add-bgp-peer.

Completa los siguientes pasos dos veces: una vez para cloud-router-a y otra vez para cloud-router-b:

  1. Crea el primer intercambio de tráfico de BGP:

    gcloud compute routers add-bgp-peer NAME \
        --peer-name=PEER_NAME \
        --interface=INTERFACE \
        --peer-ip-address=PEER_IP_ADDRESS \
        --peer-asn=PEER_ASN \
        --instance=ROUTER_APPLIANCE \
        --instance-zone=ROUTER_APPLIANCE_ZONE \
        --region=REGION
    
  2. Crea el segundo intercambio de tráfico de BGP:

    gcloud compute routers add-bgp-peer NAME \
        --peer-name=PEER_NAME \
        --interface=INTERFACE \
        --peer-ip-address=PEER_IP_ADDRESS \
        --peer-asn=PEER_ASN \
        --instance=ROUTER_APPLIANCE \
        --instance-zone=ROUTER_APPLIANCE_ZONE \
        --region=REGION
    

    Reemplaza lo siguiente:

    • NAME: el nombre del Cloud Router que se actualizará, por ejemplo, cloud-router-a o cloud-router-b
    • PEER_NAME: El nombre de la sesión de intercambio de tráfico de BGP que se establecerá con la instancia de dispositivo de router.
    • INTERFACE: El nombre de la interfaz para este intercambio de tráfico de BGP
    • PEER_IP_ADDRESS: la dirección IP interna del router del par (la instancia de dispositivo de router), por ejemplo, 10.1.3.8 o 192.168.10.3
    • PEER_ASN: El número del sistema autónomo de BGP (ASN) para este intercambio de tráfico de BGP: este ASN debe ser un ASN privado de 16 bits o de 32 bits como se define en RFC 6996
    • ROUTER_APPLIANCE: el nombre de la VM que actúa como la instancia de dispositivo de router, por ejemplo, router-app-a
    • ROUTER_APPLIANCE_ZONE: la zona en la que se encuentra la VM que actúa como la instancia de dispositivo de router, por ejemplo, us-central1-a
    • REGION: La región en la que se encuentra la VM que actúa como la instancia de dispositivo de router, por ejemplo, us-central1

    Comandos de muestra para cloud-router-a

    Usa los siguientes comandos a fin de crear los pares de BGP para cloud-router-a:

    gcloud compute routers add-bgp-peer cloud-router-a \
      --peer-name=router-appliance-bgp-peer-router-app-a-0 \
      --interface=router-appliance-interface-0 \
      --peer-ip-address=10.1.3.8 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    
    gcloud compute routers add-bgp-peer cloud-router-a \
      --peer-name=router-appliance-bgp-peer-router-app-a-1 \
      --interface=router-appliance-interface-1 \
      --peer-ip-address=10.1.3.8 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    

    Comandos de muestra para cloud-router-b

    Usa los siguientes comandos a fin de crear los pares de BGP para cloud-router-b:

    gcloud compute routers add-bgp-peer cloud-router-b \
       --peer-name=router-appliance-bgp-peer-router-app-a-0 \
      --interface=router-appliance-interface-0 \
      --peer-ip-address=192.168.10.3 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    
    gcloud compute routers add-bgp-peer cloud-router-b \
      --peer-name=router-appliance-bgp-peer-router-app-a-1 \
      --interface=router-appliance-interface-1 \
      --peer-ip-address=192.168.10.3 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    

API

Para crear pares de BGP en un Cloud Router, usa el método compute.routers.patch. Usa este método dos veces, una vez para cloud-router-a y otra vez para cloud-router-b.

 PATCH
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
   {
    "bgpPeers": [
     {
       "name": "PEER_NAME",
       "interfaceName": "INTERFACE_NAME",
       "ipAddress": "IP_ADDRESS",
       "peerIpAddress": "PEER_IP_ADDRESS",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
       "peerAsn": PEER_ASN,
     }
     {
       "name": "PEER_NAME",
       "interfaceName": "INTERFACE_NAME",
       "ipAddress": "IP_ADDRESS",
       "peerIpAddress": "PEER_IP_ADDRESS",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
       "peerAsn": PEER_ASN
     }
    ]
   }
 

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto para Cloud Router
  • REGION: La región en la que se encuentra la VM que actúa como la instancia de dispositivo de router
  • NAME: El nombre del Cloud Router que se actualizará
  • PEER_NAME: El nombre de la sesión de intercambio de tráfico de BGP que se establecerá con la instancia de dispositivo de router.
  • INTERFACE_NAME: El nombre de la interfaz de Cloud Router para agregar el intercambio de tráfico
  • IP_ADDRESS: la dirección IP interna RFC 1918 del Cloud Router que se usará para la sesión de intercambio de tráfico
  • PEER_IP_ADDRESS: la dirección IP interna de la VM que actúa como una instancia de dispositivo de router, por ejemplo, 10.1.3.8 o 192.168.10.3
  • ROUTER_APPLIANCE_INSTANCE: El nombre en formato de URL para la VM que funciona como la instancia de dispositivo de router
  • ROUTER_APPLIANCE_ZONE: La zona en la que se encuentra la VM que actúa como la instancia de dispositivo de router
  • PEER_ASN: El número del sistema autónomo de BGP (ASN) para este intercambio de tráfico de BGP: este ASN debe ser un ASN privado de 16 bits o de 32 bits como se define en RFC 6996

    Comandos de muestra para cloud-router-a

    PATCH
    https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
    {
     "bgpPeers": [
     {
       "name": "router-appliance-bgp-peer-router-app-a-0",
       "interfaceName": "router-appliance-interface-0",
       "ipAddress": "10.1.3.14",
       "peerIpAddress": "10.1.3.8",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001,
     }
     {
       "name": "router-appliance-bgp-peer-router-app-a-1",
       "interfaceName": "router-appliance-interface-1",
       "ipAddress": "10.1.3.15",
       "peerIpAddress": "10.1.3.8",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001
     }
     ]
    }
    

    Comandos de muestra para cloud-router-b

    PATCH
    https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-b
    {
     "bgpPeers": [
     {
       "name": "router-appliance-bgp-peer-router-app-a-0",
       "interfaceName": "router-appliance-interface-0",
       "ipAddress": "192.168.10.14",
       "peerIpAddress": "192.168.10.3",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001,
     }
     {
       "name": "router-appliance-bgp-peer-router-app-a-1",
       "interfaceName": "router-appliance-interface-1",
       "ipAddress": "192.168.10.15,
       "peerIpAddress": "192.168.10.3",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001
     }
     ]
    }
    

Configura BGP en la instancia de dispositivo de router

Configura la instancia de dispositivo de router para la conectividad de BGP a los dos Cloud Routers. Para ello, consulta la documentación del proveedor de tu imagen de dispositivo de router.

¿Qué sigue?