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

Nesta página, descrevemos como criar um gateway de VPN altamente disponível 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.

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. É necessário criar um recurso de gateway de VPN externo no Google Cloud para cada dispositivo ou serviço de gateway de peering.

Para ver os diagramas desta topologia, consulte a página Topologias.

Para mais informações sobre como escolher um tipo de VPN, consulte Como escolher um produto de conexão de rede.

Antes de configurar o Cloud VPN, consulte Práticas recomendadas para o Cloud VPN.

Requisitos

Requisitos e diretrizes gerais

  • Consulte as informações sobre como o roteamento dinâmico funciona no Google Cloud.
  • Verifique se o gateway da VPN de peering é compatível com o BGP.

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 que você configura para o recurso de gateway de VPN externo.

Os comandos gcloud inferem automaticamente os seguintes valores de REDUNDANCY_TYPE a partir do número de interfaces que você fornece no ID da interface quando configura um recurso de gateway de VPN externo:

  • 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.

Ao configurar um gateway externo da VPN de alta disponibilidade para a Amazon Web Services (AWS), a topologia compatível requer dois gateways privados virtuais da AWS, A e B, cada um 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:
    • Interface de VPN de alta disponibilidade 0 para interface da AWS 0
    • Interface de VPN de alta disponibilidade 0 para interface da AWS 1
    • Interface de VPN de alta disponibilidade 1 para interface da AWS 2
    • Interface de VPN de alta disponibilidade 1 para interface da AWS 3

Visão geral das etapas de configuração de alto nível da VPN de alta disponibilidade com a Amazon Web Services (AWS):

  1. Crie o gateway de VPN de alta disponibilidade e um Cloud Router. Isso cria dois endereços IP externos no lado do GCP.
  2. Crie dois gateways privados virtuais da AWS. Isso cria quatro endereços externos no lado da AWS.
  3. Crie duas conexões de VPN site a site da AWS e gateways do cliente, um para cada gateway privado virtual da AWS. Especifique um intervalo de IPs de túnel link-local não sobreposto para cada túnel, quatro no total. Por exemplo, 169.254.1.4/30.
  4. Faça o download dos arquivos de configuração da AWS em relação ao tipo de dispositivo genérico.
  5. Crie quatro túneis de VPN no gateway da VPN de alta disponibilidade.
  6. 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, é possível criar um novo Cloud Router ou usar um Cloud Router já em utilização com túneis atuais do Cloud VPN ou anexos de interconexão (VLANs, na sigla em inglês). 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

A configuração dos seguintes itens no Google Cloud facilita a configuração do Cloud VPN:

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página do seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o seu projeto.

  4. Instale e inicialize o SDK do Cloud..
  1. Se você estiver usando comandos gcloud, defina o ID do projeto com o comando a seguir. As instruções do 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 ver um ID do projeto que já foi definido:
    gcloud config list --format='text(core.project)'
  

Como criar rede e sub-rede de nuvem privada virtual personalizadas

Antes de criar um gateway de VPN de alta disponibilidade e o par de túneis, você precisa criar uma rede de nuvem privada virtual e pelo menos uma sub-rede na região onde o gateway de VPN de alta disponibilidade residirá.

Os exemplos neste documento também usam o modo de roteamento dinâmico global da VPC para que todas as instâncias do Cloud Router apliquem as rotas to on-premises aprendidas a todas as sub-redes da rede VPC. No modo de roteamento global, as rotas para todas as sub-redes na rede VPC são compartilhadas com os roteadores locais.

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

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

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.

Criar um gateway do Cloud VPN

  1. Acesse a página VPN no Console do Google Cloud.
    Acesse a página VPN
    1. Se você estiver criando um gateway pela primeira vez, selecione o botão Criar conexão VPN.
    2. Selecione o assistente de configuração de VPN.
  2. Selecione o botão de opção para um gateway de VPN de alta disponibilidade.
  3. Clique em Continuar.
  4. Especifique um nome de gateway de VPN.
  5. Em rede VPC, selecione uma rede existente ou a rede padrão.
  6. Selecione uma Região.
  7. Clique em Criar e continuar.
  8. 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.

