Como criar uma VPN clássica usando o roteamento estático

Nesta página, você verá como criar um gateway de VPN clássica e um túnel usando roteamento estático. Este túnel é baseado em uma política ou em uma rota.

Com VPN baseada em rota, você especifica somente o seletor de tráfego remoto. Se você precisar especificar um seletor de tráfego local, crie um túnel do Cloud VPN que use roteamento com base em políticas.

Diferenças nas opções de roteamento

Quando você cria um túnel com base em políticas usando o Console do Google Cloud, a VPN clássica executa todas as tarefas a seguir:

  • Define o seletor de tráfego local do túnel para o intervalo IP especificado.
  • Define o seletor de tráfego remoto do túnel para os intervalos de IP especificados em intervalos de IP de rede remota.
  • Para cada intervalo em Intervalos de IP de rede remota, o Google Cloud cria uma rota estática personalizada, tendo como destino (prefixo) o CIDR do intervalo. O próximo salto dessa rota é o túnel.

Quando você cria um túnel com base em rota usando o Console do Cloud, a VPN clássica realiza as seguintes tarefas:

  • Define os seletores locais e remotos do túnel para qualquer endereço IP (0.0.0.0/0).
  • Para cada intervalo em Intervalos de IP de rede remota, o Google Cloud cria uma rota estática personalizada, tendo como destino (prefixo) o CIDR do intervalo. O próximo salto dessa rota é o túnel.

Quando você cria um túnel baseado em rota ou em uma política usando a ferramenta de linha de comando gcloud, os seletores de tráfego para o túnel são definidos da mesma maneira. No entanto, como a criação de rotas estáticas personalizadas é feita com comandos separados, você tem mais controle sobre essas rotas. Para mais informações, consulte Roteamento de redes e de túnel.

Como especificar vários CIDRs por seletor de tráfego

O número de CIDRs possíveis de especificar em um seletor de tráfego depende da versão de IKE. Analise com atenção as Opções de roteamento e seletores de tráfego e Vários CIDRs por seletor de tráfego para mais informações importantes.

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 de 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 código do projeto com o comando a seguir. As instruções do gcloud nesta página presumem que você tenha definido o código do projeto antes de emitir comandos.
  gcloud config set project [PROJECT_ID]

É 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 e um túnel de VPN clássica, crie uma rede de nuvem privada virtual e pelo menos uma sub-rede na região em que o gateway de VPN clássica residirá.

Como criar um gateway e um túnel

O assistente de configuração de VPN é a única opção de console para criar um gateway de VPN clássica. O assistente inclui todas as etapas de configuração necessárias para a criação de um gateway de VPN clássica, túneis, sessões do BGP e um recurso de gateway de VPN externa. No entanto, é possível concluir algumas etapas depois. Por exemplo, configuração de sessões do BGP.

O botão Criar uma VPN suporta apenas a criação de gateways de VPN de alta disponibilidade.

Assistente de VPN

