Como criar um gateway de VPN de alta disponibilidade para um gateway de VPN de peering

Nesta página, veja como criar um gateway de VPN de alta disponibilidade que se conecta a um gateway de VPN de peering.

Os gateways de VPN de alta disponibilidade usam a API de VPN de alta disponibilidade e oferecem um SLA de 99,99%. Essa configuração usa um par de túneis, com um túnel em cada interface de gateway de VPN de alta disponibilidade. Para receber um SLA de 99,99%, configure os túneis de VPN nas duas interfaces de gateway da VPN de alta disponibilidade.

Há dois componentes de gateway para configurar para a VPN de alta disponibilidade:

  • Um gateway de VPN de alta disponibilidade no Google Cloud.
  • Seu gateway ou gateways de VPN de peering: um ou mais dispositivos de gateway de VPN física ou aplicativos de software na rede de peering com que o gateway de VPN de alta disponibilidade se conecta. O gateway de peering pode ser um gateway de VPN local ou hospedado por outro provedor de nuvem.

    Crie um recurso de gateway de VPN externa no Google Cloud para cada dispositivo ou serviço de gateway de par. Todos os cenários de gateway de peering são representados no Google Cloud por um único recurso de VPN de peering externo.

Para mais informações sobre o Cloud VPN, consulte os seguintes recursos:

Requisitos

Tipos de redundância

A API de VPN de alta disponibilidade contém uma opção para REDUNDANCY_TYPE, que representa o número de interfaces configuradas para o recurso de gateway de VPN externa.

Quando você configura um recurso de gateway de VPN externa, os comandos gcloud inferem automaticamente os seguintes valores de REDUNDANCY_TYPE a partir do número de interfaces fornecidas no ID da interface:

  • Uma interface de VPN externa é SINGLE_IP_INTERNALLY_REDUNDANT
  • Duas interfaces VPN externas são TWO_IPS_REDUNDANCY
  • Quatro interfaces VPN externas são FOUR_IPS_REDUNDANCY

Ao configurar gateways de VPN externos, você precisa usar os seguintes números de identificação de interface para o número indicado de interfaces de VPN externas:

  • Para uma interface de VPN externa, use um valor de 0.
  • Para duas interfaces de VPN externas, use os valores 0 e 1.
  • Para quatro interfaces VPN externas, use os valores 0, 1, 2 e 3.

Como criar uma VPN de alta disponibilidade para gateways de peering da AWS

Ao configurar um gateway de VPN de alta disponibilidade externo para a Amazon Web Services (AWS), use um gateway de transporte público ou um gateway particular virtual. Somente o gateway de transporte público é compatível com o roteamento de vários caminhos de custo igual (ECMP, na sigla em inglês). Quando ativado, o ECMP distribui igualmente o tráfego em túneis ativos. A topologia aceita requer duas conexões VPN site a site da AWS, A e B, cada uma com dois endereços IP externos. Essa topologia gera um total de quatro endereços IP externos na AWS: A1, A2, B1 e B2.

  1. Configure os quatro endereços IP da AWS com um único gateway de VPN de alta disponibilidade externo com FOUR_IPS_REDUNDANCY, em que:
    • IP da AWS 0=A1
    • IP da AWS 1=A2
    • IP da AWS 2=B1
    • IP da AWS 3=B2
  2. Crie quatro túneis no gateway de VPN de alta disponibilidade para atender ao SLA de 99,99% usando a seguinte configuração:
    • VPN de alta disponibilidade interface 0 para a AWS interface 0
    • VPN de alta disponibilidade interface 0 para a AWS interface 1
    • VPN de alta disponibilidade interface 1 para a AWS interface 2
    • VPN de alta disponibilidade interface 1 para a AWS interface 3

Configure a VPN de alta disponibilidade com a AWS:

  1. No Google Cloud, crie um gateway de VPN de alta disponibilidade e um Cloud Router na região que você quer. Isso cria dois endereços IP externos, um para cada interface de gateway. Registre os endereços IP externos para uso na próxima etapa.
  2. Na AWS, crie dois gateways de cliente usando o seguinte:
    • A opção de roteamento Dinâmico
    • O ASN do Google do Cloud Router
    • Os endereços IP externos do gateway da VPN de alta disponibilidade do Google Cloud interfaces 0 e 1
  3. Conclua as etapas que correspondem à opção da VPN da AWS que você está usando:
    • Gateway de transporte público
      1. Crie um anexo de VPN de gateway de trânsito para o primeiro gateway de cliente (interface 0) e use a opção de roteamento Dinâmico.
      2. Repita a etapa anterior para o segundo gateway de cliente (interface 1).
    • Gateway particular virtual
      1. Crie uma conexão VPN entre sites para o primeiro gateway de cliente (interface 0) usando o seguinte:
        • Um Tipo de gateway de destino de Gateway particular virtual
        • A opção de roteamento Dinâmico
      2. Repita a etapa anterior para o segundo gateway de cliente (interface 1).
  4. Faça o download dos arquivos de configuração da AWS para as duas conexões que você criou. Os arquivos contêm informações necessárias para as próximas etapas deste procedimento, incluindo chaves de autenticação pré-compartilhadas, endereços IP de túnel externos e endereços IP de túnel.
  5. No Google Cloud, faça o seguinte:
    1. Crie um novo gateway de VPN de peering com quatro interfaces usando os endereços IP externos da AWS dos arquivos que você baixou na etapa anterior.
    2. Crie quatro túneis de VPN no gateway da VPN de alta disponibilidade que você criou na etapa 1. Para cada túnel, configure a interface do gateway da VPN de alta disponibilidade com a interface de gateway de VPN de peering as chaves pré-compartilhadas apropriadas usando as informações nos arquivos de configuração da AWS baixados.
    3. Configure sessões do BGP no Cloud Router usando os endereços IP do BGP dos arquivos de configuração da AWS baixados.