Criar um recurso de gateway de VPN de peering

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

  1. Na tela Criar uma VPN, em Gateway de VPN de peering, selecione On-prem or Non-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 peering. Para criar um novo gateway de peering, conclua as seguintes etapas:
    1. Especifique um Nome para o gateway de VPN de peering.
    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. Consulte a página Topologias para exemplos de cada tipo.
    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.

Criar túneis de VPN

  • Se você configurou o recurso de gateway de VPN de peering com uma interface, configure seu único túnel na caixa de diálogo do único túnel da VPN na tela Criar VPN. Você precisa criar um segundo túnel para um SLA de 99,99%.
  • Se você configurou o recurso de gateway de VPN de peering com duas ou quatro interfaces, deverá configurar as caixas de diálogo associadas que aparecem na parte inferior da tela Criar VPN.
  1. 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 de interconexão associado a uma interconexão por parceiro.
    1. Para criar um novo Cloud Router, especifique um Nome, uma Descrição e um ASN do Google opcionais 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. Clique em Criar para criar o novo roteador.
  2. 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.
  3. 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 do IKE. O IKE v2, a configuração padrão, é recomendado se o roteador de peering for compatível.
    4. Especifique uma chave IKE pré-compartilhada usando a senha secreta, que precisa corresponder à senha secreta do túnel do parceiro que você criar no gateway de peering. Se você não tiver configurado uma senha secreta no gateway de VPN de peering e quiser gerar uma, clique no botão 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. Repita as etapas de criação do túnel para todas as caixas de diálogo do túnel restantes na tela Criar VPN.
  4. Quando você tiver configurado todos os túneis, clique em Criar e continuar.

Criar sessões do BGP

  1. Se você não quiser configurar sessões do BGP agora, clique no botão Configurar sessões do BGP posteriormente, que abre a tela Resumo e lembrete.
  2. Se você quiser configurar as sessões do BGP agora, clique no botão Configurar do primeiro túnel de VPN.
  3. Na tela Criar sessão do BGP, realize 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 no menu suspenso 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, usando um endereço IP do BGP do Cloud Router e um endereço IP do peering do BGP para cada túnel.
  5. Depois de configurar todas as sessões do BGP, clique em Salvar configuração do BGP.

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.
  2. 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).
  3. 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.
  4. Clique em Ok depois de analisar as informações nesta tela.

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

Siga as etapas desta seção para configurar um segundo túnel na segunda interface de um gateway de VPN de alta disponibilidade. Faça isso nas seguintes circunstâncias:

  • Quando você tiver configurado um gateway de VPN de alta disponibilidade para um gateway de VPN de peering com 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.

    1. Acesse a página VPN no Console do Google Cloud.
      Acesse a página VPN
    2. Clique no botão Criar túnel de VPN.
    3. No menu suspenso, selecione o gateway que requer o segundo túnel.
    4. Clique em Continuar.
    5. Escolha um Cloud Router. Se você não tiver configurado um Cloud Router, siga as etapas para criar um no procedimento Criar túneis de VPN.
    6. Para o gateway de VPN de peering, selecione No local ou não é do Google Cloud.
    7. Para o nome do gateway de VPN de peering, escolha o recurso do gateway de VPN de peering que o novo túnel usará. É possível verificar os nomes de gateways de VPN de peering existentes para esse gateway do Cloud VPN clicando no link Visualizar todos os túneis existentes no nome do gateway de VPN próximo ao topo da tela.
    8. Talvez você receba um aviso de que um túnel com a mesma interface de gateway de VPN de peering já está associado à mesma interface de gateway local do Cloud VPN. Para corrigir esse problema, na interface do gateway do Cloud VPN associada, selecione a outra interface de VPN de alta disponibilidade.
    9. Configure o restante das etapas conforme listado no procedimento Criar túneis de VPN para concluir a configuração do túnel.

gcloud


Criar o gateway de VPN de alta disponibilidade

