Criar conexões de VPN de alta disponibilidade entre o Google Cloud e o Azure

Neste tutorial, mostramos como criar conexões de rede privada virtual (VPN) altamente disponíveis (HA, na sigla em inglês) entre o Google Cloud e o Microsoft Azure. É possível usar esses serviços de VPN de alta disponibilidade para comunicação direta entre redes de nuvem privada virtual (VPC) no Google Cloud e nos gateways de rede virtual do Microsoft Azure.

Neste documento, pressupomos que você conheça os conceitos básicos de redes VPC, Border Gateway Protocol (BGP), VPNs e túneis de segurança de protocolo de Internet (IPsec).

O Google Cloud oferece uma VPN de alta disponibilidade (HA) para conectar sua rede VPC a ambientes em execução fora do Google Cloud, como o Microsoft Azure, por uma conexão VPN IPsec. Uma VPN de alta disponibilidade oferece um contrato de nível de serviço (SLA) de 99,99% de disponibilidade de serviço quando configurado com base nas práticas recomendadas do Google.

Visão geral da arquitetura

O diagrama a seguir mostra a arquitetura descrita neste documento.

Visão geral da arquitetura

A arquitetura mostrada no diagrama inclui os seguintes componentes:

  • Cloud Router: um serviço do Google Cloud totalmente distribuído e gerenciado para fornecer roteamento dinâmico usando o BGP para suas redes VPC.
  • Gateway de VPN de alta disponibilidade: um gateway de VPN gerenciado pelo Google em execução no Google Cloud. Cada gateway de VPN de alta disponibilidade é um recurso regional que tem duas interfaces: as interfaces 0 e 1. Cada uma dessas interfaces tem o próprio endereço IP externo.
  • Túneis de VPN: conexões do gateway da VPN de alta disponibilidade no Google Cloud para o gateway de VPN de peering no Azure por meio do tráfego criptografado.
  • Gateway de rede virtual: duas redes privadas definidas no serviço do Cloud Azure.

Cada conexão de gateway de rede virtual vem com dois túneis pré-configurados para apontar para um único gateway de cliente, que, nesse caso, é uma interface de gateway de VPN de alta disponibilidade no Google Cloud. Com essa configuração, o número mínimo de túneis do Cloud VPN necessários para atender ao SLA de disponibilidade de serviço de 99,99% é dois.

Endereços IP necessários para os procedimentos

Para concluir os procedimentos neste documento, use uma variedade de endereços IP no Google Cloud e no Azure. Alguns desses endereços IP são atribuídos automaticamente quando você cria um recurso.

Para os endereços que não são atribuídos automaticamente, defina esses endereços IP com base nos endereços IP disponíveis e nas necessidades da sua organização.

Os recursos do Google Cloud exigem os seguintes endereços IP:

  • A criação de uma sub-rede para uma rede de nuvem privada virtual requer um intervalo de endereços IP definido pelo usuário.
  • Depois de criar o gateway de VPN de alta disponibilidade, o Google Cloud atribui automaticamente dois endereços IP externos ao gateway da VPN de alta disponibilidade. O Google atribui um endereço IP a cada uma das duas interfaces do gateway. Você precisa dos endereços IP dessas interfaces para configurar os gateways de rede local no Azure.
  • Quando você cria túneis de VPN de alta disponibilidade no Google Cloud, cada túnel precisa de uma interface do BGP para o Cloud Router e uma interface do BGP para o gateway de rede virtual ativo-ativo (gateway da VPN) no Azure. Para cada túnel, escolha um par de endereços IPv4 de peering do BGP de link local em um bloco /30 dos intervalos 169.254.21.* e 169.254.22.*. Esses são os intervalos válidos para os endereços IPv4 de peering APIPA do BGP para Azure. É necessário selecionar quatro endereços IP no total.

    Os endereços IPv4 de peering do BGP selecionados precisam ser exclusivos entre todos os Cloud Routers em todas as regiões de uma rede VPC.

Os recursos do Azure exigem os seguintes endereços IP:

  • Quando você cria a rede virtual (VNet), a VNet exige um espaço de endereço IP para a rede e um espaço de endereço IP para a sub-rede da rede. É possível usar os espaços de endereço padrão ou inserir espaços de endereço definidos pelo usuário.
  • Quando você cria o gateway de rede virtual ativo (gateway de VPN), o gateway exige um intervalo de endereços de sub-rede. É possível usar o intervalo padrão ou definir um intervalo definido pelo usuário.
  • Quando você configura o BGP para o gateway da VPN ativo-ativo, o gateway requer dois endereços IP de peering APIPA do BGP. Como mencionado anteriormente, os intervalos válidos para endereços IP de peering APIPA do BGP para Azure são 169.254.21.* e 169.254.22.*.
  • Depois que você cria um gateway de VPN ativo-ativo, o Azure atribui automaticamente um endereço IP externo a cada uma das interfaces do gateway. Você precisa desses endereços IP para configurar o gateway de VPN de peering no Google Cloud.