Como criar Cloud Routers

Ao configurar um novo gateway de VPN de alta disponibilidade, você pode criar um novo Cloud Router ou usar um Cloud Router com túneis ou anexos de VLAN existentes do Cloud VPN. No entanto, o Cloud Router que você usa não precisa gerenciar uma sessão do BGP para um anexo de interconexão (VLAN) associado a uma conexão de Interconexão por parceiro devido aos requisitos específicos do ASN.

Antes de começar

Revise informações sobre como o roteamento dinâmico funciona no Google Cloud.

Verifique se o gateway de VPN de peering é compatível com o protocolo de gateway de borda (BGP, na sigla em inglês).

Configure os seguintes itens no Google Cloud para facilitar a configuração do Cloud VPN:

  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 confirmar se o faturamento está ativado para o projeto.

  4. Instale e inicialize o SDK do Cloud..
  1. Se você estiver usando a ferramenta de linha de comando gcloud, defina o ID do projeto com o comando a seguir. As instruções gcloud nesta página presumem que você tenha definido o ID do projeto antes de emitir comandos.

        gcloud config set project PROJECT_ID
        
  1. É possível também visualizar um ID do projeto que já foi definido executando o seguinte comando:

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

Como criar uma rede e uma sub-rede VPC personalizadas

Antes de criar um par de túnel e gateway de VPN de alta disponibilidade, crie uma rede de nuvem privada virtual (VPC) e pelo menos uma sub-rede na região onde o gateway de VPN de alta disponibilidade reside:

Os exemplos neste documento também usam modo de roteamento dinâmico global da VPC, que se comporta da seguinte maneira:

  • Todas as instâncias do Cloud Router aplicam as rotas to on-premises que aprendem a todas as sub-redes da rede VPC.
  • Rotas para todas as sub-redes na rede VPC são compartilhadas com roteadores locais.

Como criar um gateway de VPN de alta disponibilidade e um par de túneis para uma VPN de par

Siga as instruções nesta seção para criar um gateway de VPN de alta disponibilidade, um recurso de gateway de VPN de peering, um par de túneis e sessões do BGP.

Crie um gateway de VPN de alta disponibilidade.

Console

O assistente de configuração de VPN inclui todas as etapas de configuração necessárias para criar um gateway de VPN de alta disponibilidade, túneis, um recurso de gateway de VPN de peering e sessões do BGP.

Para criar um gateway de VPN de alta disponibilidade, siga estas etapas:

  1. No Console do Google Cloud, acesse a página VPN.

    Acessar a VPN

  2. Se você estiver criando um gateway pela primeira vez, clique em Criar conexão VPN.

  3. Selecione o assistente de configuração de VPN.

  4. Se você tiver um gateway de VPN de alta disponibilidade existente, selecione o botão de opção para esse gateway.

  5. Clique em Continuar.

  6. Especifique um nome de gateway de VPN.

  7. Em rede VPC, selecione uma rede existente ou a rede padrão.

  8. Selecione uma Região.

  9. Clique em Criar e continuar.

  10. A tela do console é atualizada e exibe as informações de gateway. Dois endereços IP externos são alocados automaticamente para cada uma das suas interfaces de gateway. Para etapas futuras de configuração, anote os detalhes da configuração do gateway.

gcloud

Para criar um gateway de VPN de alta disponibilidade, execute o comando a seguir. Quando o gateway é criado, dois endereços IP externos são alocados automaticamente, um para cada interface de gateway.

gcloud compute vpn-gateways create GW_NAME \
    --network=NETWORK \
    --region=REGION

Substitua:

  • GW_NAME: o nome do gateway.
  • NETWORK: o nome da sua rede do Google Cloud.
  • REGION: a região do Google Cloud em que você cria o gateway e o túnel

O gateway criado precisa ser semelhante ao exemplo de saída a seguir. Um endereço IP externo foi atribuído automaticamente a cada interface de gateway:

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a].
NAME          INTERFACE0     INTERFACE1     NETWORK     REGION
ha-vpn-gw-a   203.0.113.16   203.0.113.23   network-a   us-central1

API

Para criar a configuração completa de um gateway de VPN de alta disponibilidade, use os comandos de API nas seções a seguir. Todos os valores de campo usados nestas seções são valores de exemplo.

Para criar um gateway de VPN de alta disponibilidade, faça uma solicitação POST usando o método vpnGateways.insert:

   POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways
   {
     "name": "ha-vpn-gw-a",
     "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a"
   }

Criar um recurso de gateway de VPN de peering

Console

O recurso de gateway de VPN de peering representa o gateway que não é do Google Cloud no Google Cloud.