Conclua a seguinte sequência de comando para criar o gateway de VPN de alta disponibilidade:

  1. Crie um gateway de VPN de alta disponibilidade. Quando o gateway é criado, dois endereços IP externos são alocados automaticamente, um para cada interface de gateway.

    Nos comandos a seguir, substitua as seguintes opções:

    • Substitua NETWORK pelo nome da sua rede do Google Cloud.
    • Substitua REGION pela região do Google Cloud em que você precisa criar o gateway e o túnel.
    • Substitua GW_NAME pelo nome do gateway.
      gcloud compute vpn-gateways create GW_NAME \
        --network NETWORK \
        --region REGION
    

    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
    

Criar Cloud Router

  1. Conclua a sequência de comandos a seguir para criar um Cloud Router. Nos comandos a seguir, substitua as seguintes opções:

    • Substitua ROUTER_NAME pelo nome do Cloud Router na mesma região do gateway do Cloud VPN.
    • Substitua GOOGLE_ASN por qualquer ASN privado (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.
      gcloud compute routers create ROUTER_NAME \
        --region REGION \
        --network NETWORK \
        --asn GOOGLE_ASN
    

    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
    

Criar um recurso de gateway de VPN externo

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 um recurso de gateway de VPN externo 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

  1. 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. No comando gcloud a seguir, substitua as seguintes opções:

    • Substitua PEER_GW_NAME por um nome que represente o gateway de peering.
    • Substitua PEER_GW_IP_0 pelos endereços IP externos de um gateway de peering.
    • Substitua PEER_GW_IP_1 pelo endereço IP externo de outro gateway de peering.
      gcloud compute external-vpn-gateways create PEER_GW_NAME \
        --interfaces 0=PEER_GW_IP_0,1=PEER_GW_IP_1 \
    

    O recurso de gateway de VPN externo criado será semelhante ao exemplo a seguir, em que PEER_GW_IP_0 e PEER_GW_IP_1 mostram os endereços externos reais das interfaces de gateway de peering:

      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

  1. Para esse tipo de gateway de peering, crie um único gateway de VPN externo com duas interfaces. No comando gcloud a seguir, substitua as seguintes opções:

    • Substitua PEER_GW_NAME por um nome que represente o gateway de peering.
    • Substitua PEER_GW_IP_0 pelo endereço IP externo de uma interface do gateway de peering.
    • Substitua PEER_GW_IP_1 pelo endereço IP externo de outra interface do gateway de peering.

      gcloud compute external-vpn-gateways create PEER_GW_NAME \
       --interfaces 0=ON_PREM_GW_IP_0,1=ON_PREM_GW_IP_1 \
      

      O recurso de gateway de VPN externo criado será semelhante ao exemplo a seguir, em que PEER_GW_IP_0 e PEER_GW_IP_1 mostram os endereços externos reais das interfaces de gateway de peering:

      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

  1. Para esse tipo de gateway de peering, crie um gateway de VPN externo com uma interface. No comando gcloud a seguir, substitua as seguintes opções:

    • Substitua PEER_GW_NAME por um nome que represente o gateway de peering.
    • Substitua PEER_GW_IP_0 pelo endereço IP externo da interface do gateway de peering.
      gcloud compute external-vpn-gateways create PEER_GW_NAME \
        --interfaces 0=PEER_GW_IP_0 \
    

    O recurso de gateway de VPN externo criado será semelhante ao exemplo a seguir, em que PEER_GW_IP_0 mostra os endereços externos reais da interface de gateway de peering:

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

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 externo, 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

  1. Nesse caso, um túnel de VPN precisa se conectar à interface 0 do gateway de VPN externo, e o outro túnel de VPN precisa se conectar à interface 1 do gateway de VPN externo.

    Nos comandos a seguir para criar cada túnel, substitua as seguintes opções:

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

        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
      


      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

  1. Nesse caso, os dois túneis de VPN precisam se conectar à interface 0 do gateway de VPN externo.

    Nos comandos a seguir para criar cada túnel, substitua as seguintes opções:

    • Substitua TUNNEL_NAME_IF0 e TUNNEL_NAME_IF1 por um nome do túnel. Nomear os túneis incluindo o nome da interface de gateway pode ajudar a identificar os túneis posteriormente.
    • Substitua PEER_GW_NAME pelo nome do gateway de peering externo criado anteriormente.
    • Substitua PEER_EXT_GW_IF0 pelo 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. O valor dela precisa ser igual a --region. Se não for especificada, esta opção será definida automaticamente. Esta opção substitui o valor padrão da propriedade compute/region para esta invocação de comando.
    • Substitua IKE_VERS por 1 para IKEv1 ou 2 para IKEv2. Se possível, use IKEv2 para a versão IKE. Se seu gateway de peering exigir a IKEv1, substitua --ike-version 2 por --ike-version 1.
    • Substitua SHARED_SECRET pela senha secreta, que precisa corresponder à senha secreta do túnel parceiro criado no gateway de peering. Consulte Como gerar uma chave pré-compartilhada forte para recomendações.
    • Substitua INT_NUM_0 pelo número 0 da primeira interface no gateway da VPN de alta disponibilidade criado anteriormente.
    • Substitua INT_NUM_1 pelo número 1 da segunda interface no gateway da VPN de alta disponibilidade criado anteriormente.
      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
    


    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
    

Crie interfaces do Cloud Router e peerings do BGP

  1. Crie uma interface BGP do Cloud Router e um peering do BGP para cada túnel que você configurou anteriormente nas interfaces de gateway de VPN de alta disponibilidade.
    Nos comandos a seguir, substitua as seguintes opções:

    • Substitua ROUTER_INTERFACE_NAME_0 e ROUTER_INTERFACE_NAME_1 por um nome para a interface BGP do Cloud Router. Pode ser útil usar nomes relacionados aos nomes de túnel configurados anteriormente.
    • Se você usar o método de configuração manual, substitua IP_ADDRESS_0 e IP_ADDRESS_1 pelo endereço IP do BGP para a interface de gateway de VPN de alta disponibilidade que você configurou. Cada túnel usa uma interface de gateway diferente.
    • Use um MASK_LENGTH de 30.
    • Substitua TUNNEL_NAME_0 e TUNNEL_NAME_1 pelo 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ática

    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 peering do BGP à interface para o primeiro túnel. Substitua PEER_NAME por um nome para a interface da VPN de peering e 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 peering do BGP à interface para o segundo túnel. Substitua PEER_NAME por um nome para a interface da VPN de peering e 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_1 \
          --region REGION \
      

    Manual

    Para atribuir manualmente os endereços IP do BGP associados à interface e ao peering do BGP do Google Cloud, siga as seguintes etapas:

    1. 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. Também é necessário configurar seu dispositivo de VPN de peering para usar o endereço IP do BGP do peering. Use as seguintes opções nos comandos abaixo:

      • GOOGLE_BGP_IP_0 representa o IP do BGP da interface do Cloud Router para o túnel na interface 0 de gateway do Cloud VPN. ON_PREM_BGP_IP_0 representa o IP do BGP do peering.
      • GOOGLE_BGP_IP_1 representa o IP do BGP da interface do Cloud Router para o túnel na interface 1 de gateway do Cloud VPN. ON_PREM_BGP_IP_1 representa o IP do BGP do peering.

    Para o primeiro túnel de VPN

    1. Adicione uma interface do BGP ao Cloud Router. Substitua ROUTER_INTERFACE_NAME_0 para fornecer 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 peering BGP à interface. Substitua PEER_NAME por um nome para o peering e [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 \
          --peer-ip-address ON_PREM_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. Adicione uma interface do BGP ao Cloud Router. Especifique um nome para a interface substituindo ROUTER_INTERFACE_NAME_1.

      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 peering BGP à interface. Substitua PEER_NAME por um nome para o peering e 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_1 \
          --peer-ip-address ON_PREM_BGP_IP_1 \
          --region REGION \
      

Verifique a configuração do Cloud Router

  1. 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. O endereço IP de peering é o endereço IP do BGP que você precisa usar 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) é semelhante ao exemplo a seguir, em que:

    • GOOGLE_BGP_IP_0 representa o IP do BGP da interface do Cloud Router para o túnel na interface 0 de gateway o Cloud VPN e ON_PREM_BGP_IP_0 representa o IP do BGP do peering.
    • GOOGLE_BGP_IP_1 representa o IP do BGP da interface do Cloud Router para o túnel na interface 1 de gateway do Cloud VPN e ON_PREM_BGP_IP_1 representa o IP do BGP do peering.
    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 [ON_PREM_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 [ON_PREM_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
    
  2. Para concluir a configuração do gateway, prossiga para Como concluir a configuração.

API

Para criar a configuração completa de um gateway de VPN de alta disponibilidade, use os seguintes comandos da API.

ETAPA UM: para criar um gateway de VPN de alta disponibilidade, faça uma solicitação POST com 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"
 }

ETAPA DOIS: para criar o Cloud Router, faça uma solicitação POST com 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"
 }

É possível usar um Cloud Router existente, desde que o roteador ainda não gerencie uma sessão do BGP para um anexo de interconexão associado a uma interconexão por parceiro. Caso contrário, crie outro Cloud Router.

ETAPA TRÊS: para criar um recurso de gateway de VPN externo, faça uma solicitação POST com o método externalVpnGateways.insert.

  • Para um gateway de VPN externo (peering) que tenha uma interface, use o exemplo abaixo, mas especifique apenas um ID 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 externos com quatro interfaces de VPN externas; por exemplo, Amazon Web Services (AWS), use o exemplo abaixo, mas especifique quatro instâncias do ID da interface e ipAddress e use um 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"
 }

