Usa la autenticación MD5

Cloud Router usa el protocolo de puerta de enlace fronteriza (BGP) para intercambiar rutas entre una red de nube privada virtual (VPC) y una red de intercambio de tráfico. De forma predeterminada, las sesiones de BGP de Cloud Router no están autenticadas. Sin embargo, cuando usas Cloud Router con ciertos productos, puedes configurar tus sesiones de BGP para usar la autenticación MD5.

Los productos que pueden usar la autenticación MD5 incluyen los siguientes:

También puedes usar la autenticación MD5 con dispositivos virtuales de redes de terceros. Para obtener más información, consulta Dispositivo del router en la documentación de Network Connectivity Center.

Cuando configuras una sesión para que use la autenticación MD5, debes proporcionar una clave compartida secreta, una clave que usas cuando configuras Cloud Router y otra vez cuando configuras el router del par. Después de completar los pasos de configuración necesarios, Cloud Router usa esa clave para autenticar el par de BGP. Cloud Router aplica la autenticación MD5 mediante el modelo descrito en RFC 2385.

Puedes agregar la autenticación MD5 cuando creas un par. También puedes agregar autenticación a una sesión existente, cambiar la clave que usa una sesión o quitar la autenticación.

Antes de comenzar

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

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

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

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

    gcloud init
  1. Si usas Google Cloud CLI, ejecuta el siguiente comando para configurar el ID del proyecto. En las instrucciones de gcloud de esta página, se supone que estableciste el ID del proyecto.
    gcloud config set project PROJECT_ID
        
  1. Ejecuta el siguiente comando para confirmar que el ID se configuró:
    gcloud config list --format='text(core.project)'
        

Crea una sesión que use la autenticación

Para algunos productos de Conectividad de red, puedes configurar un par de BGP para usar la autenticación MD5 mientras creas el recurso. Estos productos incluyen VPN con alta disponibilidad y, además, interconexión dedicada.

Si deseas obtener más información, consulta las siguientes secciones:

Si creas un adjunto de VLAN de interconexión de socio de capa 2, primero debes crear el archivo adjunto y, luego, actualizar el par de BGP para agregar la autenticación MD5. Para obtener información sobre cómo agregar autenticación mientras se actualiza una sesión de BGP, consulta la siguiente sección. Si tienes una conexión de capa 3, comunícate con tu proveedor de servicios para obtener instrucciones.

Agrega autenticación a una sesión existente

Para agregar autenticación a una app similar de BGP existente, usa uno de los siguientes procedimientos. Cuando agregues la autenticación, asegúrate de que la clave que uses sea idéntica a la que usa tu router del par.

Google Cloud no muestra la clave de autenticación MD5 y solo muestra el nombre de la clave en una configuración exitosa.

  • Si configuras la autenticación MD5 a través de gcloud o IU, Google Cloud genera automáticamente el nombre de clave en el formato PEER_NAME-key.
  • Si configuras la autenticación MD5 a través de la API, puedes especificar el nombre de la clave.

Consola

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. En el campo Nombre, haz clic en el nombre del Cloud Router correspondiente.

  3. En la página de detalles del router, haz clic en el nombre de la sesión de BGP que deseas modificar.

  4. En la página de detalles de la sesión de BGP, haz clic en Editar.

  5. Para agregar la autenticación MD5, sigue estos pasos:

    1. En la sección Autenticación de MD5, elige Habilitadas. La página se actualiza para incluir un campo de texto.
    2. Ingresa una clave de seguridad o, para generar una nueva clave de seguridad, haz clic en Generar y copiar.
    3. Anota la clave. Después de salir de esta página, no podrás recuperar la clave.

  6. Haz clic en Guardar.

gcloud

Para actualizar la sesión con la CLI de gcloud, usa el comando gcloud compute routers update-bgp-peer:

  gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Reemplaza los siguientes valores:

  • ROUTER_NAME es el nombre del Cloud Router
  • PEER_NAME: el nombre del par de BGP
  • REGION: la región de Google Cloud
  • SECRET_KEY: tu clave de autenticación MD5 compartida secreta

API

