Usar a autenticação MD5

O Cloud Router usa o Border Gateway Protocol (BGP) para trocar rotas entre uma rede de nuvem privada virtual (VPC) e uma rede de app semelhante. Por padrão, as sessões do BGP do Cloud Router não são autenticadas. No entanto, quando você usa o Cloud Router com determinados produtos, é possível configurar suas sessões do BGP para usar a autenticação MD5.

Os produtos que podem usar a autenticação MD5 incluem:

Também é possível usar a autenticação MD5 com dispositivos virtuais de rede de terceiros. Para mais informações, consulte Dispositivo roteador na documentação do Network Connectivity Center.

Ao configurar uma sessão para usar a autenticação MD5, você fornece uma chave compartilhada secreta - uma chave a ser usada ao configurar o Cloud Router e novamente ao configurar o roteador de mesmo nível. Depois de concluir as etapas de configuração necessárias, o Cloud Router usará essa chave para autenticar o app semelhante do BGP. O Cloud Router aplica a autenticação MD5 usando o modelo descrito na RFC 2385.

É possível adicionar a autenticação MD5 ao criar um app semelhante. Também é possível adicionar a autenticação a uma sessão existente, alterar a chave usada por uma sessão ou remover a autenticação.

Para configurar a autenticação MD5, você precisa usar a CLI ou a API do Google Cloud.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  4. Instale e inicialize a Google Cloud CLI.
  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  7. Instale e inicialize a Google Cloud CLI.
  1. Se você estiver usando a Google Cloud CLI, defina o ID do projeto executando o comando a seguir. As instruções do gcloud nesta página presumem que você definiu o ID do projeto.
    gcloud config set project PROJECT_ID
        
  1. Confirme se o ID foi definido executando o seguinte comando:
    gcloud config list --format='text(core.project)'
        

Criar uma sessão que usa autenticação

Em alguns produtos de conectividade de rede, é possível configurar um app semelhante do BGP para usar a autenticação MD5 enquanto cria o recurso. Esses produtos incluem a VPN de alta disponibilidade e a Interconexão dedicada.

Para saber mais, consulte as seguintes seções:

Se você estiver criando um anexo da VLAN na Interconexão por parceiro de nível 2, crie o anexo primeiro e, em seguida, atualize o app semelhante do BGP para adicionar a autenticação MD5. Para informações sobre como adicionar autenticação ao atualizar uma sessão do BGP, consulte a seção a seguir. Se você tiver uma conexão da camada 3, entre em contato com seu provedor de serviços para receber instruções.

Adicionar autenticação a uma sessão existente

Se você quiser adicionar a autenticação a um app semelhante de BGP existente, use um dos procedimentos a seguir. Ao adicionar autenticação, verifique se a chave usada é idêntica à usada pelo roteador de app semelhante.

gcloud

Para atualizar a sessão com a CLI gcloud, use o 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
 

Substitua os seguintes valores:

  • ROUTER_NAME: o nome do Cloud Router
  • PEER_NAME: o nome do app semelhante do BGP
  • REGION: a região do Google Cloud
  • SECRET_KEY: a chave de autenticação MD5 compartilhada do secret

API

Para atualizar a sessão usando a API, utilize o método compute.routers.patch. Quando você usa esse método para adicionar autenticação à sessão, a solicitação precisa fazer duas coisas:

  • Adicione uma entrada para a chave na matriz md5AuthenticationKeys. Ao adicionar a entrada, você fornece um nome e um valor para a chave.
  • Atualize a matriz bgpPeers para incluir um valor para o campo md5AuthenticationKeyName. Esse campo faz referência à chave por nome.

Ao fazer patch da matriz md5AuthenticationKeys, é preciso fornecer o name de cada item na matriz (a menos que você queira remover alguns itens). No entanto, não é necessário fornecer o valor do campo key de cada item. Se você omitir esse valor, o Cloud Router manterá o valor anterior que foi usado. Esse comportamento foi criado para proteger o segredo das chaves. Ele é diferente de outros métodos de patch, que normalmente exigem a especificação de um valor para cada campo em um item da matriz.

Ao corrigir a matriz bgpPeers, é preciso fornecer valores para cada campo em cada item, a menos que você queira remover alguns apps semelhantes ou alguns valores.

Por exemplo, suponha que o Cloud Router tenha dois apps semelhantes, um que usa a autenticação MD5 e outro que não. Se quiser manter o primeiro inalterado, mas adicionar a autenticação MD5 ao segundo, use uma solicitação como a seguinte.

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