Para criar um recurso de gateway de VPN de par, siga estas etapas:

  1. Na página Criar uma VPN, em Gateway de VPN de peering, selecione No local ou não Google Cloud.
  2. Em nome de gateway de VPN de peering, escolha um gateway de peering ou clique em Criar um novo gateway de VPN de peering.

    Se você escolher um gateway existente, o Console do Cloud selecionará o número de túneis a serem configurados com base no número de interfaces de peering que você configurou no gateway de par.

    Para criar um novo gateway de peering, conclua as seguintes etapas:

    1. Especifique um Nome para o gateway de VPN de par.
    2. Em Interfaces de gateway de VPN de peering, selecione one, two ou four interfaces, dependendo do tipo de interface do seu gateway de peering. Para exemplos de cada tipo, consulte a página Topologias.
    3. No campo de cada interface VPN de peering, especifique o endereço IP externo usado para essa interface. Para mais informações, consulte Como configurar o gateway de VPN de peering.
    4. Clique em Criar.

gcloud

Crie um recurso de gateway de VPN externo que forneça informações ao Google Cloud sobre seu gateway ou gateways de VPN de peering. Dependendo das recomendações de alta disponibilidade para seu gateway de VPN de peering, é possível criar recursos de gateway de VPN externa para os seguintes tipos de gateways de VPN locais:

  • Dois dispositivos de gateway de VPN de peering separados em que os dois dispositivos são redundantes entre si e cada dispositivo tem seu próprio endereço IP externo.
  • Um único gateway de VPN de peering que usa duas interfaces separadas, cada uma com seu próprio endereço IP externo. Para esse tipo de gateway de peering, é possível criar um único gateway de VPN externo com duas interfaces.
  • Um único gateway de VPN de peering com um único endereço IP externo.

Opção 1: criar um recurso de gateway de VPN externo para dois dispositivos de gateway de VPN de peering separados

  • Para esse tipo de gateway de peering, cada interface de gateway de VPN externo tem um endereço IP externo, e cada endereço é de um dos dispositivos de gateway de VPN de peering.

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0,1=PEER_GW_IP_1
    

    Substitua:

    • PEER_GW_NAME: um nome que representa o gateway de peering.
    • PEER_GW_IP_0: o endereço IP externo de um gateway de peering.
    • PEER_GW_IP_1: o endereço IP externo de outro gateway de peering.

    O recurso de gateway de VPN externa criado precisa ser semelhante ao exemplo a seguir, em que PEER_GW_IP_0 e PEER_GW_IP_1 mostram os endereços IP externos reais das interfaces de gateway de par:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME      INTERFACE0    INTERFACE1
    peer-gw   PEER_GW_IP_0  PEER_GW_IP_1
    

Opção 2: criar um recurso de gateway de VPN externo para um gateway de VPN de peering com duas interfaces separadas

  • Para esse tipo de gateway de peering, crie um único gateway de VPN externo com duas interfaces.

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0,1=PEER_GW_IP_1
    

    Substitua:

    • PEER_GW_NAME: um nome que representa o gateway de peering.
    • PEER_GW_IP_0: o endereço IP externo de uma interface do gateway de peering
    • PEER_GW_IP_1: o endereço IP externo para outra interface do gateway de peering.

    O recurso de gateway de VPN externa criado precisa ser semelhante ao exemplo a seguir, em que PEER_GW_IP_0 e PEER_GW_IP_1 mostram os endereços IP externos reais das interfaces de gateway de par:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME     INTERFACE0    INTERFACE1
    peer-gw  PEER_GW_IP_0  PEER_GW_IP_1
    

Opção 3: criar um recurso de gateway de VPN externo para um único gateway de VPN de peering com um único endereço IP externo

  • Para esse tipo de gateway de peering, crie um gateway de VPN externo com uma interface.

    gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=PEER_GW_IP_0
    

    Substitua:

    • PEER_GW_NAME: um nome que representa o gateway de peering.
    • PEER_GW_IP_0: o endereço IP externo da interface do gateway de peering.

    O recurso de gateway de VPN externa criado precisa ser semelhante ao exemplo a seguir, em que PEER_GW_IP_0 mostra os endereços IP externos reais da interface de gateway de par:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/peer-gw].
    NAME       INTERFACE0
    peer-gw    PEER_GW_IP_0
    

API

Para criar um recurso de gateway de VPN externa, faça uma solicitação POST usando o método externalVpnGateways.insert.

  • Para um gateway de VPN externa (peering) que tenha uma interface, use o exemplo a seguir, mas especifique apenas um código de interface e um ipAddress, com redundancyType de SINGLE_IP_INTERNALLY_REDUNDANT.
  • Para um gateway de VPN externo com duas interfaces ou dois gateways de VPN externos com uma interface cada, use o exemplo TWO_IPS_REDUNDANCY abaixo.
  • Para um ou mais gateways de VPN externas com quatro interfaces VPN externas, por exemplo, Amazon Web Services (AWS), use o exemplo a seguir, mas especifique quatro instâncias do código da interface e ipAddress e use uma redundancyType de FOUR_IPS_REDUNDANCY.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways
     {
       "name": "my-peer-gateway",
       "interfaces": [
         {
           "id": 0,
           "ipAddress": "192.0.2.1"
         },
         {
           "id": 1,
           "ipAddress": "192.0.2.2"
         }
       ],
       "redundancyType": "TWO_IPS_REDUNDANCY"
     }
    

Criar um Cloud Router

Console

Em Cloud Router, se você ainda não tiver feito isso, crie um Cloud Router especificando as opções a seguir. É possível usar um Cloud Router existente se o roteador ainda não gerenciar uma sessão do BGP para um anexo da VLAN associado a uma conexão do Partner Interconnect.

  1. Para criar um novo Cloud Router, especifique o seguinte:

    • Um Nome
    • Uma Descrição opcional
    • Um ASN do Google para o novo roteador

    É possível usar qualquer ASN particular (64512 a 65534, 4200000000 a 4294967294) que não estiver usando em outro lugar da rede. O ASN do Google é usado para todas as sessões do BGP no mesmo Cloud Router e não é possível alterar o ASN posteriormente.

  2. Para criar o novo roteador, clique em Criar.

