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.

Para configurar la autenticación MD5, debes usar Google Cloud CLI o la API.

Antes de comenzar

  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 Google Cloud Console, 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 Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. Instala y, luego, inicializa Google Cloud CLI.
  5. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  7. Instala y, luego, inicializa Google Cloud CLI.
  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

Si deseas agregar autenticación a un par 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.

gcloud

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

  gcloud beta 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/beta/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

Si necesitas cambiar la clave que usa Cloud Router 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.

gcloud

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

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

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME"
      }
    ],
    "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.

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.

gcloud

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

  gcloud beta 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/beta/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).

Quita una autenticación de una sesión

Si deseas quitar la autenticación MD5 de una sesión, usa uno de los siguientes procedimientos.

gcloud

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

   gcloud beta 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/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_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_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_FOR_UNCHANGED_PEER: el nombre del sistema autónomo de BGP de la clave de autenticación MD5 para el par de BGP que deseas mantener como está

Quita una sesión que use la autenticación

A veces, es posible que desees quitar una sesión de intercambio de tráfico que usa la autenticación MD5. Si trabajas con la CLI de gcloud, debes usar el mismo proceso que usarías para los pares no autenticados. Sin embargo, si trabajas en la API, el proceso es ligeramente diferente.

gcloud

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

   gcloud beta 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: 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/beta/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"
      }
    ],
  }
 

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

Por ejemplo, supongamos que creaste los siguientes pares:

  PATCH https://compute.googleapis.com/compute/beta/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/beta/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?