Ao definir endereços IP, use um conjunto exclusivo de endereços IP para cada rede.

Objetivos

  • Criar uma rede virtual do Azure (VNet, na sigla em inglês) e um gateway de rede virtual ativo-ativo (gateway da VPN).
  • Crie os componentes necessários no Google Cloud: uma rede VPC, um Cloud Router, um gateway de VPN de alta disponibilidade, um gateway de VPN de peering e dois túneis de VPN de alta disponibilidade com sessões do BGP.
  • Crie dois gateways de rede local e duas conexões VPN no Azure. Verifique a configuração do Cloud Router e o status dos túneis da VPN de alta disponibilidade no Google Cloud.
  • Teste a conexão do Cloud VPN entre a rede VPC no Google Cloud e a rede virtual (VNet) no Azure.

Custos

Os procedimentos neste documento usam componentes faturáveis do Google Cloud, incluindo:

Para ver uma estimativa dos custos dos componentes do Google Cloud, use a calculadora de preços do Google Cloud.

Os procedimentos neste documento usam componentes faturáveis dos serviços do Microsoft Azure Cloud, incluindo os seguintes:

  • Gateways de VPN
  • Gateways de rede local

Para uma estimativa dos custos dos componentes do Azure, use a calculadora de preços do Azure.

Antes de começar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  3. Enable the Compute Engine API.

    Enable the API

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  5. Verifique se você tem os papéis administrativos necessários para configurar os componentes de rede:

    • Administrador de rede: compute.networkAdmin
    • Administrador de segurança: compute.securityAdmin
    • Administrador do Compute: compute.admin

    Para mais informações sobre os objetivos desses papéis, consulte Papéis do IAM para funções de jobs relacionados a redes.

Criar uma VNet e um gateway de VPN ativo-ativo no Azure

No Azure, você precisa configurar os seguintes componentes:

  • Uma rede virtual do Azure (VNet) que permite que os recursos do Azure se comuniquem com o Google Cloud VPN.
  • Um gateway de rede virtual ativo (gateway de VPN) que permite que as instâncias das máquinas virtuais (VMs) do gateway estabeleçam túneis de VPN para a VPN do Google Cloud.

Criar uma VNet

Uma VNet permite que os recursos do Azure se comuniquem com segurança entre si, com a Internet e com outras redes (como o Cloud VPN). Para mais informações sobre como criar uma VNet, consulte a documentação do Azure sobre como criar uma VNet.

  1. Faça login no portal do Azure.
  2. Na caixa Recursos de pesquisa, serviços e documentos (G+/), digite virtual network.
  3. Na lista de resultados do Marketplace, selecione Rede virtual.
  4. Na página Rede virtual, selecione Criar.
  5. Na guia Noções básicas da página Criar rede virtual, defina as seguintes configurações de VNet paraDetalhes do projeto e Detalhes da instância:

    1. Na caixa Assinatura, verifique se a assinatura listada é a correta. Para mudar uma assinatura, selecione-a na lista .
    2. Para especificar o grupo, clique em Criar novo para criar um novo grupo e insira um nome, como azure‑to‑google‑resgroup, para o nome do grupo de recursos.
    3. Na caixa Nome, digite o nome da sua VNet, como azure‑to‑google‑network.
    4. Na caixa Região, selecione um local para a VNet.

      O local selecionado determina o local de armazenamento dos recursos implantados nessa rede virtual.

  6. Na guia Endereços IP, na caixa Espaço de endereço IPv4, use o espaço de endereço e a sub-rede padrão criados pelo Azure.

  7. Na guia Segurança, deixe os valores de BastionHost, Proteção contra DDos Standard eFirewall definidos como o valor padrão de Desativar.

  8. Para validar as configurações da VNet, selecione Revisar + criar.

  9. Depois de validar as configurações, selecione Criar.

Criar um gateway de VPN ativo-ativo

Os seguintes procedimentos criam o gateway de VPN ativo-ativo:

  • O primeiro procedimento define os detalhes do projeto e da instância
  • O segundo procedimento especifica o endereço IP do gateway.

No momento, você só cria o gateway da VPN ativo-ativo. É preciso criar os componentes do Google Cloud antes de configurar os túneis necessários no Azure. Para mais informações sobre como criar um gateway de VPN ativo-ativo, consulte o tópico Configurar gateways de VPN ativos-ativos usando o portal na documentação do Azure.