gcloud

Para criar um Cloud Router, execute o seguinte comando:

gcloud compute routers create ROUTER_NAME \
    --region=REGION \
    --network=NETWORK \
    --asn=GOOGLE_ASN

Substitua:

  • ROUTER_NAME: o nome do Cloud Router na mesma região do gateway do Cloud VPN.
  • REGION: a região do Google Cloud em que você cria o gateway e o túnel
  • NETWORK: o nome da sua rede do Google Cloud.
  • GOOGLE_ASN: qualquer ASN particular (64512 a 65534, 4200000000 a 4294967294) que você ainda não esteja usando na rede de peering. o ASN do Google é usado para todas as sessões do BGP no mesmo Cloud Router e não é possível alterá-lo depois.

O roteador criado precisa ser semelhante ao exemplo de saída a seguir:

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
NAME       REGION        NETWORK
router-a   us-central1   network-a

API

É possível usar um Cloud Router existente se o roteador ainda não gerenciar uma sessão do BGP para um anexo da VLAN associado a uma conexão do Partner Interconnect. Caso contrário, crie outro Cloud Router.

Para criar um Cloud Router, faça uma solicitação POST usando o método routers.insert:

 POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
 {
   "name": "router-a",
   "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a"
 }

Criar túneis VPN

Console

Se você configurou o recurso de gateway de VPN de peering com uma interface, na página Criar VPN, configure seu único túnel na caixa de diálogo de túnel de VPN única. Para um SLA de 99,99%, crie um segundo túnel.

Se você configurou o recurso de gateway de VPN do peering com duas ou quatro interfaces, configure as caixas de diálogo associadas que aparecem na parte inferior da página Criar VPN.

Para criar túneis de VPN, siga estas etapas:

  1. Se aplicável, em Interface do gateway de Cloud VPN associado, selecione a combinação da interface de VPN de alta disponibilidade e do endereço IP que quer associar à interface do gateway de VPN de peering para este túnel.
  2. Em Interface do gateway de VPN de peering associado, selecione a combinação de interface de gateway de VPN de peering e do endereço IP que você quer associar a este túnel e à interface de VPN de alta disponibilidade. Essa interface precisa corresponder à interface do roteador de peering real.
    1. Especifique um nome para o túnel.
    2. Especifique uma descrição opcional.
    3. Especifique a versão IKE. Recomendamos o IKE v2, a configuração padrão, se seu roteador de mesmo nível for compatível com ele.
    4. Especifique uma chave IKE pré-compartilhada usando sua chave pré-compartilhada (secreta compartilhada), que precisa corresponder à chave pré-compartilhada para o túnel de parceiro que você criar em gateway de par. Se você não tiver configurado uma chave pré-compartilhada no gateway de VPN de peering e quiser gerar uma, clique em Gerar e copiar. Grave a chave pré-compartilhada em um local seguro, porque ela não poderá ser recuperada depois que você criar os túneis de VPN.
    5. Clique em Concluído.
    6. Na página Criar VPN, repita as etapas de criação do túnel para todas as caixas de diálogo de túnel restantes.
  3. Quando você tiver configurado todos os túneis, clique em Criar e continuar.

gcloud

Crie dois túneis de VPN, um para cada interface no gateway de VPN de alta disponibilidade Ao criar túneis de VPN, especifique o lado de peering dos túneis de VPN como o gateway de VPN externo criado anteriormente. Dependendo do tipo de redundância do gateway de VPN externa, configure os túneis usando uma das duas opções a seguir.

Opção 1: se o gateway de VPN externo for dois dispositivos separados de gateway de VPN de peering ou um único dispositivo com dois endereços IP

  • Nesse caso, um túnel de VPN precisa se conectar a interface 0 do gateway da VPN externa, e o outro túnel de VPN precisa se conectar a interface 1 do gateway da VPN externa.

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0  \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_0
    
    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF1 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_1
    

    Substitua:

    • TUNNEL_NAME_IF0 e TUNNEL_NAME_IF1: um nome para o túnel; nomear os túneis incluindo o nome da interface de gateway pode ajudar a identificar os túneis posteriormente.
    • PEER_GW_NAME: um nome do gateway de peering externo criado anteriormente.
    • PEER_EXT_GW_IF0 e PEER_EXT_GW_IF1: o número da interface configurado anteriormente no gateway de peering externo.
    • IKE_VERS: 1 para IKEv1 ou 2 para IKEv2; Se possível, use IKEv2 para a versão IKE. Se o gateway de peering exigir o IKEv1, substitua --ike-version 2 por --ike-version 1.
    • SHARED_SECRET: sua chave pré-compartilhada (secreta compartilhada), que precisa corresponder à chave pré-compartilhada para o túnel do parceiro criado no gateway de par; para recomendações, consulte Como gerar uma chave pré-compartilhada forte
    • GW_NAME: o nome do gateway da VPN de alta disponibilidade
    • INT_NUM_0: o número 0 da primeira interface no gateway de VPN de alta disponibilidade que você criou anteriormente.
    • INT_NUM_1: o número 1 da segunda interface no gateway de VPN de alta disponibilidade que você criou anteriormente
    • Opcional: A --vpn-gateway-region é a região do gateway de VPN de alta disponibilidade para operar. Seu valor precisa ser igual a --region. Se não for especificada, esta opção será definida automaticamente. Ela modifica o valor padrão da propriedade compute/region para esta invocação de comando.

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0].
    NAME                       REGION        GATEWAY       VPN_INTERFACE   PEER_GATEWAY  PEER_INTERFACE
    tunnel-a-to-on-prem-if-0   us-central1   ha-vpn-gw-a   0               peer-gw       0
    
    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1].
    NAME                       REGION        GATEWAY       VPN_INTERFACE   PEER_GATEWAY  PEER_INTERFACE
    tunnel-a-to-on-prem-if-1   us-central1   ha-vpn-gw-a   1               peer-gw       1
    