Substitua os seguintes valores:

  • PROJECT_ID: o projeto que contém o Cloud Router
  • REGION: a região do Google Cloud
  • ROUTER_NAME: o nome do Cloud Router
  • KEY_NAME_1: o nome da chave que está em uso atual (por PEER_NAME_1)
  • KEY_NAME_2: o nome da nova chave que você quer adicionar para PEER_NAME_2. Anote o nome. Se você quiser fazer alterações mais tarde usando a API, precisará do nome.
  • SECRET_KEY: chave de autenticação MD5 secreta que você está adicionando para PEER_NAME_2.
  • PEER_NAME_1: o nome do app semelhante do BGP que você não está mudando.
  • INTERFACE_NAME_1: o nome da interface da sessão de peering do BGP que não será alterada.
  • IP_ADDRESS_1: o endereço IP do Cloud Router (para o par que não vai mudar)
  • PEER_IP_ADDRESS_1: o endereço IP do app semelhante que não muda
  • PEER_ASN_1: o número do sistema autônomo (ASN, na sigla em inglês) do BGP para o par que não vai mudar.
  • PEER_NAME_2: o nome do peering do BGP que você quer atualizar para que use a autenticação MD5
  • INTERFACE_NAME_2: o nome da interface da sessão de peering do BGP.
  • IP_ADDRESS_2: o endereço IP do Cloud Router
  • PEER_IP_ADDRESS_2: o endereço IP do roteador de app semelhante
  • PEER_ASN_2: o número de sistema autônomo (ASN, na sigla em inglês) do BGP para esse app semelhate do BGP

Atualizar a chave de autenticação

Se você precisar alterar a chave usada pelo Cloud Router para uma sessão de peering, use um dos procedimentos a seguir. Ao atualizar a chave no Cloud Router, verifique se ela é idêntica à usada pelo roteador de app semelhante.

gcloud

Para atualizar a sessão, use o 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
 

Substitua os seguintes valores:

  • ROUTER_NAME: o nome do Cloud Router
  • PEER_NAME: o nome do app semelhante do BGP
  • REGION: a região do Google Cloud
  • SECRET_KEY: a nova chave de autenticação MD5 secreta que você quer usar.

API

Para atualizar a sessão, use o método compute.routers.patch. Por exemplo, use uma solicitação como a mostrada a seguir.

Este exemplo substitui toda a matriz de peering, não apenas o app semelhante específico identificado. Ou seja, ele remove todos os apps semelhantes, exceto PEER_NAME. Ele remove todas as chaves, exceto 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"
      }
    ],
  }
 

Substitua os seguintes valores:

  • PROJECT_ID: o projeto que contém o Cloud Router
  • REGION: a região do Google Cloud
  • ROUTER_NAME: o nome do Cloud Router
  • KEY_NAME: o nome da chave que você quer atualizar. Sempre que você trabalhar com a autenticação MD5 usando a API, será necessário fazer referência à chave pelo nome.
  • UPDATED_SECRET_KEY: a nova chave de autenticação MD5 do secret
  • PEER_NAME: o nome do app semelhante do BGP
  • INTERFACE_NAME: o nome da interface da sessão de peering do BGP.
  • IP_ADDRESS: o endereço IP do Cloud Router
  • PEER_IP_ADDRESS: o endereço IP do roteador de app semelhante
  • PEER_ASN: o número de sistema autônomo (ASN, na sigla em inglês) do BGP para esse app semelhate do BGP

Verificar o status da autenticação

Siga estas etapas para verificar o status da autenticação MD5. Consulte também Ver detalhes do Cloud Router.

Para configurar o monitoramento contínuo das suas sessões do BGP, use o Cloud Logging. O Logging grava informações sobre o status de autenticação MD5 no evento do BGP, que faz parte do Registro de informações.

gcloud

Para verificar a sessão usando a CLI do gcloud, use o comando gcloud beta compute routers get-status.

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

Substitua os seguintes valores:

  • ROUTER_NAME: o nome do Cloud Router
  • PROJECT: o nome do projeto.
  • REGION: a região do Google Cloud

A saída inclui o objeto result.bgpPeerStatus[], que contém informações sobre as sessões do BGP do Cloud Router. Os dados sobre cada sessão incluem os dois campos a seguir:

  • md5AuthEnabled: um campo booleano que indica se a autenticação MD5 está ativada para a sessão
  • statusReason - um campo que descreve o status da sessão

API

Use o método routers.getRouterStatus.

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

Substitua:

  • PROJECT_ID: o projeto que contém o Cloud Router
  • REGION: a região onde o Cloud Router está localizado
  • ROUTER_NAME: o nome do Cloud Router

A saída inclui informações sobre cada sessão do BGP. Os dados sobre cada sessão incluem os dois campos a seguir:

  • md5AuthEnabled: um campo booleano que indica se a autenticação MD5 está ativada para a sessão.
  • statusReason: um campo que descreve o status da sessão. Este campo é exibido apenas quando há um problema com a autenticação MD5. (Nesse caso, o valor do campo será MD5_AUTH_INTERNAL_PROBLEM.)

