Criar um gateway de VPN clássica com roteamento dinâmico

Nesta página, descrevemos como usar o roteamento dinâmico para criar um gateway de VPN clássica e um túnel que use o Border Gateway Protocol (BGP).

Com o roteamento dinâmico, você não especifica seletores de tráfego locais ou remotos. Em vez disso, um Cloud Router é usado. As informações de rota são trocadas dinamicamente.

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

Requisitos

Diretrizes gerais

Instalar software de VPN de terceiros em uma VM do Compute Engine

Quando você cria um túnel de VPN clássica com roteamento dinâmico, o endereço IP especificado para a interface de gateway de VPN de peering precisa ser atribuído a uma VM do Compute Engine.

Portanto, antes de criar túneis de VPN clássicos, instale um software de VPN de terceiros em uma VM do Compute Engine. Ao configurar os túneis de VPN clássica, especifique o endereço IP externo da VM do Compute Engine como a interface de gateway de VPN de peering.

Além disso, o endereço IP da interface do gateway de VPN de peering deve ser alocado do pool de endereços IPv4 externo regional de propriedade do Google. O endereço IP não pode pertencer a um intervalo Traga seu próprio endereço IP (BYOIP).

Criar Cloud Routers

Para criar um túnel que usa roteamento dinâmico com a VPN clássica, você precisa usar o Cloud Router. É possível criar um novo Cloud Router ou usar um já existente com túneis do Cloud VPN ou anexos da VLAN. 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

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

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

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

    Go to project selector

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

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

    gcloud init
  1. Se você estiver usando a Google Cloud CLI, defina o ID do projeto com o comando a seguir. As instruções da 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)'
        

Criar uma rede e uma sub-rede VPC personalizadas

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

Criar um gateway e um túnel

Console

Configure o gateway

  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 VPN clássica.
  3. Clique em Continuar.
  4. Na página Criar uma conexão de VPN, especifique as seguintes configurações de gateway:
    • Nome: o nome do gateway da VPN. Não é possível alterá-lo posteriormente.
    • Descrição: se quiser, adicione uma descrição.
    • Rede: especifique uma rede de VPC atual em que o túnel e o gateway da VPN serão criados.
    • Região: os gateways e túneis do Cloud VPN são objetos regionais. Escolha uma região do Google Cloud onde o gateway será localizado. Instâncias e outros recursos em diferentes regiões usam o túnel para o tráfego de saída sujeito à ordem das rotas. Para um melhor desempenho, localize o gateway e o túnel na mesma região que os recursos relevantes do Google Cloud.
    • Endereço IP: crie ou escolha um endereço IP externo regional atual.