Para actualizar la sesión con la API, usa el método compute.routers.patch. Cuando usas este método para agregar autenticación a la sesión, tu solicitud debe realizar dos acciones:

  • Agregar una entrada para la clave en el array md5AuthenticationKeys. Cuando agregas la entrada, proporcionas un nombre y un valor para la clave.
  • Actualizar el array bgpPeers para incluir un valor en el campo md5AuthenticationKeyName. Este campo hace referencia a la clave por nombre.

Cuando aplicas un parche al array md5AuthenticationKeys, debes proporcionar el name de cada elemento del array (a menos que desees quitar algunos elementos). Sin embargo, no tienes que proporcionar el valor para el campo key de cada elemento. Si omites este valor, Cloud Router conserva el valor anterior que se usó. Este comportamiento está diseñado para proteger la confidencialidad de las claves. Difiere de otros métodos de aplicación de parches, que suelen requerir que especifiques un valor para cada campo en un elemento del array.

Cuando aplicas un parche al array bgpPeers, debes proporcionar valores para cada campo de cada elemento (a menos que desees quitar algunos pares o algunos valores).

Por ejemplo, supongamos que Cloud Router tiene dos pares, uno que usa autenticación MD5 y otro que no. Si deseas dejar el primer par sin modificar, pero agregar la autenticación MD5 al segundo par, deberías usar una solicitud como la siguiente:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME_1",
      },
      {
        "name": "KEY_NAME_2",
        "key": "SECRET_KEY"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME_1",
        "md5AuthenticationKeyName": "KEY_NAME_1",
        "interfaceName": "INTERFACE_NAME_1",
        "ipAddress": "IP_ADDRESS_1",
        "peerIpAddress": "PEER_IP_ADDRESS_1",
        "peerAsn": "PEER_ASN_1"
      },
      {
        "name": "PEER_NAME_2",
        "md5AuthenticationKeyName": "KEY_NAME_2",
        "interfaceName": "INTERFACE_NAME_2",
        "ipAddress": "IP_ADDRESS_2",
        "peerIpAddress": "PEER_IP_ADDRESS_2",
        "peerAsn": "PEER_ASN_2"
      }
    ],
  }
 

Reemplaza los siguientes valores:

  • PROJECT_ID es el proyecto que contiene el Cloud Router
  • REGION: la región de Google Cloud
  • ROUTER_NAME es el nombre del Cloud Router
  • KEY_NAME_1: el nombre de la clave que está en uso (PEER_NAME_1).
  • KEY_NAME_2: el nombre de la clave nueva que deseas agregar para PEER_NAME_2. Toma nota del nombre. Si deseas realizar cambios más adelante mediante la API, necesitas el nombre.
  • SECRET_KEY: la clave de autenticación MD5 secreta que agregas para PEER_NAME_2
  • PEER_NAME_1: el nombre del par de BGP que no cambiarás
  • INTERFACE_NAME_1: el nombre de la interfaz para la sesión de intercambio de tráfico de BGP que no cambia
  • IP_ADDRESS_1 la dirección IP en Cloud Router (para el par que no cambia)
  • PEER_IP_ADDRESS_1: la dirección IP del par que no cambia
  • PEER_ASN_1: el número del sistema autónomo (ASN) de BGP para el par que no cambia
  • PEER_NAME_2: el nombre del par de BGP que deseas actualizar para que use la autenticación MD5
  • INTERFACE_NAME_2: el nombre de la interfaz para la sesión de intercambio de tráfico de BGP
  • IP_ADDRESS_2: la dirección IP en Cloud Router
  • PEER_IP_ADDRESS_2: la dirección IP del router del par
  • PEER_ASN_2: el número del sistema autónomo (ASN) de BGP para este par de BGP

Actualiza la clave de autenticación

A fin de cambiar la clave que Cloud Router usa para una sesión de intercambio de tráfico, usa uno de los siguientes procedimientos. Cuando actualices la clave en Cloud Router, asegúrate de que la clave que uses sea idéntica a la que usa el router del par.