Remover a autenticação de uma sessão

Se você quiser remover a autenticação MD5 de uma sessão, use um dos procedimentos a seguir.

gcloud

Para remover a autenticação MD5, use o 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

Substitua os seguintes valores:

  • ROUTER_NAME: o nome do Cloud Router
  • PEER_NAME: o nome do app semelhante do BGP
  • REGION: a região do Google Cloud

API

Para remover a autenticação MD5, use o método compute.routers.patch.

Quando você remove a autenticação com a API, a atualização precisa fazer duas coisas:

  • Atualizar a matriz md5AuthenticationKeys
  • Remover o valor md5AuthenticationKey da entrada bgpPeers relevante.

Por exemplo, se o Cloud Router tiver dois peerings do BGP e você quiser remover a autenticação MD5 de um deles. Nesse caso, use uma solicitação como a seguinte:

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

Substitua os seguintes valores:

  • PROJECT_ID: o projeto que contém o Cloud Router
  • REGION: a região do Google Cloud em que o Cloud Router está localizado.
  • ROUTER_NAME: o nome do Cloud Router
  • NAME_OF_UPDATED_PEER: o nome da sessão de peering que você quer modificar.
  • INTERFACE_NAME_FOR_UPDATED_PEER: o nome da interface do app semelhante do BGP que você quer modificar
  • IP_ADDRESS_FOR_UPDATED_PEER: o endereço IP do Cloud Router usado pelo app semelhante que você quer modificar
  • PEER_IP_ADDRESS_FOR_UPDATED_PEER: o endereço IP do roteador de app semelhante para a sessão de peering que você quer modificar
  • PEER_ASN: o número do sistema autônomo (ASN, na sigla em inglês) do BGP para este app semelhante do BGP que você quer modificar.
  • NAME_OF_UNCHANGED_PEER: o nome da sessão de peering que você quer manter como está
  • INTERFACE_NAME_FOR_UNCHANGED_PEER: o nome da interface do app semelhante do BGP que você quer manter como está
  • IP_ADDRESS_FOR_UNCHANGED_PEER: o endereço IP do Cloud Router usado pelo app semelhante que você quer manter
  • PEER_IP_ADDRESS_FOR_UNCHANGED_PEER: o endereço IP do roteador de app semelhante para a sessão de peering que você quer manter
  • PEER_ASN_FOR_UNCHANGED_PEER: o número do sistema autônomo (ASN, na sigla em inglês) do BGP para o app semelhante do BGP que você quer manter como está.
  • KEY_FOR_UNCHANGED_PEER: o nome do sistema autônomo do BGP da chave de autenticação MD5 para o app semelhante do BGP que você quer manter como está

Remover uma sessão que usa autenticação

Às vezes, pode ser necessário remover uma sessão de peering que usa a autenticação MD5. Se você estiver trabalhando com a CLI gcloud, use o mesmo processo que você usaria para apps semelhantes não autenticados. No entanto, se você estiver trabalhando na API, o processo será um pouco diferente.

gcloud

Para remover a autenticação MD5, use o 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

Substitua os seguintes valores:

  • ROUTER_NAME: o nome do Cloud Router
  • PEER_NAME: o nome do app semelhante do BGP
  • REGION: a região do Google Cloud

API

Para remover a autenticação MD5, use o método compute.routers.patch.

Quando você remove a autenticação usando a API, a atualização precisa fazer duas coisas: remover a chave da matriz md5AuthenticationKeys e remover o bgpPeer.

Por exemplo, suponha que o Cloud Router tenha dois apps semelhantes e você queira remover um deles. Nesse caso, use uma solicitação como esta:

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

Substitua os seguintes valores:

  • PROJECT_ID: o projeto que contém o Cloud Router
  • REGION: a região do Google Cloud
  • ROUTER_NAME: o nome do Cloud Router
  • KEY_NAME_FOR_RETAINED_PEER: o nome da chave usada pelo app semelhante que você está mantendo
  • NAME_OF_RETAINED_PEER: o nome do app semelhante do BGP que você está mantendo
  • INTERFACE_FOR_RETAINED_PEER: o nome da interface do app semelhante do BGP que você está mantendo
  • IP_ADDRESS_FOR_RETAINED_PEER: o endereço IP do Cloud Router para o app semelhante que você está mantendo
  • PEER_IP_ADDRESS_FOR_RETAINED_PEER: o endereço IP do app semelhante que você está mantendo
  • PEER_ASN_FOR_RETAINED_PEER: o número do sistema autônomo (ASN, na sigla em inglês) do BGP para o app semelhante que você está mantendo

Por exemplo, suponha que você tenha criado os seguintes apps semelhantes:

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

Em seguida, se você quiser remover o segundo app semelhante, use uma solicitação como a seguinte:

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

A seguir