Configurar túneis

  1. Forneça as seguintes informações na seção Túneis para o novo item de túnel:

    • Nome: o nome do túnel da VPN. Não é possível alterá-lo posteriormente.
    • Descrição: se quiser, insira uma descrição.
    • Endereço IP de peering remoto: especifique o endereço IP externo do gateway de VPN de peering.
    • Versão do IKE: escolha a versão do IKE adequada compatível com o gateway da VPN de peering. O IKEv2 tem preferência se for compatível com o dispositivo de peering.

    • Chave secreta compartilhada: forneça uma chave pré-compartilhada usada para autenticação. A senha secreta do túnel do Cloud VPN precisa corresponder àquela usada ao configurar o túnel de contrapartida no gateway da VPN de peering. Siga estas instruções para gerar uma senha secreta com criptografia forte.

    • Opções de roteamento: selecione Dinâmico (BGP). Só é possível usar o roteamento dinâmico para se conectar a um software de gateway de VPN de terceiros executado em uma instância de VM do Google Cloud.

    • Cloud Router: se ainda não o fez, crie um novo Cloud Router especificando as opções conforme indicado abaixo. Outra opção é usar um Cloud Router atual, se ele não estiver gerenciando uma sessão do BGP para um anexo de interconexão associado a uma Interconexão por parceiro. Caso seja escolhido um Cloud Router atual, ainda assim você criará uma nova sessão do BGP, mas o ASN do Google será o mesmo. Para criar um novo Cloud Router, especifique os seguintes detalhes:

      • Nome: o nome do Cloud Router. Não é possível alterá-lo posteriormente.
      • Descrição: se quiser, insira uma descrição.
      • ASN do Google: escolha um ASN privado (de 64512 até 65534 e de 4200000000 até4294967294). Esse ASN do Google é usado para todas as sessões do BGP gerenciadas pelo Cloud Router. Não é possível alterar o ASN posteriormente.
      • Clique em Salvar e continuar.
    • Sessão do BGP: clique no ícone de lápis e especifique os detalhes a seguir. Quando terminar, clique em Salvar e continuar:

      • Nome: o nome da sessão do BGP. Não é possível alterá-lo posteriormente.
      • ASN do peer: um ASN público ou privado (de 64512 até 65534 e de 4200000000 até 4294967294) usado pelo gateway de VPN de peering.
      • Prioridade de rota divulgada: (opcional) a prioridade básica que o Cloud Router usa ao divulgar as rotas "para o Google Cloud". Para mais informações, consulte Prefixos e prioridades anunciados. Seu gateway de VPN de peering importa esses valores como MED.
      • IP do BGP do Cloud Router e IP do peering do BGP: os dois endereços IP da interface do BGP precisam ser endereços IP link-local pertencentes a um CIDR /30 comum do bloco 169.254.0.0/16. Cada IP do BGP define o respectivo IP link-local usado para trocar informações de rotas. Por exemplo, 169.254.1.1 e 169.254.1.2 pertencem a um bloco /30 comum.
  2. Caso seja preciso criar mais túneis no mesmo gateway, clique em Adicionar túnel e repita a etapa anterior. É possível adicionar mais túneis posteriormente.

  3. Clique em Criar

gcloud

Nos comandos a seguir, substitua:

  • PROJECT_ID pelo código do projeto;
  • NETWORK pelo nome da rede do Google Cloud.
  • REGION pela região do Google Cloud em que você precisa criar o gateway e o túnel.
  • Opcional: a --target-vpn-gateway-region é a região do gateway de VPN clássica 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.
  • GW_NAME pelo nome do gateway;
  • GW_IP_NAME por um nome para o IP externo usado pelo gateway.