Google Cloud no muestra la clave de autenticación MD5 y solo muestra el nombre de la clave en una configuración exitosa.

  • Si configuras la autenticación MD5 a través de gcloud o IU, Google Cloud genera automáticamente el nombre de clave en el formato PEER_NAME-key.
  • Si configuras la autenticación MD5 a través de la API, puedes especificar el nombre de la clave.

Consola

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. En el campo Nombre, haz clic en el nombre del Cloud Router correspondiente.

  3. En la página de detalles del router, haz clic en el nombre de la sesión de BGP que deseas modificar.

  4. En la página de detalles de la sesión de BGP, haz clic en Editar.

  5. En la sección Autenticación de MD5, haz clic en Actualizar clave de autenticación MD5.

  6. En el campo Clave de autenticación MD5, ingresa la clave de autenticación secreta nueva o, para propagar el campo, haz clic en Generar y copiar.

  7. Anota la clave. Después de salir de esta página, no podrás recuperar la clave.

  8. Haz clic en Guardar.

gcloud

Para actualizar la sesión, usa el comando gcloud compute routers update-bgp-peer.

  gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Reemplaza los siguientes valores:

  • ROUTER_NAME es el nombre del Cloud Router
  • PEER_NAME: el nombre del par de BGP
  • REGION: la región de Google Cloud
  • SECRET_KEY: la clave de autenticación MD5 nueva que deseas usar

API

Para actualizar la sesión, usa el método compute.routers.patch. Por ejemplo, usa una solicitud como la que se muestra a continuación.

En este ejemplo, se reemplaza todo el array de pares, no solo el par específico que se identifica. Es decir, quita todos los pares, excepto PEER_NAME. Quita todas las claves, excepto KEY_NAME, y actualiza el KEY_NAME con el valor nuevo UPDATED_SECRET_KEY.

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
       {
        "name": "KEY_NAME",
        "key": "UPDATED_SECRET_KEY"
      }
    ],

    "bgpPeers": [
      {
        "name": "PEER_NAME",
        "md5AuthenticationKeyName": "KEY_NAME",
        "interfaceName": "INTERFACE_NAME",
        "ipAddress": "IP_ADDRESS",
        "peerIpAddress": "PEER_IP_ADDRESS",
        "peerAsn": "PEER_ASN"
      }
    ],
  }
 

Reemplaza los siguientes valores:

  • PROJECT_ID es el proyecto que contiene el Cloud Router
  • REGION: la región de Google Cloud
  • ROUTER_NAME es el nombre del Cloud Router
  • KEY_NAME: el nombre de la clave que deseas actualizar; cuando trabajes con la autenticación MD5 mediante la API, debes hacer referencia a la clave por su nombre.
  • UPDATED_SECRET_KEY: tu nueva clave de autenticación MD5 secreta
  • PEER_NAME: el nombre del par de BGP
  • INTERFACE_NAME: el nombre de la interfaz para la sesión de intercambio de tráfico de BGP
  • IP_ADDRESS: la dirección IP en Cloud Router
  • PEER_IP_ADDRESS: la dirección IP del router del par
  • PEER_ASN: el número del sistema autónomo (ASN) de BGP para este par de BGP

Comprueba el estado de la autenticación

Usa los siguientes pasos para verificar el estado de la autenticación MD5. Consulta también Visualiza los detalles de Cloud Router.

Consola

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. En el campo Nombre, haz clic en el nombre del Cloud Router correspondiente.

  3. En la página Detalles del router, busca la columna Autenticación MD5. Para cada sesión, el valor de esta columna indica si la autenticación MD5 está habilitada.

gcloud

Para verificar la sesión con la CLI de gcloud, usa el comando gcloud compute routers get-status.

  gcloud compute routers get-status ROUTER_NAME \
     --project=PROJECT \
     --region=REGION \
 

Reemplaza los siguientes valores:

  • ROUTER_NAME es el nombre del Cloud Router
  • PROJECT: el nombre del proyecto
  • REGION: la región de Google Cloud

En el resultado, se incluye el objeto result.bgpPeerStatus[], que contiene información sobre las sesiones de BGP de Cloud Router. Los datos sobre cada sesión incluyen los siguientes dos campos:

  • md5AuthEnabled: un campo booleano que indica si la autenticación MD5 está habilitada para la sesión
  • statusReason: un campo que describe el estado de la sesión