Opção 2: se o gateway de VPN externo for um único gateway de VPN de peering com um único endereço IP externo

  • Nesse caso, os dois túneis de VPN precisam se conectar a interface 0 do gateway da VPN externa.

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0  \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_0
    
    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
       --peer-external-gateway=PEER_GW_NAME \
       --peer-external-gateway-interface=PEER_EXT_GW_IF0 \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=GW_NAME \
       --interface=INT_NUM_1
    

    Substitua:

    • TUNNEL_NAME_IF0 e TUNNEL_NAME_IF1: um nome para o túnel; nomear os túneis incluindo o nome da interface de gateway pode ajudar a identificar os túneis posteriormente.
    • PEER_GW_NAME: o nome do gateway de peer externo criado anteriormente.
    • PEER_EXT_GW_IF0: o número da interface configurado anteriormente no gateway de peering externo.
    • Opcional: A --vpn-gateway-region é a região do gateway de VPN de alta disponibilidade para operar. Seu valor precisa ser igual a --region. Se não for especificada, esta opção será definida automaticamente. Ela modifica o valor padrão da propriedade compute/region para esta invocação de comando.
    • IKE_VERS: 1 para IKEv1 ou 2 para IKEv2. Se possível, use IKEv2 para a versão IKE. Se o gateway de peering exigir o IKEv1, substitua --ike-version 2 por --ike-version 1.
    • SHARED_SECRET: sua chave pré-compartilhada (secreta compartilhada), que precisa corresponder à chave pré-compartilhada para o túnel do parceiro criado no gateway de par; para recomendações, consulte Como gerar uma chave pré-compartilhada forte
    • INT_NUM_0: o número 0 da primeira interface no gateway de VPN de alta disponibilidade que você criou anteriormente.
    • INT_NUM_1: o número 1 da segunda interface no gateway de VPN de alta disponibilidade que você criou anteriormente

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0].
    NAME                       REGION       GATEWAY        VPN_INTERFACE   PEER_GATEWAY   PEER_INTERFACE
    tunnel-a-to-on-prem-if-0   us-central1  ha-vpn-gw-a    0               peer-gw        0
    
    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1].
    NAME                       REGION       GATEWAY        VPN_INTERFACE   PEER_GATEWAY   PEER_INTERFACE
    tunnel-a-to-on-prem-if-1   us-central1  ha-vpn-gw-a    1               peer-gw        0
    

API

Para criar dois túneis de VPN, um para cada interface no gateway de VPN de alta disponibilidade, faça uma solicitação POST usando o método vpnTunnels.insert. Para um SLA de 99,99% de tempo de funcionamento, você precisa criar um túnel em cada interface do seu gateway de VPN de alta disponibilidade.

  1. Para criar o primeiro túnel, execute o seguinte comando:

       POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels
       {
         "name": "ha-vpn-gw-a-tunnel-0",
         "ikeVersion": 2,
         "peerExternalGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/externalVpnGateways/my-peer-gateway",
         "peerExternalGatewayInterface": 0,
         "router": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/router-a",
         "sharedSecret": "SHARED_SECRET",
         "vpnGateway": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/ha-vpn-gw-a",
         "vpnGatewayInterface": 0
       }
    
  2. Para criar o segundo túnel, repita este comando, mas altere os seguintes parâmetros:

    • name
    • peerExternalGatewayInterface
    • sharedSecret ou sharedSecretHash (se necessário)
    • vpnGatewayInterface: altere para o valor da outra interface de gateway de VPN de alta disponibilidade. Neste exemplo, altere esse valor para 1.

Criar sessões do BGP

Console

Para criar sessões do BGP, siga estas etapas:

  1. Se você não quer configurar sessões do BGP agora, clique em Configurar sessões do BGP posteriormente, que abre a página Resumo e lembrete.
  2. Se você quiser configurar as sessões do BGP agora, no primeiro túnel de VPN, clique em Configurar.
  3. Na página Criar sessão do BGP, conclua as seguintes etapas:
    1. Especifique um nome para a sessão do BGP.
    2. Especifique o ASN de peering configurado para o gateway de VPN de peering.
    3. Opcional: Especifique a Prioridade da rota anunciada.
    4. Especifique o endereço IP do BGP do Cloud Router e o endereço IP de peering do BGP. Certifique-se de que os endereços IP atendam aos seguintes requisitos:
      • Cada endereço IP do BGP precisa pertencer ao mesmo CIDR/30 que encaixa em 169.254.0.0/16.
      • Cada endereço IP do BGP que não pode ser o primeiro (rede) ou o último (transmissão) endereço no CIDR/30.
      • Cada intervalo de endereço IP do BGP para cada sessão do BGP precisa ser exclusivo entre todos os Cloud Routers em todas as regiões de uma rede VPC.
    5. Opcional: clique na lista Rotas anunciadas e crie rotas personalizadas.
    6. Clique em Salvar e continuar.
  4. Repita as etapas anteriores para o restante dos túneis configurados no gateway. Para cada túnel, use um endereço IP do BGP do Cloud Router e endereço IP do peering do BGP diferentes.
  5. Depois de configurar todas as sessões do BGP, clique em Salvar configuração do BGP.

