Establecer 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 los recursos de tu red de nube privada virtual (VPC). Para establecer la conectividad de esta forma, debes usar la función de dispositivo Router.

El dispositivo router es uno de los varios tipos de radios admitidos por Network Connectivity Center. Para obtener información sobre Network Connectivity Center, consulta la información general de Network Connectivity Center. Para obtener más información sobre el dispositivo router, consulta la información general sobre dispositivos router.

Ejemplo de configuración

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

La VM que aloja la instancia del dispositivo de router tiene una interfaz en cada red de VPC. La instancia del dispositivo de router mantiene sesiones del protocolo de puerta de enlace de frontera (BGP) con los routers de Cloud Router de ambas redes.

Cada router de Cloud Router tiene dos interfaces. La interfaz del dispositivo de router de cada red se empareja con ambas interfaces del router de Cloud Router correspondiente, lo que da un total de cuatro sesiones de emparejamiento.

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

Tareas necesarias

Para configurar la configuración de ejemplo, asegúrate de que cumples los requisitos previos para llevar a cabo este procedimiento y, a continuación, completa las tareas necesarias:

  1. Crea la máquina virtual de Compute Engine que actúa como instancia de dispositivo de router. Puedes crear la VM con una solución de partner compatible o con tu propia imagen personalizada.

  2. Asegúrate de que se pueda acceder a la instancia del dispositivo de router para el tráfico BGP a través del puerto TCP 179. Para que sea accesible, puede que tengas que crear reglas de cortafuegos.

  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 routers de Cloud Router, uno en cada red de VPC. En cada router de Cloud, esta tarea incluye las siguientes subtareas:

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

    2. Crea dos interfaces en cada router de Cloud.

    3. Configura el emparejamiento BGP en cada Cloud Router.

  5. Configura el peering de BGP en la instancia del dispositivo router.

La forma de completar estas tareas puede variar significativamente. Por ejemplo, si creas una instancia de dispositivo de router mediante una solución de partner, algunas de las tareas posteriores se pueden automatizar.

Antes de empezar

Antes de empezar, consulta las siguientes secciones.