API

Usa el método routers.getRouterStatus:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus

Reemplaza lo siguiente:

  • PROJECT_ID es el proyecto que contiene el Cloud Router
  • REGION es la región en la que se encuentra el Cloud Router
  • ROUTER_NAME es el nombre del Cloud Router

En el resultado, se incluye información sobre cada sesión de BGP. Los datos sobre cada sesión incluyen los siguientes dos campos:

  • md5AuthEnabled: un campo booleano que indica si la autenticación MD5 está habilitada para la sesión
  • statusReason: un campo que describe el estado de la sesión Este campo se muestra solo cuando hay un problema con la autenticación MD5. (En ese caso, el valor del campo es MD5_AUTH_INTERNAL_PROBLEM).

Para configurar la supervisión continua de tus sesiones de BGP, usa Cloud Logging. Logging registra la información sobre el estado de autenticación MD5 en el evento de BGP, que es parte del registro de información.

Quita una autenticación de una sesión

Si deseas quitar la autenticación MD5 de una sesión de BGP, debes quitar la autenticación MD5 del Cloud Router y del router del par.

Para quitar la autenticación MD5 de la sesión de BGP en el Cloud Router, usa uno de los siguientes procedimientos.

Consola

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. En el campo Nombre, haz clic en el nombre del Cloud Router correspondiente.

  3. En la página de detalles del router, haz clic en el nombre de la sesión de BGP que deseas modificar.

  4. En la página de detalles de la sesión de BGP, haz clic en Editar.

  5. En Autenticación MD5, haz clic en Inhabilitada.

  6. Haz clic en Guardar. Aparecerá el cuadro de diálogo Inhabilitar clave de autenticación MD5.

  7. En el cuadro de diálogo Confirmación, haz clic en Confirmar.

gcloud

Para quitar la autenticación MD5, usa el comando gcloud compute routers update-bgp-peer:

   gcloud compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

Reemplaza los siguientes valores:

  • ROUTER_NAME es el nombre del Cloud Router
  • PEER_NAME: el nombre del par de BGP
  • REGION: la región de Google Cloud

API

Para quitar la autenticación MD5, usa el método compute.routers.patch.

Cuando quitas la autenticación mediante la API, tu actualización debe realizar dos acciones:

  • Actualizar el array md5AuthenticationKeys
  • Quitar el valor md5AuthenticationKey de la entrada bgpPeers relevante.

Por ejemplo, si Cloud Router tiene dos pares de BGP y deseas quitar la autenticación MD5 de uno de ellos. En este caso, usa una solicitud como la que se muestra a continuación:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_UNCHANGED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_UPDATED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UPDATED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_UPDATED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_UPDATED_PEER",
        "peerAsn": "PEER_ASN_FOR_UPDATED_PEER"
      },
      {
        "name": "NAME_OF_UNCHANGED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UNCHANGED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerAsn": "PEER_ASN_FOR_UNCHANGED_PEER"
        "md5AuthenticationKeyName": "KEY_NAME_FOR_UNCHANGED_PEER"
      }
    ],
    ],
  }
 

Reemplaza los siguientes valores:

  • PROJECT_ID es el proyecto que contiene el Cloud Router
  • REGION: la región de Google Cloud donde se encuentra Cloud Router.
  • ROUTER_NAME es el nombre del Cloud Router
  • NAME_OF_UPDATED_PEER: el nombre de la sesión de intercambio de tráfico que deseas modificar
  • INTERFACE_NAME_FOR_UPDATED_PEER: el nombre de la interfaz del par de BGP que deseas modificar
  • IP_ADDRESS_FOR_UPDATED_PEER: la dirección IP en Cloud Router que usa el par que deseas modificar
  • PEER_IP_ADDRESS_FOR_UPDATED_PEER: la dirección IP del router del par de la sesión de intercambio de tráfico que deseas modificar
  • PEER_ASN: el número del sistema autónomo (ASN) de BGP para este par de BGP que deseas modificar
  • NAME_OF_UNCHANGED_PEER: el nombre de la sesión de intercambio de tráfico que deseas conservar tal como está
  • INTERFACE_NAME_FOR_UNCHANGED_PEER: el nombre de la interfaz del par de BGP que deseas mantener tal como está
  • IP_ADDRESS_FOR_UNCHANGED_PEER: la dirección IP en Cloud Router que usa el par que deseas mantener tal como está
  • PEER_IP_ADDRESS_FOR_UNCHANGED_PEER: la dirección IP del router del par de la sesión de intercambio de tráfico que deseas mantener tal como está.
  • PEER_ASN_FOR_UNCHANGED_PEER: el número del sistema autónomo (BGP) de BGP para el par de BGP que deseas mantener como está
  • KEY_NAME_FOR_UNCHANGED_PEER: el nombre de la clave de autenticación MD5 para la app similar de BGP que deseas mantener tal como está