ETAPA QUATRO: para criar dois túneis de VPN, um para cada interface no gateway de VPN de alta disponibilidade, faça uma solicitação POST com o método vpnTunnels.insert.

Digite o seguinte comando para criar o primeiro túnel:

 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/external-vpn-gateways/my-peer-gateway",
   "peerExternalGatewayInterface": 0,
   "peerIp": "192.0.2.1",
   "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/vpn-gateways/ha-vpn-gw-a",
   "vpnGatewayInterface": 0
 }

Para criar o segundo túnel, repita este comando, mas altere os seguintes parâmetros:

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

ETAPA CINCO: para criar uma interface do BGP do Cloud Router, faça uma solicitação PATCH ou UPDATE com o método routers.patch ou o routers.update. PATCH atualiza somente os parâmetros que você inclui. 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"
      }
    ]
 }

ETAPA SEIS: para adicionar um peering de BGP no Cloud Router para um túnel de VPN, faça uma solicitação POST com 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"
    }
  ]
 }

ETAPA SETE: verifique a configuração do Cloud Router com o método routers.getRouterStatus, usando um corpo de solicitação vazio:

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

Como concluir a configuração

É necessário seguir estas etapas para usar um novo gateway do Cloud VPN e os túneis de VPN associados:

  1. Configure o gateway de VPN de peering e configure o túnel ou os túneis correspondentes. Consulte estas páginas:
  2. Configure regras de firewall no Google Cloud e em sua rede de peering conforme o necessário. Consulte a página de regras de firewall para sugestões.
  3. Verifique o status dos túneis de VPN.
Como aplicar uma política da organização de VPN

Como aplicar uma restrição de política da organização que restringe os endereços IP dos gateways de 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ções desses endereços IP em peering, que entra em vigor para os túneis do Cloud VPN criados após a aplicação da restrição. Para mais detalhes, consulte a visão geral do Cloud VPN.

Permissões exigidas

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 (orgpolicy.policyAdmin) para sua organização.

Como definir restrições

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.

Como restringir a conectividade de endereços IP de peering específicos por meio de um túnel do Cloud VPN

Para permitir apenas endereços IP de peering específicos, execute as seguintes etapas:

  1. Encontre o ID da organização digitando 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. Forneça uma política como um arquivo JSON, como no exemplo a seguir:

         {
           "constraint": "constraints/compute.restrictVpnPeersIPs",
           "listPolicy": {
             "allowedValues": [
               "100.1.1.1",
             ],
           }
         }
       
  3. Use o comando set-policy do gcloud Resource Manager para definir a política da organização, passando o arquivo JSON e usando o ORGANIZATION_ID que você encontrou na etapa anterior.

Como restringir a conectividade de qualquer IP de peering por meio de um túnel do Cloud VPN

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.