Definir os detalhes do gateway

  1. Faça login no portal do Azure.
  2. Em Recursos de pesquisa, serviços e documentos (G+/), digite virtual network gateway.
  3. Em Serviços, localize e selecione Gateways de rede virtual nos resultados da pesquisa.
  4. Na página Virtual network gateway, selecione Criar.
  5. Na guia Básico da página Criar gateway de rede virtual, especifique os seguintes valores para as opções em Detalhes do projeto e seções de detalhes da instância:

    1. Na lista Assinatura, selecione a assinatura que você quer usar.
    2. Opcional: na caixa Intervalo de endereços da sub-rede de gateway, insira o intervalo de endereços da sub-rede.
    3. Verifique se Grupo de recursos exibe o grupo de recursos que corresponde à rede virtual selecionada nesta página.
    4. Em Nome, digite o nome do gateway, como azure‑to‑google‑gateway.
    5. Em Região, selecione a mesma região usada para criar a VNET.
    6. Em Tipo de gateway, selecione VPN.
    7. Em Tipo de VPN, selecione a opção Baseada em rota.

    8. Na lista SKU, selecione a SKU de gateway que você quer usar.

      As SKUs listadas no menu suspenso dependem do tipo de VPN que você selecionar.

    9. Na lista Geração, selecione a geração que você quer usar.

    10. Na lista Rede virtual, selecione a VNet que você criou anteriormente.

  6. Fique nesta página para o próximo procedimento.

Definir os endereços IP do gateway

  1. Na guia Básico da página Criar gateway de rede virtual, siga estas etapas para criar os endereços IP públicos usados pelo gateway da VPN ativo-ativo:

    1. Em Endereço IP público, selecione Criar novo.

      O Azure atribui automaticamente o endereço IP público ao gateway da VPN ativa.

    2. Na caixa Nome de endereço IP público, digite um nome para sua instância de endereço IP público, como azure‑to‑google‑network‑ip1.

    3. Em Ativar modo ativo-ativo, selecione Ativado.

    4. Opcional: se disponível para sua região, configure a Zona de disponibilidade. Por exemplo, você pode selecionar Redundante na zona.

    5. Em Segundo endereço IP público, selecione Criar novo.

    6. Na caixa Nome de endereço IP público, digite o nome do segundo endereço IP público, como azure‑to‑google‑network‑ip2.

    7. Em Configurar BGP, selecione Ativado.

    8. Em Números do sistema autônomos (ASN, na sigla em inglês), defina o ASN como um valor permitido e válido.

      Use esse valor de ASN ao configurar as sessões do BGP para os túneis no Google Cloud. Registre esse valor como AZURE_ASN para se referir a esse gateway de VPN ativo.

    9. Em Endereço IP APIPA do BGP do Azure, insira o primeiro endereço IP APIPA do BGP e registre o valor como AZURE_BGP_IP_0. Os intervalos válidos para endereços IP APIPAdo BGP do Azure são 169.254.21.* e 169.254.22.*.

    10. Em Segundo endereço IP APIPAdo BGP personalizado do Azure, insira o segundo endereço IP do BGP da APIPA e registre o valor como AZURE_BGP_IP_1. Você usará essas variáveis ao configurar as sessões do BGP no Google Cloud.

  2. Para executar a validação, selecione Revisar + criar.

  3. Quando a validação terminar, selecione Criar para implantar o gateway da VPN.

Ver e registrar os endereços IP públicos do gateway da VPN ativo-ativo

Você precisa dos endereços IP públicos atribuídos automaticamente pelo Azure ao gateway da VPN ativo-ativo. Use esses endereços IP para criar o recurso de gateway de VPN de peering no Google Cloud.

  1. Na página Visão geral do gateway ativo-ativo que você acabou de criar, localize os endereços IP públicos do gateway.
  2. Registre os endereços IP da tela:
    • Registre o primeiro endereço IP externo como AZURE_GW_IP_0.
    • Registre o segundo endereço IP externo como AZURE_GW_IP_1.

Posteriormente, este documento se refere a esses endereços IP como AZURE_GW_IP_0 e AZURE_GW_IP_1.

Criar seus componentes do Google Cloud

No Google Cloud, você precisa configurar os seguintes componentes:

  • Uma rede VPC.
  • Um gateway de VPN de alta disponibilidade.
  • Um Cloud Router.
  • Um gateway de VPN de peering.
  • Túneis de VPN de alta disponibilidade com sessões do BGP.

Para os procedimentos a seguir, presumimos que você tenha configurado o Google Cloud conforme descrito em Antes de começar. Se você não tiver concluído essas etapas, faça isso agora.

Criar uma rede VPC, uma sub-rede, um gateway de VPN de alta disponibilidade e um Cloud Router no Google Cloud