Quita una sesión que use la autenticación

Para quitar una sesión de intercambio de tráfico que usa la autenticación MD5, usa uno de los siguientes procedimientos.

Consola

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. Elige el router del que deseas quitar una sesión de BGP.
  3. En Sesiones de BGP, selecciona la sesión de BGP que deseas quitar.
  4. En la parte superior de la página, haz clic en Borrar y confirma la eliminación.

gcloud

Para quitar una sesión de BGP con la autenticación MD5 habilitada, usa el comando gcloud compute routers remove-bgp-peer.

Para obtener más información, consulta Inhabilita o quita sesiones de BGP.

API

Para quitar una sesión de BGP con la autenticación MD5 habilitada, usa el método compute.routers.patch.

Cuando quitas una sesión de BGP con la autenticación MD5 mediante la API, tu actualización debe llevar a cabo dos acciones: quitar la clave del array md5AuthenticationKeys y quitar el bgpPeer en sí.

Por ejemplo, supongamos que Cloud Router tiene dos pares y deseas quitar uno de ellos. En este caso, usa una solicitud como la que se muestra a continuación:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_RETAINED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_RETAINED_PEER",
        "interfaceName": "INTERFACE_FOR_RETAINED_PEER",
        "ipAddress": "IP_ADDRESS_FOR_RETAINED_PEER",
        "peerIpAddress": "PEER_IP_ADDRESS_FOR_RETAINED_PEER",
        "peerAsn": "PEER_ASN_FOR_RETAINED_PEER",
        "md5AuthenticationKeyName": "KEY_NAME_FOR_RETAINED_PEER"
      }
    ],
  }
 

Reemplaza los siguientes valores:

  • PROJECT_ID es el proyecto que contiene el Cloud Router
  • REGION: la región de Google Cloud
  • ROUTER_NAME es el nombre del Cloud Router
  • KEY_NAME_FOR_RETAINED_PEER: el nombre de la clave que usa el par que conservas
  • NAME_OF_RETAINED_PEER: el nombre del par de BGP que conservas
  • INTERFACE_FOR_RETAINED_PEER: el nombre de la interfaz del par de BGP que conservas
  • IP_ADDRESS_FOR_RETAINED_PEER: la dirección IP en Cloud Router del par que conservas
  • PEER_IP_ADDRESS_FOR_RETAINED_PEER: la dirección IP del par que conservas
  • PEER_ASN_FOR_RETAINED_PEER: el número del sistema autónomo (ASN) de BGP para el par que conservas
  • KEY_NAME_FOR_RETAINED_PEER: el nombre de la clave de autenticación MD5 para app similar de BGP que conservas

Por ejemplo, supongamos que creaste los siguientes pares:

  PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
        "key":  "first_secret_key_value"
      },
      {
        "name":  "second_key_name",
        "key":  "second_secret_key_value"
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      },
      {
        "name": "second_peer",
        "md5AuthenticationKeyName": "second_key_name",
        "interfaceName": "second_interface",
        "ipAddress": "second_address",
        "peerIpAddress": "second_peer_interface",
        "peerAsn": "second_peer_asn"
      }
    ],
  }
 

Si deseas quitar el segundo par, deberías usar una solicitud como la siguiente:

  PATCH https://compute.googleapis.com/compute/v1/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      }
    ],
  }
 

¿Qué sigue?