Conclua a seguinte sequência de comandos para criar um gateway do Google Cloud:

  1. Crie os recursos para o gateway do Cloud VPN:

    1. Crie o objeto de gateway da VPN de destino.

      gcloud compute target-vpn-gateways create GW_NAME \
          --network NETWORK \
          --region REGION \
          --project PROJECT_ID
      
    2. Reserve um endereço IP estático externo regional:

      gcloud compute addresses create GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID
      
    3. Observe o endereço IP para usá-lo ao configurar o gateway da VPN de peering:

      gcloud compute addresses describe GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID \
          --format='flattened(address)'
      
    4. Crie três regras de encaminhamento. Essas regras instruem o Google Cloud a enviar o tráfego ESP (IPsec), UDP 500 e UDP 4500 para o gateway.

       gcloud compute forwarding-rules create fr-GW_NAME-esp \
           --load-balancing-scheme=EXTERNAL \
           --ip-protocol ESP \
           --address GW_IP_NAME \
           --target-vpn-gateway GW_NAME \
           --region REGION \
           --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 4500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  2. Se ainda não tiver feito isso, conclua o comando a seguir para criar um Cloud Router. Substitua as opções conforme indicado abaixo. Outra opção é usar um Cloud Router atual, desde que ele não esteja gerenciando uma sessão do BGP para um anexo de interconexão associado a uma Interconexão por parceiro.

    • Substitua ROUTER_NAME por um nome para o Cloud Router.
    • Substitua GOOGLE_ASN por um ASN privado (de 64512 até 65534, 4200000000 até 4294967294). 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 \
      --asn GOOGLE_ASN \
      --network NETWORK \
      --region REGION \
      --project PROJECT_ID
    
  3. Crie o túnel do Cloud VPN com os seguintes detalhes:

    • Substitua TUNNEL_NAME por um nome para o túnel.
    • Substitua ON_PREM_IP pelo endereço IP externo do gateway de VPN de peering.
    • Substitua IKE_VERS por 1 para IKEv1 ou 2 para IKEv2.
    • Substitua SHARED_SECRET pela chave secreta compartilhada. A senha secreta do túnel do Cloud VPN precisa corresponder àquela usada ao configurar o túnel de contrapartida no gateway da VPN de peering. Siga estas instruções para gerar uma senha secreta com criptografia forte.
    • Substitua ROUTER_NAME pelo nome do Cloud Router desejado para gerenciar rotas para o túnel do Cloud VPN. O Cloud Router precisa existir antes de você criar o túnel.

      gcloud compute vpn-tunnels create TUNNEL_NAME \
          --peer-address ON_PREM_IP \
          --ike-version IKE_VERS \
          --shared-secret SHARED_SECRET \
          --router ROUTER_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  4. Configure uma sessão do BGP para o Cloud Router criando uma interface e um terminal do BGP. Escolha um dos seguintes métodos:

    • Para permitir que o Google Cloud escolha automaticamente os endereços IP link-local do BGP, faça isto:

      1. Adicione uma nova interface ao Cloud Router. Substitua INTERFACE_NAME para fornecer um nome para a interface.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --region REGION \
            --project PROJECT_ID
        
      2. Adicione um par 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 INTERFACE_NAME \
            --region REGION \
            --project PROJECT_ID
        

        Se você quiser definir rotas aprendidas personalizadas para o par, adicione a sinalização --set-custom-learned-route-ranges. Também é possível usar a sinalização --custom-learned-route-priority para definir um valor de prioridade entre 0 e 65535 (incluso) para as rotas. Cada sessão do BGP pode ter um valor de prioridade que se aplica a todas as rotas aprendidas personalizadas que você configurou para a sessão. Para mais informações sobre esse recurso, consulte Rotas aprendidas personalizadas.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        
      3. 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 IP do BGP que você precisa usar para configurar o gateway da VPN de peering.

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

        A saída esperada para um Cloud Router que gerencia um único túnel do Cloud VPN (índice 0) tem a seguinte aparência, em que GOOGLE_BGP_IP representa o IP do BGP da interface do Cloud Router e ON_PREM_BGP_IP representa o IP do BGP de peering.

        result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
        result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
        
    • Para atribuir manualmente os endereços IP do BGP associados à interface do BGP do Google Cloud e ao peering, faça isto:

      1. Escolha um par de endereços IP link-local do BGP em um bloco /30 no intervalo 169.254.0.0/16. Atribua um desses endereços IP do BGP ao Cloud Router no próximo comando substituindo GOOGLE_BGP_IP. O outro endereço IP do BGP é usado para o gateway de VPN de peering. Você precisa configurar seu dispositivo para usar esse endereço e substituir ON_PREM_BGP_IP no último comando abaixo.

      2. Adicione uma nova interface ao Cloud Router. Especifique um nome para a interface substituindo INTERFACE_NAME.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --ip-address GOOGLE_BGP_IP \
            --mask-length 30 \
            --region REGION \
            --project PROJECT_ID
        
      3. Adicione um par 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 INTERFACE_NAME \
            --peer-ip-address ON_PREM_BGP_IP \
            --region REGION \
            --project PROJECT_ID
        

        Se você quiser definir rotas aprendidas personalizadas para o par, adicione a sinalização --set-custom-learned-route-ranges. Também é possível usar a sinalização --custom-learned-route-priority para definir um valor de prioridade entre 0 e 65535 (incluso) para as rotas. Cada sessão do BGP pode ter um valor de prioridade que se aplica a todas as rotas aprendidas personalizadas que você configurou para a sessão. Para mais informações sobre esse recurso, consulte Rotas aprendidas personalizadas.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        

Concluir a configuração

Antes de usar um novo gateway do Cloud VPN e o túnel de VPN associado, conclua as etapas a seguir:

  1. Conclua a configuração do gateway da VPN de peering com o software de VPN de terceiros na instância da VM do Google Cloud. Configure o túnel correspondente. Só é possível usar o roteamento dinâmico com a VPN clássica para se conectar a software de VPN de terceiros em execução no Google Cloud.
  2. Configure regras de firewallno Google Cloud e na rede de peering, conforme necessário.
  3. Verifique o status do seu túnel VPN e das regras de encaminhamento.

A seguir