No Google Cloud, crie uma rede VPC, crie um gateway de VPN de alta disponibilidade, crie um Cloud Router e configure as regras de firewall no Google Cloud.

  1. No Google Cloud Shell, verifique se você está trabalhando no projeto do Cloud criado ou selecionado:

    gcloud config set project YOUR_PROJECT_ID
    
    export PROJECT_ID=`gcloud config list   --format="value(core.project)"`

    Substitua YOUR_PROJECT_ID pelo código do projeto.

  2. Crie uma rede VPC personalizada com uma única sub-rede:

    gcloud compute networks create NETWORK \
        --subnet-mode SUBNET_MODE \
        --bgp-routing-mode BGP_ROUTING_MODE

    Substitua:

    • NETWORK: o nome da rede, como google‑to‑azure‑vpc.
    • SUBNET_MODE: o modo de sub-rede definido como custom.
  3. BGP_ROUTING_MODE: o modo de roteamento do BGP definido como global.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute networks create google-to-azure-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
  4. Crie uma sub-rede para hospedar as VMs de teste:

    gcloud compute networks subnets create SUBNET_NAME \
        --network NETWORK \
        --region SUBNET_REGION \
        --range SUBNET_IP_ADDRESS_RANGE

    Substitua:

    O comando será semelhante ao seguinte exemplo:

    gcloud compute networks subnets create subnet-central1  \
        --network google-to-azure-vpc \
        --region us-central1 \
        --range 10.1.1.0/24
    
  5. Crie o gateway de VPN de alta disponibilidade:

    gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \
        --network NETWORK \
        --region REGION

    Substitua HA_VPN_GATEWAY_NAME pelo nome do gateway de VPN de alta disponibilidade.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute vpn-gateways create ha-vpn-gw-a \
       --network google-to-azure-vpc \
       --region us-central1
    

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

    Created [https://www.googleapis.com/compute/v1/projects/YOUR_PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a].
    NAME          INTERFACE0     INTERFACE1     NETWORK     REGION
    ha-vpn-gw-a   203.0.113.1   203.0.113.2   google-to-azure-vpc   us-central1
    

    A saída lista os endereços IPv4 externos que foram atribuídos automaticamente a cada interface de gateway (INTERFACE0 e INTERFACE1). Você precisa desses endereços IP ao configurar os gateways de rede local no Azure:

    • Registre o endereço IP de INTERFACE0 em HA_VPN_INT_0.
    • Registre o endereço IP de INTERFACE1 em HA_VPN_INT_1.
  6. Criar um Cloud Router

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

    Substitua:

    • ROUTER_NAME: o nome do seu Cloud Router.
    • REGION: a região onde você está criando o gateway e os túneis de VPN de alta disponibilidade.
    • GOOGLE_ASN: o número do sistema autônomo (ASN, na sigla em inglês) particular do Cloud Router que você está criando. Pode ser qualquer ASN privado no intervalo 64512-65534 ou 4200000000-4294967294 que você ainda não esteja usando como um ASN de mesmo nível na mesma região e rede.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers create cloud-router \
        --region us-central1 \
        --network google-to-azure-vpc \
        --asn 65534
    

Criar um gateway de VPN de peering para a VPN do Azure

Nesta seção, você cria um recurso de gateway de VPN externo que fornece informações ao Google Cloud sobre seu gateway de VPN ativo-ativo no Azure. Você cria um único gateway de VPN de peering que usa duas interfaces separadas, cada uma com seu próprio endereço IP externo.

Crie um único gateway de VPN de peering externo com duas interfaces:

gcloud compute external-vpn-gateways create AZURE_GW_NAME \
     --interfaces 0=AZURE_GW_IP_0,1=AZURE_GW_IP_1

Substitua:

  • AZURE_GW_NAME: o nome do gateway de VPN ativo-ativo do Azure
  • AZURE_GW_IP_0: o endereço IP externo para uma interface do gateway de peering.
  • AZURE_GW_IP_1: o endereço IP externo para outra interface do gateway de peering.

O recurso de gateway de VPN de peering que você criou precisa ser semelhante ao exemplo a seguir, em que AZURE_GW_IP_0 e AZURE_GW_IP_1 mostram os endereços IP externos reais das interfaces de gateway de peering:

gcloud compute external-vpn-gateways create azure-peer-gw \
     --interfaces 0=203.0.113.1,1=203.0.113.2

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

Criar túneis VPN

Você precisa criar dois túneis de VPN: um para cada interface no gateway da VPN de peering. Ao configurar túneis de VPN para o Azure, use o protocolo de criptografia IKEv2.

Para os comandos usados nesta seção, substitua o seguinte:

  • 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.
  • AZURE_GW_NAME: o nome do gateway de peer externo criado anteriormente.
  • AZURE_GW_INT_NUM_0 e AZURE_GW_INT_NUM_1: os números da interface configurados anteriormente no gateway de peering externo.
  • IKE_VERS: use 2 para IKEv2.
  • SHARED_SECRET: sua chave pré-compartilhada (secret compartilhado), que precisa corresponder à chave pré-compartilhada que você especificará ao configurar conexões VPN no Azure. Para ver recomendações, consulte Gerar uma chave pré-compartilhada forte.
  • HA_VPN_GATEWAY_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

Siga estas etapas para criar os túneis de VPN:

  1. Crie o túnel VPN para a interface 0:

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF0 \
       --peer-external-gateway=AZURE_GW_NAME \
       --peer-external-gateway-interface=AZURE_GW_INT_NUM_0  \
       --region=REGION \
       --ike-version=IKE_VERS \
       --shared-secret=SHARED_SECRET \
       --router=ROUTER_NAME \
       --vpn-gateway=HA_VPN_GATEWAY_NAME \
       --interface=INT_NUM_0

    O comando será semelhante ao seguinte exemplo:

    gcloud compute vpn-tunnels create azure-tunnel-1 \
       --peer-external-gateway azure-peer-gw \
       --peer-external-gateway-interface 0  \
       --region us-central1  \
       --ike-version 2 \
       --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \
       --router cloud-router \
       --vpn-gateway ha-vpn-gw-a \
       --interface 0
  2. Crie o túnel VPN para a interface 1:

    gcloud compute vpn-tunnels create TUNNEL_NAME_IF1 \
      --peer-external-gateway=AZURE_GW_NAME \
      --peer-external-gateway-interface=AZURE_GW_INT_NUM_1 \
      --region=REGION \
      --ike-version=IKE_VERS \
      --shared-secret=SHARED_SECRET \
      --router=ROUTER_NAME \
      --vpn-gateway=HA_VPN_GATEWAY_NAME \
      --interface=INT_NUM_1

    O comando será semelhante ao seguinte exemplo:

    gcloud compute vpn-tunnels create azure-tunnel-2 \
       --peer-external-gateway azure-peer-gw \
       --peer-external-gateway-interface 1  \
       --region us-central1  \
       --ike-version 2 \
       --shared-secret xo2aTKHipD/oE1GAXgj3lMwjBmJXZjqD \
       --router cloud-router \
       --vpn-gateway ha-vpn-gw-a \
       --interface 1

Criar sessões do BGP

No roteamento dinâmico, use o Cloud Router para estabelecer sessões do BGP entre o Google Cloud e o Azure. Recomendamos o uso de roteamento dinâmico em vez de roteamento estático sempre que possível, conforme discutido na Visão geral do Cloud VPN e no Roteamento de túnel e rede do Cloud VPN.

Você precisa criar uma sessão do BGP para cada túnel de VPN. Cada sessão do BGP consiste em uma interface do BGP para o Cloud Router e um peering do BGP. Você cria um peering do BGP para cada um dos dois túneis de VPN que acabou de criar.

Para os comandos usados nesta seção, substitua o seguinte:

  • ROUTER_NAME: o nome atribuído ao Cloud Router.
  • ROUTER_INTERFACE_NAME_0 e ROUTER_INTERFACE_NAME_1: o nome para a interface do BGP do Cloud Router. Pode ser útil usar nomes relacionados aos nomes de túnel configurados anteriormente
  • MASK_LENGTH: especifica 30. Cada sessão do BGP do mesmo Cloud Router precisa usar um CIDR /30 exclusivo do bloco 169.254.0.0/16.
  • GOOGLE_BGP_IP_0 e GOOGLE_BGP_IP_1: os endereços IP de peering do BGP para as interfaces de gateway da VPN de alta disponibilidade que você configura. Cada túnel usa uma interface de gateway diferente. Como os intervalos permitidos para endereços IP de peering APIPA do BGP para Azure são 169.254.21.* e 169.254.22.*, é necessário selecionar um endereço IP disponível no CIDR /30 desses intervalos para seus endereços IP de peering do BGP do Cloud Router.
  • AZURE_BGP_IP_0 e AZURE_BGP_IP_1: os endereços IP de peering APIPA do BGP que você já configurou no gateway da VPN ativo-ativo do Azure. Cada túnel usa um endereço diferente.
  • TUNNEL_NAME_IF0 e TUNNEL_NAME_IF1: o túnel associado à interface de gateway de VPN de alta disponibilidade que você configurou
  • AZURE_ASN: o ASN que você configurou para o gateway da VPN de peering ativo no Azure.
  • BGP_PEER_NAME_1 e BGP_PEER_NAME_2 com nomes exclusivos para cada peering do BGP. Por exemplo, azure‑bgp‑peer‑1 e azure‑bgp‑peer‑2.

Para criar sessões do BGP para os túneis VPN, siga estas etapas:

  1. Para o primeiro túnel de VPN, 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_IF0 \
       --ip-address=GOOGLE_BGP_IP_0 \
       --region=REGION

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers add-interface cloud-router \
       --interface-name azure-tunnel-1-int-0 \
       --mask-length 30 \
       --vpn-tunnel azure-tunnel-1 \
       --ip-address 169.254.21.2 \
       --region us-central1
    
  2. Para o primeiro túnel de VPN, adicione um peering do BGP à interface:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=BGP_PEER_NAME_1 \
       --peer-asn=AZURE_ASN \
       --interface=ROUTER_INTERFACE_NAME_0 \
       --peer-ip-address=AZURE_BGP_IP_0 \
       --region=REGION

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers add-bgp-peer cloud-router \
       --peer-name azure-bgp-peer-1 \
       --peer-asn 65515 \
       --interface azure-tunnel-1-int-0 \
       --peer-ip-address 169.254.21.1 \
       --region us-central1
    
  3. Para o segundo túnel de VPN, 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_IF0 \
       --ip-address=GOOGLE_BGP_IP_1 \
       --region=REGION

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers add-interface cloud-router \
       --interface-name azure-tunnel-2-int-1 \
       --mask-length 30 \
       --vpn-tunnel azure-tunnel-2 \
       --ip-address 169.254.22.2 \
       --region us-central1
    
  4. Para o segundo túnel de VPN, adicione um peering do BGP à interface:

    gcloud compute routers add-bgp-peer ROUTER_NAME \
       --peer-name=BGP_PEER_NAME_2 \
       --peer-asn=AZURE_ASN \
       --interface=ROUTER_INTERFACE_NAME_1 \
       --peer-ip-address=AZURE_BGP_IP_1 \
       --region=REGION

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers add-bgp-peer cloud-router \
      --peer-name azure-bgp-peer-2 \
      --peer-asn 65515 \
      --interface azure-tunnel-2-int-1 \
      --peer-ip-address 169.254.22.1 \
      --region us-central1
    

Criar gateways de rede locais e conexões VPN no Azure

Com os componentes do Google Cloud criados e configurados, você retorna ao ambiente do Azure para concluir a conexão do Google Cloud ao Azure. Para concluir essa conexão, crie os seguintes componentes no Azure:

  • Dois gateways de rede local que representam seu Google Cloud VPN no Azure.
  • Duas conexões de VPN que correspondem aos dois túneis de VPN de alta disponibilidade que você configurou no Google Cloud.

Criar dois gateways de rede local

Um gateway de rede local é um objeto específico que representa o Google Cloud VPN no Azure. Ao criar um gateway de rede local, você especifica as seguintes informações:

  • Um nome para o gateway de rede local.
  • O endereço IP da interface da VPN de alta disponibilidade a ser usada na conexão.
  • O endereço IP do Google Cloud Router para o qual você quer criar uma conexão.
  • Os prefixos de endereços IP que são roteados pelo gateway da VPN para o Cloud Router. Os prefixos de endereço que você especifica são os prefixos localizados no Cloud VPN. Se a rede privada virtual do Cloud mudar ou se você precisar alterar o endereço IP público do Cloud Router, será possível atualizar os valores mais tarde.

É necessário criar dois gateways de rede local: um que se conecta à primeira interface de túnel de VPN de alta disponibilidade no Google Cloud e outro que se conecta à segunda interface de túnel de VPN de alta disponibilidade.

Para mais informações, consulte a seção Criar um gateway de rede local do tutorial Criar uma conexão VPN site a site no portal do Azure na documentação do Azure.

Para criar o primeiro gateway de rede local, siga estas etapas:

  1. Faça login no portal do Azure.
  2. Em Recursos de pesquisa, serviços e documentos (G+/), digite gateway de rede local.
  3. Nos resultados da pesquisa em Marketplace, localize e selecione a opção gateway de rede local.
  4. Clique em Criar.
  5. Na guia Básico da página Criar gateway de rede local, especifique os seguintes valores para o gateway:

    1. Na lista Assinatura, verifique se a assinatura correta está aparecendo.
    2. Na lista Grupo de recursos, selecione o mesmo grupo de recursos que você criou para a VNet anteriormente neste documento.
    3. Em Região, selecione o mesmo local da sua VNet.
    4. Em Nome, digite um nome para o gateway da rede local, como azure-to-google-locgateway1.
    5. Em Endpoint, selecione Endereço IP.
    6. Na caixa Endereço IP, digite o endereço IP de INTERFACE0 da VPN de alta disponibilidade (ou seja, HA_VPN_INT_0).
    7. Em Espaço de endereço, insira os intervalos de endereços da rede que essa rede local representa.

      É possível adicionar vários intervalos de espaços de endereços. Verifique se os intervalos especificados aqui não se sobrepõem àqueles de outras redes com que você quer se conectar.

  6. Na guia Avançado, defina as configurações do BGP da seguinte maneira:

    1. Em Configurar o BGP, selecione Sim.
    2. Em Número de sistema autônomo (ASN, na sigla em inglês), digite o ASN do Cloud Router (ou seja, GOOGLE_ASN).
    3. Em Endereço IP de peering do BGP, digite o endereço IP do BGP para o Cloud Router no túnel 1 (ou seja, GOOGLE_BGP_IP_0).
  7. Para validar a configuração do gateway da rede local, clique em Revisar e criar na parte inferior da página.

  8. Depois que a validação for aprovada, clique em Criar para gerar o gateway de rede local.

Para criar o segundo gateway de rede local, siga estas etapas:

  1. No Portal do Azure, em Pesquisar recursos, serviços e documentos (G+/), digite local network gateway.
  2. Em Marketplace, nos resultados da pesquisa, localize e selecione gateway de rede local.
  3. Na guia Básico da página Criar gateway de rede local, especifique os seguintes valores para o gateway:

    1. Na lista Assinatura, verifique se a assinatura correta está sendo mostrada.
    2. Na lista Grupo de recursos, selecione o mesmo grupo de recursos que você criou para a VNet anteriormente neste documento.
    3. Em Região, selecione a mesma região da sua VNet.
    4. Em Nome, digite um nome para o gateway da rede local, como azure-to-google-locgateway2.
    5. Em Endpoint, selecione Endereço IP.
    6. Na caixa Endereço IP, digite o endereço IP de INTERFACE1 da VPN de alta disponibilidade (ou seja, HA_VPN_INT_1).
    7. Em Espaço de endereço, insira os intervalos de endereços da rede que essa rede local representa.

    É possível adicionar vários intervalos de espaços de endereços. Verifique se os intervalos especificados aqui não se sobrepõem àqueles de outras redes com que você quer se conectar.

  4. Na guia Avançado, defina as configurações do BGP da seguinte maneira:

    1. Em Configurar o BGP, selecione Sim.
    2. Em Número de sistema autônomo (ASN, na sigla em inglês), digite o ASN do Cloud Router (ou seja, GOOGLE_ASN).
    3. Em Endereço IP de peering do BGP, digite o endereço IP do BGP para o Cloud Router no túnel 1 (ou seja, GOOGLE_BGP_IP_1).
  5. Para validar a configuração do gateway da rede local, clique em Revisar e criar na parte inferior da página.

  6. Depois que a validação for aprovada, clique em Criar para gerar o gateway de rede local.

Criar duas conexões VPN

Para criar as conexões de VPN no Azure, você precisa das chaves pré-compartilhadas ou SHARED_SECRET configuradas ao definir túneis de VPN de alta disponibilidade no Google Cloud.

  1. No Portal do Azure, localize o gateway de VPN ativo-ativo criado em Criar um gateway de VPN ativo-ativo.
  2. Selecionar Conexões.
  3. Na parte superior da página Conexões, selecione +Adicionar.
  4. Na página Adicionar conexão, especifique os seguintes valores para sua primeira conexão:
    1. Em Nome, insira um nome para a conexão, como azure-vnet-to-google1.
    2. Em Tipo de conexão, selecione Site a site (IPsec).
    3. Em Gateway de rede local, especifique o primeiro gateway de rede local que você criou, como azure-to-google-locgateway1.
    4. Em Chave compartilhada (PSK), especifique a chave compartilhada que você configurou para o primeiro túnel de VPN de alta disponibilidade.
    5. Selecione Ativar BGP.
    6. Em Protocolo IKE, selecione IKEv2.
    7. Clique em OK.
    8. Na página Conexões, selecione +Adicionar para adicionar uma segunda conexão com os seguintes valores:
    9. Em Nome, insira um nome para a conexão, como azure-vnet-to-google2.
    10. Em Tipo de conexão, selecione Site a site (IPsec).
    11. Em Gateway de rede local, especifique o segundo gateway de rede local que você criou, como azure-to-google-locgateway2.
    12. Em Chave compartilhada (PSK), especifique a chave compartilhada que você configurou para o segundo túnel de VPN de alta disponibilidade.
    13. Selecione Ativar BGP.
    14. Em Protocolo IKE, selecione IKEv2.
    15. Clique em OK.
  5. Na página Conexões, verifique se o status das duas conexões está listado como Conectado.

Verificar a configuração

No Google Cloud, é possível verificar a configuração da VPN de alta disponibilidade examinando (listando) a configuração do Cloud Router e, em seguida, verificando o status dos túneis da VPN de alta disponibilidade.

  1. No Cloud Shell, liste os endereços IP de peering do BGP escolhidos pelo Cloud Router:

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

    O comando será semelhante ao seguinte exemplo:

    gcloud compute routers get-status cloud-router \
        --region us-central1 \
    --format='flattened(result.bgpPeerStatus[].name,result.bgpPeerStatus[].ipAddress,result.bgpPeerStatus[].peerIpAddress)'
    

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

    result.bgpPeerStatus[0].ipAddress:     169.254.21.2
    result.bgpPeerStatus[0].name:          azure-bgp-peer-1
    result.bgpPeerStatus[0].peerIpAddress: 169.254.21.1
    result.bgpPeerStatus[1].ipAddress:     169.254.22.2
    result.bgpPeerStatus[1].name:          azure-bgp-peer-2
    result.bgpPeerStatus[1].peerIpAddress: 169.254.22.1
    
  2. No Cloud Shell, visualize o status do primeiro túnel de VPN de alta disponibilidade:

    gcloud compute vpn-tunnels describe TUNNEL_NAME_IF0 \
       --region=REGION

    Substitua:

    • TUNNEL_NAME_IF0: o túnel associado à primeira interface do gateway da VPN de alta disponibilidade que você configurou.
    • REGION: região em que você implantou o gateway de VPN de alta disponibilidade.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute vpn-tunnels describe azure-tunnel-1 -–region=us-central1
    

    A saída esperada para o túnel será semelhante a este exemplo:

    creationTimestamp: '2022-09-28T17:13:21.592-07:00'
    description: ''
    detailedStatus: Tunnel is up and running.
    id: '278561789474069966'
    ikeVersion: 2
    kind: compute#vpnTunnel
    localTrafficSelector:
    -   0.0.0.0/0
    name: azure-tunnel-1
    peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw
    peerExternalGatewayInterface: 0
    peerIp: 203.0.113.1
    region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1
    remoteTrafficSelector:
    -   0.0.0.0/0
    router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-1
    sharedSecret: '*************'
    sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9paz
    status: ESTABLISHED
    vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnGateways/ha-vpn-gw-a
    vpnGatewayInterface: 0
    
  3. No Cloud Shell, visualize o status do segundo túnel da VPN de alta disponibilidade:

    gcloud compute vpn-tunnels describe TUNNEL_NAME_IF1 \
       --region=REGION

    Substitua:

    • TUNNEL_NAME_IF1: o túnel associado à segunda interface do gateway da VPN de alta disponibilidade que você configurou.
    • REGION: região em que você implantou o gateway de VPN de alta disponibilidade.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute vpn-tunnels describe azure-tunnel-2 --region=us-central1
    

    A saída esperada para o túnel será semelhante a este exemplo:

    creationTimestamp: '2022-09-28T17:13:21.592-07:00'
    description: ''
    detailedStatus: Tunnel is up and running.
    id: '5665972275117479944'
    ikeVersion: 2
    kind: compute#vpnTunnel
    localTrafficSelector:
    -   0.0.0.0/0
    name: azure-tunnel-2
    peerExternalGateway: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/global/externalVpnGateways/azure-peer-gw
    peerExternalGatewayInterface: 1
    peerIp: 203.0.113.2
    region: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1
    remoteTrafficSelector:
    -   0.0.0.0/0
    router: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/routers/cloud-router
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT-ID/regions/us-central1/vpnTunnels/azure-tunnel-2
    sharedSecret: '*************'
    sharedSecretHash: ALDZGgSMUxj8KFahMoG_L0Fz9ddd
    

Testar a conectividade

Para testar as conexões da VPN de alta disponibilidade, você precisa primeiro criar VMs em cada lado do túnel.

Em seguida, verifique se você tem regras de firewall definidas no Google Cloud que permitem o tráfego ICMP de entrada das sub-redes da rede do Azure. Com as VMs e as regras de firewall, é possível testar a conectividade usando o ping e a largura de banda do teste usando o iperf.

  1. Crie VMs de teste em cada lado dos túneis para testar solicitações de ping.

    Também é necessário configurar o firewall de rede do Azure para permitir tráfego de entrada dos prefixos de sub-rede usados na nuvem privada virtual.

  2. No Google Cloud, configure uma regra de firewall que permita o tráfego ICMP de entrada da VPN do Azure:

    gcloud compute firewall-rules create RULE_NAME \
        --network NETWORK \
        --direction ingress \
        --action allow \
        --source-ranges AZURE_VNET_RANGE \
        --rules icmp \

    Substitua AZURE_VNET_RANGE pelo intervalo de endereços IP atribuído à VNet do Azure.

    O comando será semelhante ao seguinte exemplo:

    gcloud compute firewall-rules create allow-azure-icmp \
      --network google-to-azure-vpc \
      --direction ingress \
      --action allow \
      --source-ranges 10.0.0.0/16 \
      --rules icmp
    
  3. Teste a conexão usando o comando ping.

  4. Avalie a largura de banda entre as máquinas de teste usando o iperf.

Limpar

Exclua os recursos do Google Cloud e do Azure que você criou durante este tutorial.

Excluir o projeto do Google Cloud

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua o projeto:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Excluir grupo de recursos do Azure

Exclua o grupo de recursos do Azure Manager criado quando você criou a VNet. Neste tutorial, o nome do grupo de recursos de exemplo é azure-to-google-resgroup.

Para mais informações, consulte Exclusão de recursos e grupos de recursos do Azure Resource Manager.

A seguir