gcloud

Para criar uma interface do BGP do Cloud Router e um par do BGP para cada túnel que você configurou anteriormente nas interfaces de gateway de VPN de alta disponibilidade, siga estas etapas.

Nos comandos, substitua o seguinte:

  • ROUTER_INTERFACE_NAME_0 e ROUTER_INTERFACE_NAME_1: um nome para a interface do BGP do Cloud Router; pode ser útil usar nomes relacionados aos nomes de túnel configurados anteriormente
  • Configuração manual: IP_ADDRESS_0 e IP_ADDRESS_1: o endereço IP do BGP para a interface de gateway da VPN de alta disponibilidade que você configurar. Cada túnel usa uma interface de gateway diferente.
  • MASK_LENGTH 30Cada sessão do BGP no mesmo Cloud Router precisa usar um CIDR /30 exclusivo do bloco169.254.0.0/16
  • TUNNEL_NAME_0 e TUNNEL_NAME_1: o túnel associado à interface de gateway de VPN de alta disponibilidade que você configurou

Escolha o método de configuração automática ou manual para configurar interfaces do BGP e peerings do BGP:

Automático

Para permitir que o Google Cloud escolha automaticamente os endereços IP do BGP de link local, siga as etapas abaixo.

Para o primeiro túnel de VPN

  1. Adicione uma interface do BGP ao Cloud Router.

    gcloud compute routers add-interface ROUTER_NAME \
       --interface-name=ROUTER_INTERFACE_NAME_0 \
       --mask-length=MASK_LENGTH \
       --vpn-tunnel=TUNNEL_NAME_0 \
       --region=REGION
    

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. Adicione um par do BGP à interface do primeiro túnel. Substitua PEER_NAME por um nome para a interface de VPN de peering e substitua PEER_ASN pelo ASN configurado para o gateway de VPN de peering:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=PEER_NAME \
       --peer-asn=PEER_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --region=REGION
    

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

Para o segundo túnel de VPN

  1. Adicione uma interface do BGP ao Cloud Router.

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --mask-length=MASK_LENGTH \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --region=REGION
    
  2. Adicione um par do BGP à interface do segundo túnel. Substitua PEER_NAME por um nome para a interface de VPN de peering e substitua PEER_ASN pelo ASN{101. }configurado para o gateway da VPN de peering:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --region=REGION
    

Manual

Para atribuir manualmente os endereços IP do BGP associados à interface e ao par do BGP do Google Cloud, conclua as etapas a seguir.

Para cada túnel de VPN, escolha um par de endereços IP do BGP de link local em um bloco /30 do intervalo 169.254.0.0/16 (quatro endereços no total). Os endereços IP do BGP especificados precisam ser exclusivos entre todos os Cloud Routers em todas as regiões de uma rede VPC.

Para cada túnel, atribua um desses endereços IP do BGP ao Cloud Router e o outro endereço IP do BGP ao gateway de VPN de peering. Configure seu dispositivo de VPN de peering para usar o endereço IP de peering do BGP.

Nos comandos a seguir, substitua:

  • GOOGLE_BGP_IP_0: o endereço IP do BGP da interface do Cloud Router para o túnel no gateway do Cloud VPN interface 0; PEER_BGP_IP_0 representa o endereço IP do BGP do seu par.
  • GOOGLE_BGP_IP_1: o endereço IP do BGP da interface do Cloud Router para o túnel no gateway do Cloud VPN interface 1; PEER_BGP_IP_1 representa o endereço IP do BGP do seu par.

Para o primeiro túnel de VPN

  1. Adicionar uma interface do BGP ao Cloud Router. Substitua ROUTER_INTERFACE_NAME_0 por um nome para a interface:

    gcloud compute routers add-interface ROUTER_NAME \
      --interface-name=ROUTER_INTERFACE_NAME_0 \
      --vpn-tunnel=TUNNEL_NAME_0 \
      --ip-address=GOOGLE_BGP_IP_0 \
      --mask-length 30 \
      --region=REGION
    

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Updated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a].
    
  2. Adicione um par do BGP à interface. Substitua PEER_NAME por um nome para o par e substitua PEER_ASN pelo ASN configurado para o gateway de VPN de par:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_0 \
     --peer-ip-address=PEER_BGP_IP_0 \
     --region=REGION
    

    A resposta ao comando precisa ser semelhante ao exemplo a seguir:

    Creating peer [bgp-peer-tunnel-a-to-on-prem-if-0] in router [router-a]...done.
    

Para o segundo túnel de VPN

  1. Adicionar uma interface do BGP ao Cloud Router. Substitua ROUTER_INTERFACE_NAME_1 por um nome para a interface:

    gcloud compute routers add-interface ROUTER_NAME \
     --interface-name=ROUTER_INTERFACE_NAME_1 \
     --vpn-tunnel=TUNNEL_NAME_1 \
     --ip-address=GOOGLE_BGP_IP_1 \
     --mask-length 30 \
     --region=REGION
    
  2. Adicione um par do BGP à interface. Substitua PEER_NAME por um nome para o par e substitua PEER_ASN pelo ASN configurado para o gateway de VPN de par:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --peer-asn=PEER_ASN \
     --interface=ROUTER_INTERFACE_NAME_1 \
     --peer-ip-address=PEER_BGP_IP_1 \
     --region=REGION
    