Crea o escoge un proyecto.

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.

  5. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  6. Para inicializar gcloud CLI, ejecuta el siguiente comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.

  10. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Si usas la CLI de Google Cloud, define el ID de tu proyecto con el comando gcloud config set.

    gcloud config set project PROJECT_ID

    Sustituye PROJECT_ID por el ID de tu proyecto único.

    En las instrucciones de la CLI gcloud de esta página se presupone que ya has definido el ID de tu proyecto.

  13. Para confirmar que has definido el ID de proyecto correctamente, usa el comando gcloud config list.

    gcloud config list --format='text(core.project)'
  14. Habilitar la API Network Connectivity

    Para poder realizar cualquier tarea con Network Connectivity Center, debes habilitar la API Network Connectivity.

    Consola

    Para habilitar la API Network Connectivity, sigue estos pasos:

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

      Ir a Network Connectivity Center

    2. Haz clic en Enable (Habilitar).

    También puedes habilitar la API mediante la biblioteca de APIs de la consola,Google Cloud como se describe en el artículo Habilitar APIs.

    Obtener acceso

    Para trabajar con Network Connectivity Center, necesita los permisos que se describen en Roles y permisos.

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

    Direcciones IP e instancias de dispositivos router

    Para configurar una instancia de dispositivo de router, debes establecer el peering entre la instancia y el Cloud Router. Para configurar el peering, la VM debe usar una dirección IP interna RFC 1918. No puedes emparejar estos dos recursos si la máquina virtual usa otro tipo de dirección. Además, ambas direcciones IP deben estar en la misma región.

    Para obtener información sobre cómo ver las direcciones IP de una VM, consulta los siguientes documentos:

    Para ver las definiciones e información detallada sobre los tipos de direcciones IP, consulta Direcciones IP.

    Reservar una dirección IP interna estática (opción recomendada)

    Te recomendamos que asignes a la instancia de tu dispositivo de router una dirección IP interna estática para que la dirección no cambie durante el reinicio. Si la dirección cambia, la conexión de BGP falla.

    Tienes varias opciones para asignar una dirección IP reservada. Puedes reservar la dirección IP con antelación. También puedes reservar la dirección IP al crear la VM. Si asignas por error una dirección efímera a la VM, puedes convertirla en una dirección estática más adelante. Para obtener más información sobre las direcciones IP estáticas, consulta el artículo Reservar direcciones IP estáticas.

    Direcciones IP para el peering de BGP

    Una instancia de dispositivo de router usa su dirección IP interna para emparejarse con Cloud Router. La instancia no usa una dirección local de enlace (como 169.254.x.x) para el emparejamiento de BGP.

    Del mismo modo, Cloud Router usa dos direcciones IP internas RFC 1918 para emparejarse con la instancia del dispositivo de router, una dirección para cada interfaz. Estas direcciones IP se pueden asignar de forma manual o automática desde la subred que contiene tanto la interfaz de la instancia del dispositivo de router como la interfaz de Cloud Router.

    Crear recursos de VPC

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

    Crear dos redes de VPC

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

    Para obtener más información sobre cómo crear redes de VPC, consulta el artículo Crear redes.

    Consola

    Para crear una red VPC personalizada con la Google Cloud consola, consulta Crear una red en modo personalizado. Asegúrate de que el modo de enrutamiento dinámico esté definido como Global. Si quieres seguir las convenciones de nomenclatura que se usan en la configuración de ejemplo, 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
    

    Sustituye NAME por el nombre de la red VPC (por ejemplo, network-a o network-b).

    API

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

    Crear una subred

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

    Consola

    Para añadir una subred mediante la consola de Google Cloud , consulta el artículo sobre cómo añadir subredes.

    Si quiere seguir las convenciones de nomenclatura que se usan en la configuración de ejemplo, utilice los siguientes valores para la subred en network-a:

    • Nombre: subnet-a
    • Región: us-central1
    • Intervalo: 10.1.3.0/24

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

    • Nombre: subnet-b
    • Región: us-central1
    • Intervalo: 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
    

    Haz los cambios siguientes:

    • NAME: el nombre de la subred que contiene la VM del dispositivo router. Por ejemplo, subnet-a o subnet-b.
    • NETWORK: la red que contiene la subred. Por ejemplo, network-a o network-b.
    • REGION: la región que contiene la subred (por ejemplo, us-central1)
    • RANGE: el intervalo de IPs 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 Usar VPC.

    Crear la VM del dispositivo router

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

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

    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 Crear e iniciar una instancia de VM.

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

    Consola

    Para crear la VM que se usa en la configuración de ejemplo, consulta Crear e iniciar una instancia de VM. Cuando crees la VM, elige las siguientes opciones:

    • Si quieres seguir las convenciones de nomenclatura que se usan en la configuración de ejemplo, utiliza los siguientes valores:

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

    • Despliega Opciones avanzadas y, a continuación, 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, seleccione la red adecuada y, a continuación, haga clic en Añadir una interfaz de red. Rellena los siguientes campos:
        • Selecciona la subred en la que quieras ubicar la instancia del dispositivo de router (por ejemplo, subnet-a o subnet-b).
        • En IP interna principal, selecciona la dirección IP interna de RFC 1918 reservada que quieras usar (por ejemplo, 10.1.3.8 o 192.168.10.3).
        • En Nivel de servicio de red, selecciona Premium. Esta opción maximiza el uso de la red de Google por parte del tráfico.

    gcloud

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

    Ejecuta el comando dos veces, una por cada instancia de dispositivo router. Sustituye INSTANCE_NAME por el nombre de la VM que actúa como instancia de dispositivo de router.

    En el ejemplo siguiente, asignas a la VM la dirección IP interna estática y la dirección IP externa estática que has reservado anteriormente. También debe especificar el proyecto que contiene una imagen proporcionada por el proveedor para la máquina virtual, así como 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
    

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de la VM que actúa como instancia de dispositivo de enrutamiento. Por ejemplo, router-app-a o router-app-b.
    • PROJECT: el nombre del proyecto que contiene las VMs del dispositivo de router. Por ejemplo, my-project
    • ZONE: la Google Cloud zona en la que se encuentra la VM. Por ejemplo, us-west1-a
    • MACHINE_TYPE: el recurso de tipo de máquina que se va a usar en la VM (por ejemplo, n1-standard-2)
    • NETWORK_TIER: al crear las VMs del dispositivo de router, define el nivel de red en premium. De esta forma, se maximiza el uso de la red de Google por parte del tráfico.
    • SUBNET: la subred asignada a la interfaz de red principal de la máquina virtual. Por ejemplo, subnet-a-1.
    • INTERNAL_IP_ADDRESS: la dirección IP interna RFC 1918 asignada a la interfaz de la VM que se conecta al Cloud Router. Por ejemplo, 10.0.1.10.
    • IMAGE_PROJECT: nombre del proyecto que contiene la imagen especificada en el campo image. Por ejemplo, debian-cloud.
    • IMAGE: el nombre de la imagen que se va a instalar. Por ejemplo, debian-10-buster-v20210217.

    API

    Para crear las dos máquinas virtuales de dispositivo router que se usan en la configuración de ejemplo, usa el método compute.instances.insert.

    Para ver otros métodos de creación, consulta Crear e iniciar una instancia de máquina virtual.

    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
       }]
     }
    

    Haz los cambios siguientes:

    • PROJECT: el nombre del proyecto que contiene las VMs del dispositivo de router. Por ejemplo, my-project
    • ZONE: la Google Cloud zona en la que se encuentra la VM. Por ejemplo, us-west1-a
    • MACHINE_TYPE: el recurso de tipo de máquina que se va a usar en 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 red principal de la VM. Por ejemplo, regions/us-west1/subnetworks/subnet-a-1
    • INTERNAL_IP_ADDRESS: la dirección IP interna RFC 1918 que se asigna a la VM. Configura la dirección de la interfaz de la VM que se conecta al Cloud Router. Por ejemplo: 10.0.1.10
    • NETWORK_TIER: al crear las VMs del dispositivo de router, define el nivel de red en premium. De esta forma, se maximiza el uso de la red de Google por parte del tráfico.
    • IMAGE_PROJECT: el nombre del proyecto que contiene la imagen que especifiques al crear la VM. Por ejemplo, debian-cloud.
    • IMAGE: el nombre de la imagen que se usará al crear la máquina virtual. Por ejemplo, debian-10-buster-v20210217

    Crear una regla de cortafuegos para permitir BGP

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

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

    Consola

    Para crear una regla de cortafuegos de VPC con laGoogle Cloud consola, consulta Crear reglas de cortafuegos.

    gcloud

    Para crear una regla de cortafuegos de VPC con la CLI de Google Cloud, consulta Crear reglas de cortafuegos.

    API

    Para crear una regla de cortafuegos de VPC mediante la API Compute Engine, consulta Crear reglas de cortafuegos.

    Crear recursos de Network Connectivity Center

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

    Crear un centro de control

    Antes de crear radios de Network Connectivity Center, debes crear un eje.

    Consola

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

      Ir a Network Connectivity Center

    2. En el menú de proyectos, selecciona uno.

    3. Escribe un nombre de centro de control.

    4. Añade una Descripción (opcional).

    5. Verifica el ID del proyecto. Si el ID del proyecto es incorrecto, selecciona otro proyecto en el menú de la parte superior de la pantalla.

    6. Haz clic en Continuar.

    7. La consola muestra un formulario que te permite crear un spoke. Para rellenarlo ahora, sigue los pasos que se describen en Crear un spoke de dispositivo de router.

    8. Haz clic en Listo.

    gcloud

    Para crear un centro de control, usa el comando gcloud network-connectivity hubs create.

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

    Sustituye los siguientes valores:

    • HUB_NAME: el nombre del nuevo centro
    • DESCRIPTION: texto opcional que describe el centro de control.
    • KEY: la clave del par clave-valor del texto de la etiqueta opcional.
    • VALUE: el valor del par clave-valor del texto de la etiqueta opcional

    API

    Para crear un centro, 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"
        }
      }
    

    Sustituye los siguientes valores:

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

    Crear dos radios de dispositivo router

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

    Es necesario crear un spoke para habilitar el peering de BGP entre la instancia del dispositivo de router y Cloud Router, que crearás en el siguiente paso.

    Para obtener más información sobre cómo crear un radio, consulta Trabajar con ejes y radios.

    Consola

    Introduce los detalles básicos del radio

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

      Ir a Network Connectivity Center

    2. En el menú de proyectos, selecciona uno.

    3. Haz clic en la pestaña Portavoces.

    4. Haz clic en Añadir radios.

    5. En el formulario Nuevo spoke, selecciona Router appliance (Dispositivo de router) en Spoke type (Tipo de spoke).

    6. Introduce un nombre de Spoke, como spoke-a o spoke-b.

    7. Si quieres, puedes añadir una Descripción.

    8. Selecciona el campo Región del nuevo spoke.

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

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

    Introducir los detalles del router

    1. En Attach instance(s) to the spoke (Asociar instancias al spoke), usa la lista desplegable para seleccionar un dispositivo de router. Por ejemplo, router-app-a.
    2. Para añadir más instancias de dispositivo de router a este spoke, haz clic en Añadir instancia y repite el paso anterior.
    3. Cuando hayas terminado, haz clic en Hecho y ve a Guardar tu mensaje.

    Guarda tus radios

    1. Para añadir el segundo radio, haz clic en Añadir radio y vuelve a empezar el proceso. Primero, introduce un Nombre del radio.
    2. Cuando hayas terminado de añadir radios, haz clic en Crear. La página Network Connectivity Center se actualiza para mostrar detalles sobre los radios que has creado.

    gcloud

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

      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"
     

    Sustituye los siguientes valores:

    • NAME: el nombre del spoke (por ejemplo, spoke-a).
    • HUB_URI: el URI del centro al que vas a conectar el radio
    • DESCRIPTION: texto opcional que describe el spoke
    • ROUTER_APPLIANCE_URI: el URI de la instancia del dispositivo 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 del dispositivo de router en la red VPC adecuada (por ejemplo, 10.1.3.8 o 192.168.10.3).
    • REGION: la región en la que quieres ubicar el spoke. Por ejemplo, Google Cloud .us-central1
    • KEY: la clave del par clave-valor del texto de etiqueta opcional
    • VALUE: el valor del par clave-valor del texto de la etiqueta opcional

      Por ejemplo, el siguiente comando crea un radio de dispositivo de router que usa router-app-a como recursos subyacentes. Este comando hace referencia a la instancia del dispositivo router mediante su 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 recursos subyacentes. Este comando hace referencia a la instancia del dispositivo router mediante su 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 spoke de dispositivo router, usa el método networkconnectivity.spokes.create. Por cada instancia de dispositivo de router que quiera asociar al spoke, añada una instancia mediante la matriz 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
        }
      }
     

    Sustituye los siguientes valores:

    • PROJECT_ID: el ID de tu proyecto
    • REGION: la región Google Cloud en la que quieres ubicar el spoke. Por ejemplo, us-west1
    • SPOKE_NAME: el nombre que quieras darle al spoke
    • HUB_URI: el URI del centro al que vas a conectar la periferia. Por ejemplo:
      http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME 
    • KEY: la clave del par clave-valor del texto de etiqueta opcional
    • VALUE: el valor del par clave-valor del texto de la etiqueta opcional
    • ROUTER_APPLIANCE_URI: el URI de la instancia del dispositivo 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 del dispositivo de router de la red VPC adecuada. Por ejemplo, 10.1.3.8 o 192.168.10.3.
    • BOOLEAN: valor que determina si la transferencia de datos de sitio a sitio está habilitada para este spoke. En este caso práctico, defina la opción en false.

      Por ejemplo, para crear un spoke 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 spoke que use router-app-a para la interfaz en network-b, el cuerpo de la solicitud debe tener la siguiente estructura:

      {
        "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
        }
      }
      
      

    Configurar routers de Cloud Router

    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.

    Crear los routers de Cloud Router

    Si utiliza los mismos valores que en la topología de ejemplo, cree dos Cloud Routers, uno en network-a y otro en network-b. Ambos routers de Cloud Router deben estar en us-central1.

    Para obtener más información, consulta el artículo Crear routers de Cloud.

    Consola

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

    gcloud

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

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

    Haz los cambios siguientes:

    • NAME: 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) del router de Cloud. Este ASN debe ser un ASN privado de 16 o 32 bits, tal como se define en el RFC 6996. Por ejemplo, 65000
    • PROJECT_ID: el ID del proyecto de Cloud Router. Por ejemplo, my-project.

    API

    Para crear un router de 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
      }
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto de Cloud Router. Por ejemplo, my-project.
    • REGION: la región que contiene el Cloud Router. Por ejemplo, us-central1.
    • NAME: 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) del router de Cloud. Este ASN debe ser un ASN privado de 16 o 32 bits, tal como se define en el RFC 6996. Por ejemplo, 65000

    Crea dos interfaces en cada Cloud Router

    Para establecer la redundancia, crea dos interfaces en cada Cloud Router. En cada router de Cloud, 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 ejemplo, haz lo siguiente:

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

    Cada interfaz de Cloud Router usa una dirección IP interna regional. Si especificas explícitamente la dirección IP interna de la interfaz, esta debe pertenecer al intervalo de direcciones IP principal de la subred. No puede estar en uso por otro recurso, como una VM u otra interfaz de Cloud Router.

    No hay Google Cloud instrucciones de consola para este paso. Si usas la consola, cuando completes la siguiente tarea (Crear un emparejamiento BGP en cada Cloud Router), las interfaces se crearán automáticamente. Google Cloud

    gcloud

    Para crear interfaces redundantes en tus routers de Cloud Router, usa el comando gcloud compute routers add-interface.

    Sigue estos pasos dos veces: una para cloud-router-a y otra para cloud-router-b:

    1. Crea la primera interfaz de cada Cloud Router:

      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
      

      Haz los cambios siguientes:

      • ROUTER_NAME: el nombre del Cloud Router que se va a 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 va a usar en la primera interfaz. Si no especificas ningún valor, Google intentará encontrar una dirección libre en el intervalo de direcciones IP principal de la subred.
      • SUBNET: la subred que contiene la interfaz de Cloud Router y la interfaz de la instancia del dispositivo de router correspondiente
      • REGION: la Google Cloud región en la que se encuentra Cloud Router (por ejemplo, us-central1
      • PROJECT_ID: el ID del proyecto de Cloud Router. Por ejemplo, my-project.
    2. Crea la segunda interfaz de cada Cloud Router:

      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
      

      Haz los cambios siguientes:

      • ROUTER_NAME: el nombre del Cloud Router que se va a 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 va a usar en la segunda interfaz. Si no especificas ningún valor, Google intentará encontrar una dirección libre en el intervalo de direcciones IP principal de la subred.
      • SUBNET: la subred que contiene las dos interfaces de Cloud Router y la interfaz de la instancia del dispositivo de router correspondiente
      • FIRST_INTERFACE_NAME: el nombre de la interfaz que ha creado en el paso 1
      • REGION: la Google Cloud región en la que se encuentra Cloud Router (por ejemplo, us-central1
      • PROJECT_ID: el ID del proyecto de Cloud Router. Por ejemplo, my-project.

      Comandos de ejemplo para cloud-router-a

      El siguiente comando 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
      

      El siguiente comando 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 ejemplo para cloud-router-b

      El siguiente comando 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
      

      El siguiente comando 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 tus routers de Cloud Router, usa el método compute.routers.patch.

    Usa la siguiente solicitud dos veces: una para cloud-router-a y otra 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"
            }
          ]
        }
      

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto de Cloud Router. Por ejemplo, my-project.
    • REGION: la Google Cloud región en la que se encuentra Cloud Router (por ejemplo, us-central1
    • NAME: el nombre del Cloud Router que se va a 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 va a usar en la primera interfaz. Si no especificas ningún valor, Google intentará encontrar una dirección libre en el intervalo de direcciones IP principal de la subred.
    • SUBNET: la subred que contiene las dos interfaces de Cloud Router y la interfaz de la instancia del 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 de RFC 1918 que se va a usar en la segunda interfaz. Si no especificas ningún valor, Google intentará encontrar una dirección libre en el intervalo de direcciones IP principal de la subred.

      Comandos de ejemplo para cloud-router-a

      El siguiente comando crea 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 ejemplo para cloud-router-b

      El siguiente comando crea 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"
         }
       ]
      }
      

    Configurar el peering de BGP en cada Cloud Router

    Por cada interfaz de la instancia del dispositivo de router, debes crear dos sesiones de emparejamiento de BGP, una por cada interfaz de Cloud Router. Si utiliza los valores de la topología de ejemplo, haga 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.

    Consola

    Sigue estos pasos dos veces: una para spoke-a y otra para spoke-b:

    1. Ve a la página Network Connectivity Center.
    2. Ir a Network Connectivity Center
    3. En el menú de proyectos, selecciona uno.
    4. Haz clic en la pestaña Portavoces.
    5. En la columna Nombre del spoke, selecciona un spoke para ver la página Detalles del spoke. Por ejemplo, selecciona spoke-a o spoke-b.
    1. En la columna Nombre, busca router-app-a. Haz clic en el icono de expansión para ver los enlaces de Configurar sesión de BGP. Haga clic en cualquiera de estos enlaces. En respuesta, el sistema muestra el panel Configurar Cloud Router y sesiones de BGP.

    1. En la sección Cloud Router, haga una de las siguientes acciones:

      • Para seleccionar un Cloud Router, haz clic en Usar existente. Usa el campo Cloud Router para identificar el recurso adecuado y, a continuación, haz clic en Seleccionar y continuar.
      • Para crear un router en la nube en la página Network Connectivity Center (Centro de conectividad de red), haga clic en Crear y siga las instrucciones para crear el router en la nube. A continuación, haz clic en Crear y continuar.
    2. En Sesiones de BGP, configura las dos sesiones de BGP. Sigue estos pasos dos veces, una para cada sesión:
      1. Haz clic en Editar sesión de BGP.
      2. Rellene el formulario introduciendo un Nombre, un ASN de peer y una Prioridad de ruta anunciada (MED). Haz clic en Guardar y continuar.
    3. Haz clic en Crear.

    gcloud

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

    Sigue estos pasos dos veces: una para cloud-router-a y otra para cloud-router-b:

    1. Crea el primer par 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 par 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
      

      Haz los cambios siguientes:

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

      Comandos de ejemplo para cloud-router-a

      Usa los siguientes comandos para crear los peers de BGP de 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 ejemplo para cloud-router-b

      Usa los siguientes comandos para crear los peers de BGP de 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 peers de BGP en un Cloud Router, usa el método compute.routers.patch. Usa este método dos veces: una para cloud-router-a y otra 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
         }
        ]
       }
     

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto de Cloud Router
    • REGION: la región en la que se encuentra la VM que actúa como instancia del dispositivo de router.
    • NAME: nombre del Cloud Router que se va a actualizar
    • PEER_NAME: el nombre de la sesión de emparejamiento BGP que se va a establecer con la instancia del dispositivo de router.
    • INTERFACE_NAME: el nombre de la interfaz de Cloud Router a la que se va a añadir el peer
    • IP_ADDRESS: la dirección IP interna RFC 1918 del Cloud Router que se va a usar en la sesión de peerings
    • PEER_IP_ADDRESS: la dirección IP interna de la máquina virtual que actúa como instancia de dispositivo de router. Por ejemplo, 10.1.3.8 o 192.168.10.3.
    • ROUTER_APPLIANCE_INSTANCE: nombre en formato de URL de la VM que actúa como instancia del dispositivo router.
    • ROUTER_APPLIANCE_ZONE: la zona en la que se encuentra la VM que actúa como instancia del dispositivo router
    • PEER_ASN: el número de sistema autónomo (ASN) de BGP de este par de BGP. Este ASN debe ser un ASN privado de 16 o 32 bits tal como se define en el RFC 6996.

      Comandos de ejemplo 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 ejemplo 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
       }
       ]
      }
      

    Configurar BGP en la instancia de dispositivo router

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

    Siguientes pasos