Configure o gateway

  1. Acesse a página VPN no Console do Google Cloud.
    Acesse a página da VPN
  2. Clique em Assistente de configuração da VPN.
  3. Na página Criar uma VPN, especifique VPN clássica.
  4. Clique em Continuar.
  5. 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 existente para criar o gateway e o túnel da VPN.
    • 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. Especifique as seguintes configurações na seção Túneis do novo 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 apropriada compatível com o gateway de 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 à usada ao configurar o túnel de contrapartida no gateway de VPN de peering. Siga estas instruções para gerar uma chave secreta compartilhada com criptografia forte.

    Para túneis com base em políticas

    • Em Opções de roteamento, selecione com base em políticas.
    • Em Intervalos de IP de rede remota, forneça uma lista separada por espaço dos intervalos de IP usados pela rede de peering. Este é o seletor de tráfego remoto: o "lado certo" do ponto de vista do Cloud VPN.
    • Em Intervalos de IP local, selecione um dos seguintes métodos:
      • Use o menu Sub-redes locais para escolher um intervalo de IP local existente.
      • Use o campo Intervalos de IP locais para inserir uma lista de intervalos de IP separados por espaço usados na rede de VPC. Consulte seletores de tráfego para considerações importantes.

    Para túneis com base em rotas

    • Opções de roteamento: selecione Route-based.
    • Intervalos de IP de rede remota: forneça uma lista separada por espaço dos intervalos de IP usados pela rede de peering. Esses intervalos são usados para criar rotas estáticas personalizadas que tenha como próximo salto este túnel de VPN.
  2. Caso seja preciso criar mais túneis no mesmo gateway, clique em Adicionar túnel e repita a etapa anterior. Também é 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 sua rede do Google Cloud.
  • region pela região do Google Cloud em que você precisa criar o gateway e o túnel.
  • (Opcional) O --target-vpn-gateway-region é a região do gateway de VPN clássica onde operar. Seu valor precisa ser igual a --region. Se não for especificada, essa opção será definida automaticamente. Esta opção substitui 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 do ESP (IPsec), UDP 500 e UDP 4500 para o gateway.

      gcloud compute forwarding-rules create fr-gw-name-esp \
          --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 \
          --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 \
          --ip-protocol UDP \
          --ports 4500 \
          --address gw-ip-name \
          --target-vpn-gateway gw-name \
          --region region \
          --project project-id
      
  2. 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 à usada ao configurar o túnel de contrapartida no gateway de VPN de peering. Siga estas instruções para gerar uma senha secreta com criptografia forte.

    Para VPN baseada em política:

    • Substitua local-ip-ranges por uma lista delimitada por vírgulas dos intervalos de IP do Google Cloud. Por exemplo, é possível fornecer o bloco CIDR para cada sub-rede em uma rede VPC. Este é o "lado esquerdo" do ponto de vista do Cloud VPN.
    • Substitua remote-ip-ranges por uma lista delimitada por vírgulas dos intervalos de IP da rede com peering. Este é o "lado certo" do ponto de vista do Cloud VPN.

    Comando de VPN com base em políticas:

    gcloud compute vpn-tunnels create tunnel-name \
        --peer-address on-prem-ip \
        --ike-version ike-vers \
        --shared-secret shared-secret \
        --local-traffic-selector=local-ip-ranges \
        --remote-traffic-selector=remote-ip-ranges \
        --target-vpn-gateway gw-name \
        --region region \
        --project project-id
    

    Para VPN com base em rota:

    gcloud compute vpn-tunnels create tunnel-name \
        --peer-address on-prem-ip \
        --ike-version ike-vers \
        --shared-secret shared-secret \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway gw-name \
        --region region \
        --project project-id
    
  3. Crie uma rota estática para cada intervalo de IP remoto especificado na opção --remote-traffic-selector na etapa anterior. Repita esse comando para cada intervalo de IP remoto, substituindo route-name por um nome exclusivo para a rota e [REMOTE_IP_RANGE] pelo intervalo de IP remoto apropriado.

    gcloud compute routes create route-name \
        --destination-range remote-ip-range \
        --next-hop-vpn-tunnel tunnel-name \
        --network network \
        --next-hop-vpn-tunnel-region region \
        --project project-id
    

Próximas etapas

É preciso concluir as seguintes etapas antes de usar um novo túnel e gateway do Cloud VPN:

  1. Defina o gateway da VPN de peering e configure o túnel correspondente. Consulte estas páginas:
  2. Configure regras de firewall no Google Cloud e em sua rede de peering conforme necessário. Consulte a página Regras de firewall para sugestões.
  3. Verifique o status do seu túnel, incluindo as regras de encaminhamento.
  4. É possível visualizar suas rotas da VPN visitando a tabela de roteamento do projeto
    e filtrando por "Próximo tipo de salto: túnel da 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 em 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 código da organização ou o código 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 digitando o mesmo comando que você usaria para restringir endereços IP em peering.