API

  1. Para criar uma interface do BGP do Cloud Router, faça uma solicitação PATCH ou UPDATE usando o método routers.patch ou o routers.update. PATCH atualiza apenas os parâmetros incluídos. UPDATE atualiza todos os parâmetros do Cloud Router.

    Crie uma interface do BGP para cada túnel de VPN no primeiro gateway de VPN de alta disponibilidade. Para a segunda interface do BGP, use um nome diferente name, linkedVpnTunnel e ipRange da mesma sub-rede /30 que o ipRange para o primeiro túnel. Cada intervalo de endereço IP do BGP para cada sessão do BGP precisa ser exclusivo entre todos os Cloud Routers em todas as regiões de uma rede VPC.

    Repita esta etapa e o comando para cada túnel de VPN no segundo gateway de VPN de alta disponibilidade.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/{resourceId}
    {
     "interfaces": [
       {
         "name": "if-tunnel-a-to-on-prem-if-0",
         "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
         "ipRange": "169.254.0.1/30"
        }
      ]
    }
    
  2. Para adicionar um par do BGP a um Cloud Router para um túnel de VPN, faça uma solicitação POST usando o método routers.insert. Repita esse comando para o outro túnel de VPN, alterando todas as opções, exceto name e peerAsn.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
    {
     "name": "router-a",
     "network": "network-a",
     "bgpPeers": [
     {
       "interfaceName": "if-tunnel-a-to-on-prem-if-0",
       "ipAddress": "169.254.0.1",
       "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
       "peerAsn": "65002",
       "peerIpAddress": "169.254.0.2",
       "advertiseMode": "DEFAULT"
      }
    ]
    }
    

Verificar a configuração

Console

Para verificar a configuração, acesse a página Resumo e lembrete:

  1. A seção Resumo desta tela contém informações sobre o gateway de VPN de alta disponibilidade e o perfil de gateway de VPN de peering. Para cada túnel de VPN, é possível visualizar o status do túnel de VPN, o nome da sessão do BGP, o status da sessão do BGP e o valor MED (prioridade da rota anunciada).
  2. A seção Lembrete desta tela contém as etapas que você precisa concluir para ter uma conexão VPN totalmente operacional entre o Cloud VPN e a VPN de peering. Depois de analisar as informações desta página, clique em OK.

gcloud

Para verificar a configuração do Cloud Router, siga estas etapas:

  • Liste os endereços IP do BGP escolhidos pelo Cloud Router. Caso você tenha adicionado uma nova interface a um Cloud Router atual, os endereços IP do BGP para a nova interface precisarão ser listados com o maior número de índice. Use o endereço IP do BGP peerIpAddress para configurar o gateway de VPN de peering:

    gcloud compute routers get-status ROUTER_NAME \
       --region=REGION \
       --format='flattened(result.bgpPeerStatus[].name,
         result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'
    

    A saída esperada para um Cloud Router que gerencia dois túneis do Cloud VPN (índice 0 e índice 1) será semelhante ao exemplo a seguir, em que:

    • GOOGLE_BGP_IP_0 representa o endereço IP do BGP da interface do Cloud Router para o túnel no gateway do Cloud VPN interface 0; PEER_BGP_IP_0 representa o endereço IP do BGP do seu par.
    • GOOGLE_BGP_IP_1 representa o endereço IP do BGP da interface do Cloud Router para o túnel no gateway do Cloud VPN interface 1; PEER_BGP_IP_1 representa o endereço IP do BGP do seu par.
      result.bgpPeerStatus[0].ipAddress:      169.254.0.1 GOOGLE_BGP_IP_0
      result.bgpPeerStatus[0].name:           bgp-peer-tunnel-a-to-on-prem-if-0
      result.bgpPeerStatus[0].peerIpAddress:  169.254.0.2 PEER_BGP_IP_0
      result.bgpPeerStatus[1].ipAddress:      169.254.1.1 GOOGLE_BGP_IP_1
      result.bgpPeerStatus[1].name:           bgp-peer-tunnel-a-to-on-prem-if-1
      result.bgpPeerStatus[1].peerIpAddress:  169.254.1.2 PEER_BGP_IP_1
    
  • É possível também usar o seguinte comando para uma lista completa da configuração do Cloud Router:

    gcloud compute routers describe ROUTER_NAME \
       --region=REGION
    

    A listagem completa precisa ter esta aparência:

    bgp:
      advertiseMode: DEFAULT
      asn: 65001
    bgpPeers:
    - interfaceName: if-tunnel-a-to-on-prem-if-0
      ipAddress: 169.254.0.1
      name: bgp-peer-tunnel-a-to-on-prem-if-0
      peerAsn: 65002
      peerIpAddress: 169.254.0.2
    - interfaceName: if-tunnel-a-to-on-prem-if-1
      ipAddress: 169.254.1.1
      name: bgp-peer-tunnel-a-to-on-prem-if-1
      peerAsn: 65004
      peerIpAddress: 169.254.1.2
    creationTimestamp: '2018-10-18T11:58:41.704-07:00'
    id: '4726715617198303502'
    interfaces:
    - ipRange: 169.254.0.1/30
      linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0
      name: if-tunnel-a-to-on-prem-if-0
    - ipRange: 169.254.1.1/30
      linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1
      name: if-tunnel-a-to-on-prem-if-1
      kind: compute#router
      name: router-a
      network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/network-a
      region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
      selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
    

API

Para verificar a configuração do Cloud Router, crie uma solicitação GET usando o método routers.getRouterStatus e use um corpo de solicitação vazio:

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

Crie outro túnel em um gateway de túnel único.

Console

Para receber um SLA com 99,99% de tempo de atividade, configure um túnel em cada interface de VPN de alta disponibilidade de um gateway de VPN de alta disponibilidade.

Configure um segundo túnel nas seguintes circunstâncias:

  • Se você configurou um gateway de VPN de alta disponibilidade para um gateway de VPN de peering que tem uma interface de VPN de peering única.
  • Se você configurou um único túnel anteriormente em uma VPN de alta disponibilidade para um gateway de VPN de peering que contém qualquer número de interfaces, mas agora quer um SLA com 99,99% de tempo de atividade para seu gateway de VPN de alta disponibilidade.

Para configurar um segundo túnel, siga as etapas descritas em Como adicionar um túnel de um gateway de VPN de alta disponibilidade a um gateway de VPN de peering.

Como definir a prioridade de rota divulgada básica (opcional)

As sessões do BGP que você cria permitem que cada Cloud Router divulgue rotas para redes de mesmo nível. Os divulgações usam prioridades de base inalteradas.

Use a configuração documentada em Como criar um gateway de VPN de alta disponibilidade e um par de túnel para uma VPN de peering em configurações de roteamento ativas/ativas, em que as prioridades de rota anunciadas{101. }dos dois túneis de VPN do Google Cloud e da correspondência do par. Para configurar as mesmas prioridades de rota divulgada do Google Cloud para os dois pares do BGP, omita a prioridade de rota anunciada no Google Cloud.

Para criar uma configuração ativa/passiva, configure prioridades de rota anunciadas desigual para os dois túneis de VPN de alta disponibilidade. Uma prioridade de rota precisa ser maior que a outra. Exemplo:

  • BGP session1/tunnel1, route priority = 10
  • BGP session1/tunnel1, route priority = 20

Para mais informações sobre a prioridade de rota divulgada básica, consulte Prefixos e prioridades anunciados.

Você também pode especificar quais rotas são anunciadas usando divulgações personalizadas:

  • Adicione as sinalizações --advertisement-mode=CUSTOM (gcloud) ou advertiseMode: custom (API).
  • Especifique intervalos de endereços IP com a sinalização --set-advertisement-ranges (gcloud) ou a sinalização advertisedIpRanges (API).

Como concluir a configuração

Antes de usar um novo gateway do Cloud VPN e os túneis de VPN associados, conclua as seguintes etapas:

  1. Configure o gateway de VPN de peering e configure o túnel ou os túneis correspondentes. Para ver instruções, consulte os links a seguir:
  2. Configure regras de firewallno Google Cloud e na rede de peering, conforme necessário.
  3. Verifique o status dos túneis de VPN. Observação: esta etapa inclui a verificação da configuração de alta disponibilidade do seu gateway de VPN de alta disponibilidade.

Como aplicar uma restrição da política da organização que restrinja endereços IP do gateway da VPN de peering

É possível criar uma restrição de política da organização do Google Cloud que defina um conjunto de endereços IP permitidos ou negados para fazer o peering de gateways de VPN por meio da VPN clássica ou de túneis de VPN de alta disponibilidade. Essa restrição contém uma lista de permissões ou uma lista de negação desses endereços IP de peering, que entra em vigor para os túneis do Cloud VPN que você criou depois de aplicar a restrição. Para detalhes, consulte Como restringir endereços IP de mesmo nível por meio de um túnel do Cloud VPN.

Para criar uma política da organização e associá-la a uma organização, pasta ou projeto, use os exemplos listados nas próximas seções e siga as etapas em Como usar restrições.

Permissões necessárias

Para definir uma restrição de IP de peering no nível da organização ou do projeto, primeiro você precisa receber o papel de Administrador de políticas da organização ()roles/orgpolicy.policyAdmin para sua organização.

Como restringir a conectividade a partir de endereços IP de peering específicos

Para permitir apenas endereços IP de peering específicos por meio de um túnel do Cloud VPN, execute as seguintes etapas:

  1. Encontre o código da sua organização executando o seguinte comando:
    gcloud organizations list

    A resposta ao comando terá a seguinte aparência:

          DISPLAY NAME             ID
          example-organization     29252605212
        
  2. Crie um arquivo JSON que defina sua política, como no exemplo a seguir:

         {
           "constraint": "constraints/compute.restrictVpnPeersIPs",
           "listPolicy": {
             "allowedValues": [
               "100.1.1.1",
             ],
           }
         }
       
  3. Para definir a política da organização, use o set-policy do Resource Manager gcloud, transmitindo o arquivo JSON e usando o ORGANIZATION_ID encontrado na etapa anterior.

Como restringir a conectividade de qualquer endereço IP de peering

Para proibir a criação de qualquer novo túnel do Cloud VPN, siga as etapas neste exemplo de restrição.

  1. Encontre o ID da organização ou o ID do nó na hierarquia de recursos em que você quer definir uma política.
  2. Crie um arquivo JSON como o exemplo a seguir.

        {
          "constraint": "constraints/compute.restrictVpnPeersIPs",
          "listPolicy": {
            "allValues": "DENY"
          }
        }
    
  3. Transmita o arquivo JSON inserindo o mesmo comando que você usaria para restringir endereços IP de peering específicos.

A seguir