Configurar uma conexão gateway de VPN de Vnet pra VNet usando a CLI do Azure

Este artigo ajuda você a conectar redes virtuais usando o tipo de conexão de rede virtual a rede virtual. As redes virtuais podem estar na mesma região ou em regiões diferentes, e com a mesma assinatura ou em assinaturas diferentes. Ao conectar VNets de assinaturas diferentes, as assinaturas não precisam estar associadas ao mesmo locatário.

VNet to VNet diagram.

As etapas neste artigo se aplicam ao modelo de implantação do Resource Manager e usam a CLI do Azure. Você também pode criar essa configuração usando uma ferramenta de implantação ou um modelo de implantação diferente, selecionando uma opção diferente na lista a seguir:

Sobre a conexão de VNets

Há várias maneiras de conectar redes virtuais. As seções a seguir descrevem as diferentes maneiras de conectar redes virtuais.

VNet a VNet

A configuração de uma conexão VNet a VNet é uma boa maneira de conectar redes virtuais com facilidade. A conexão de uma rede virtual a outra rede virtual usando o tipo de conexão VNet a VNet é semelhante à criação de uma conexão IPsec Site a Site com um site local. Os dois tipos de conectividade usam um gateway de VPN para fornecer um túnel seguro usando IPsec/IKE, e ambos funcionam da mesma forma ao se comunicar. A diferença entre os tipos de conexão é a maneira que o gateway de rede local é configurado. Ao criar uma conexão de VNet para VNet, você não vê o espaço de endereço do gateway de Rede local. É criado e preenchido automaticamente. Se você atualizar o espaço de endereço de uma VNet, a outra saberá automaticamente como rotear para o espaço de endereço atualizado. A criação de uma conexão VNet a VNet normalmente é mais rápida e fácil do que criar uma conexão site a site entre VNets, mas não fornece o mesmo nível de flexibilidade se você quiser adicionar outra conexão porque o espaço de endereço do gateway de rede local não está disponível para modificação manual.

Como conectar VNets usando as etapas de Site a Site (IPsec)

Caso você esteja trabalhando com uma configuração de rede complicada, talvez prefira conectar as VNets usando as etapas referentes à conexão site a site, em vez das etapas da conexão VNet a VNet. Quando você usar as etapas de Site a Site, vai criar e configurar os gateways de rede local manualmente. O gateway de rede local para cada VNet trata a outra VNet como um site local. Isso permite que você especifique espaços de endereço adicionais para o gateway de rede local a fim de rotear o tráfego. Se o espaço de endereço para uma rede virtual for alterado, você precisará atualizar manualmente o gateway de rede local correspondente para refletir a alteração. A atualização não é automática.

Emparelhamento VNet

Considere conectar as VNets usando o emparelhamento de VNET. O Emparelhamento VNET não usa um gateway de VPN e tem restrições diferentes. Além disso, os preços do emparelhamento VNet são calculados de maneira diferente dos preços de Gateway de VPN de VNet a VNet. Para obter mais informações, consulte Emparelhamento da VNet.

Por que criar uma conexão de VNet a VNet?

Considere conectar as redes virtuais com uma conexão VNet a VNet pelos seguintes motivos:

  • Redundância geográfica entre regiões e presença geográfica

    • Você pode configurar sua própria sincronização ou replicação geográfica com conectividade segura sem passar por pontos de extremidade voltados para a Internet.
    • Com o Balanceador de Carga e o Gerenciador de Tráfego do Azure você pode configurar a carga de trabalho de alta disponibilidade com redundância geográfica em várias regiões do Azure. Um exemplo importante é configurar o Always On do SQL com Grupos de Disponibilidade espalhados por várias regiões do Azure.
  • Aplicativos multicamadas regionais com limite administrativo ou de isolamento

    • Na mesma região, você pode configurar aplicativos multicamadas com várias redes virtuais conectadas devido aos requisitos administrativos ou de isolamento.

Você pode combinar a comunicação de VNet a VNet usando configurações multissite. Isso permite estabelecer topologias de rede que combinam conectividade entre instalações a conectividade de rede intervirtual.

Quais etapas de VNet a VNet devo usar?

Neste artigo, você verá dois conjuntos diferentes de etapas de conexão VNet para VNet. Um conjunto de etapas para VNets que residem na mesma assinatura, e um para VNets que residem em assinaturas diferentes.

Para este exercício, você pode combinar as configurações, ou simplesmente escolher aquela com a qual você deseja trabalhar. Todas as configurações usam o tipo de conexão VNet a VNet. O tráfego de rede flui entre as VNets diretamente conectadas umas às outras.

Conectar VNets que estão na mesma assinatura

Antes de começar

Antes de começar, instale a versão mais recente dos comandos da CLI (2.0 ou posterior). Para saber mais sobre como instalar os comandos da CLI, confira Instalar a CLI do Azure.

Planejar seus intervalos de endereços IP

Nas etapas a seguir, crie duas redes virtuais juntamente com as respectivas configurações e sub-redes de gateway. Em seguida, crie uma conexão VPN entre as duas VNets. É importante planejar os intervalos de endereços IP para sua configuração de rede. Lembre-se de que você deve garantir que nenhum de seus intervalos de VNet ou intervalos de rede local se sobreponham de forma alguma. Nesses exemplos, não incluímos um servidor DNS. Se você deseja resolução de nomes para suas redes virtuais, confira a Resolução de nomes.

Usamos os seguintes valores nos exemplos:

Valores para TestVNet1:

  • Nome da rede virtual: TestVNet1
  • Grupo de recursos: TestRG1
  • Local: Leste dos EUA
  • TestVNet1: 10.11.0.0/16 & 10.12.0.0/16
  • FrontEnd: 10.11.0.0/24
  • BackEnd: 10.12.0.0/24
  • GatewaySubnet: 10.12.255.0/27
  • GatewayName: VNet1GW
  • IP público: VNet1GWIP
  • VpnType: RouteBased
  • Connection(1to4): VNet1toVNet4
  • Connection(1to5): VNet1toVNet5 (para VNets em assinaturas diferentes)

Valores para TestVNet4:

  • Nome da rede virtual: TestVNet4
  • TestVNet2: 10.41.0.0/16 & 10.42.0.0/16
  • FrontEnd: 10.41.0.0/24
  • BackEnd: 10.42.0.0/24
  • GatewaySubnet: 10.42.255.0/27
  • Grupo de recursos: TestRG4
  • Local: Oeste dos EUA
  • GatewayName: VNet4GW
  • IP público: VNet4GWIP
  • Tipo de VPN: RouteBased
  • Conexão: VNet4toVNet1

Etapa 1: conectar-se à sua assinatura

Se você quiser usar a CLI do Azure localmente (em vez de usar o Azure CloudShell), use as etapas a seguir para se conectar à sua assinatura do Azure. Se você estiver usando o CloudShell, vá para a próxima seção.

  1. Inicie sessão na sua assinatura do Azure com o comando az login e siga as instruções na tela. Para obter mais informações sobre como conectar-se, confira Introdução à CLI do Azure.

    az login
    
  2. Se tiver mais de uma assinatura do Azure, liste as assinaturas para a conta.

    az account list --all
    
  3. Especifique a assinatura que você deseja usar.

    az account set --subscription <replace_with_your_subscription_id>
    

Etapa 2: Criar e configurar o TestVNet1

  1. Crie um grupos de recursos.

    az group create -n TestRG1  -l eastus
    
  2. Crie TestVNet1 e as sub-redes para TestVNet1 usando o comando az network vnet create. O exemplo a seguir cria uma rede virtual chamada TestVNet1 e uma sub-rede chamada FrontEnd.

    az network vnet create \
      -n TestVNet1 \
      -g TestRG1 \
      -l eastus \
      --address-prefix 10.11.0.0/16 \
      --subnet-name Frontend \
      --subnet-prefix 10.11.0.0/24
    
  3. Crie outro espaço de endereço para a sub-rede de back-end. Observe que nesta etapa, especificamos o espaço de endereço criado anteriormente e outro espaço de endereço que queremos adicionar. Isso ocorre porque o comando az network vnet update substitui as configurações anteriores. Não deixe de especificar todos os prefixos de endereço ao usar o comando.

    az network vnet update \
       -n TestVNet1 \
       --address-prefixes 10.11.0.0/16 10.12.0.0/16 \
       -g TestRG1
    
  4. Crie a sub-rede de back-end.

    az network vnet subnet create \
       --vnet-name TestVNet1 \
       -n BackEnd \
       -g TestRG1 \
       --address-prefix 10.12.0.0/24
    
  5. Crie a sub-rede de gateway. Verifique se a sub-rede de gateway se chama 'GatewaySubnet'. Esse nome é obrigatório. Neste exemplo, a sub-rede de gateway está usando um /27. Embora seja possível criar uma sub-rede de gateway tão pequena quanto /29, recomendamos que você crie uma sub-rede maior que inclua mais endereços selecionando pelo menos /28 ou /27. Isso permitirá que endereços suficientes acomodem as possíveis configurações adicionais que você queira no futuro.

    az network vnet subnet create \
       --vnet-name TestVNet1 \
       -n GatewaySubnet \
       -g TestRG1 \
       --address-prefix 10.12.255.0/27
    
  6. Um gateway de VPN deve ter um endereço IP público. O endereço IP público é alocado para o gateway de VPN criado para a rede virtual. Use o exemplo a seguir para solicitar um endereço IP público usando o comando az network public-ip create:

    az network public-ip create \
     -g TestRG1 \
     -n VNet1GWIP1 \
     --sku Standard \
     --allocation-method Static \
     --l eastus
    
  7. Crie o gateway de rede virtual para TestVNet1 usando o comando az network vnet-gateway create. Se você executar esse comando usando o parâmetro '--no-wait', você não receberá nenhum feedback ou saída. O parâmetro '--no-wait' permite que o gateway seja criado em segundo plano. Isso não significa que o gateway de VPN conclua a criação imediatamente. Criar um gateway pode levar 45 minutos ou mais, dependendo do SKU de gateway utilizado.

    az network vnet-gateway create \
      --name VNet1GW \
      --public-ip-address VNet1GWIP \
      --resource-group TestRG1 \
      --vnet TestVNet1 \
      --gateway-type Vpn \
      --sku VpnGw2 \
      --vpn-gateway-generation Generation2 \
      --no-wait
    

Etapa 3: criar e configurar TestVNet4

  1. Crie um grupos de recursos.

    az group create -n TestRG4 -l westus
    
  2. Crie a TestVNet4.

    az network vnet create \
      -n TestVNet4 \
      -g TestRG4 \
      -l westus \
      --address-prefix 10.41.0.0/16 \
      --subnet-name Frontend \
      --subnet-prefix 10.41.0.0/24
    
  3. Crie sub-redes adicionais para TestVNet4.

    az network vnet update \
       -n TestVNet4 \
       --address-prefixes 10.41.0.0/16 10.42.0.0/16 \
       -g TestRG4 \
    
    az network vnet subnet create \
       --vnet-name TestVNet4 \
       -n BackEnd \
       -g TestRG4 \
       --address-prefix 10.42.0.0/24 
    
  4. Crie a sub-rede de gateway.

    az network vnet subnet create \
      --vnet-name TestVNet4 \
      -n GatewaySubnet \
      -g TestRG4 \
      --address-prefix 10.42.255.0/27 
    
  5. Solicite um endereço IP público.

    az network public-ip create \
     -g TestRG4 \
     --n VNet4GWIP \
     --sku Standard \
     --allocation-method Static \
     --l westus
    
  6. Crie o gateway de rede virtual TestVNet4.

    az network vnet-gateway create \
      -n VNet4GW \
      -l westus \
      --public-ip-address VNet4GWIP \
      -g TestRG4 \
      --vnet TestVNet4 \
      --gateway-type Vpn \
      --sku VpnGw2 \
      --vpn-gateway-generation Generation2 \
      --no-wait
    

Etapa 4: criar as conexões

Agora, você tem duas redes virtuais com gateways de VPN. A próxima etapa é criar conexões de gateway de VPN entre os gateways de rede virtual. Se você usou os exemplos anteriores, seus gateways de VNet estão em grupos de recursos diferentes. Quando os gateways estiverem em diferentes grupos de recursos, você precisará identificar e especificar as IDs de recurso para cada gateway ao fazer uma conexão. Se suas redes virtuais estão no mesmo grupo de recursos, você poderá usar o segundo conjunto de instruções porque não precisará especificar as IDs de recurso.

Para conectar redes virtuais que residem em diferentes grupos de recursos

  1. Obtenha a ID de recurso de VNet1GW na saída do seguinte comando:

    az network vnet-gateway show -n VNet1GW -g TestRG1
    

    Na saída, localize a linha "id:". Os valores entre aspas são necessários para criar a conexão na próxima seção. Copie esses valores para um editor de texto, como o bloco de notas, para que você possa colá-los facilmente quando criar sua conexão.

    Exemplo de saída:

    "activeActive": false, 
    "bgpSettings": { 
     "asn": 65515, 
     "bgpPeeringAddress": "10.12.255.30", 
     "peerWeight": 0 
    }, 
    "enableBgp": false, 
    "etag": "W/\"ecb42bc5-c176-44e1-802f-b0ce2962ac04\"", 
    "gatewayDefaultSite": null, 
    "gatewayType": "Vpn", 
    "id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW", 
    "ipConfigurations":
    

    Copie os valores após "id": entre aspas.

    "id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
    
  2. Obtenha a ID de recurso de VNet4GW e copie os valores em um editor de texto.

    az network vnet-gateway show -n VNet4GW -g TestRG4
    
  3. Crie a conexão de TestVNet1 a TestVNet4. Nesta etapa, você criará a conexão de TestVNet1 para TestVNet4. Existe uma chave compartilhada referenciada nos exemplos. Você pode usar seus próprios valores para a chave compartilhada. O importante é que a chave compartilhada deve corresponder em ambas as conexões. A criação de uma conexão leva alguns minutos para ser concluída.

    az network vpn-connection create \
       -n VNet1ToVNet4 \
       -g TestRG1 \
       --vnet-gateway1 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW \
       -l eastus \
       --shared-key "aabbcc" \
       --vnet-gateway2 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG4/providers/Microsoft.Network/virtualNetworkGateways/VNet4GW 
    
  4. Crie a conexão de TestVNet4 a TestVNet1. Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet4 para TestVNet1. Verifique se que as chaves compartilhadas correspondem. A conexão leva alguns minutos para ser estabelecida.

    az network vpn-connection create \
       -n VNet4ToVNet1 \
       -g TestRG4 \
       --vnet-gateway1 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG4/providers/Microsoft.Network/virtualNetworkGateways/VNet4GW \
       -l westus \
       --shared-key "aabbcc" \
       --vnet-gateway2 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW
    
  5. Verifique as conexões. Confira Verificar a conexão.

Para conectar redes virtuais que residem no mesmo grupo de recursos

  1. Crie a conexão de TestVNet1 a TestVNet4. Nesta etapa, você criará a conexão de TestVNet1 para TestVNet4. Observe que os grupos de recursos são os mesmos nos exemplos. Você também verá uma chave compartilhada referenciada nos exemplos. Você pode usar seus próprios valores para a chave compartilhada. No entanto, a chave compartilhada deve corresponder às duas conexões. A criação de uma conexão leva alguns minutos para ser concluída.

    az network vpn-connection create \
       -n VNet1ToVNet4 \
       -g TestRG1 \
       --vnet-gateway1 VNet1GW \
       -l eastus \
       --shared-key "eeffgg" \
       --vnet-gateway2 VNet4GW
    
  2. Crie a conexão de TestVNet4 a TestVNet1. Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet4 para TestVNet1. Verifique se que as chaves compartilhadas correspondem. A conexão leva alguns minutos para ser estabelecida.

    az network vpn-connection create \
       -n VNet4ToVNet1 \
       -g TestRG1 \
       --vnet-gateway1 VNet4GW \
       -l eastus \
       --shared-key "eeffgg" \
       --vnet-gateway2 VNet1GW
    
  3. Verifique as conexões. Confira Verificar a conexão.

Conectar as VNets que estão em assinaturas diferentes

Nesse cenário, conecte TestVNet1 e TestVNet5. As redes virtuais residem em assinaturas diferentes. As assinaturas não precisam ser associadas ao mesmo locatário. As etapas para essa configuração adicionam outra conexão de VNet para VNet para se conectar TestVNet1 a TestVNet5.

Etapa 5: criar e configurar o TestVNet1

Essas instruções continuam das etapas nas seções anteriores. Você deve concluir a Etapa 1 e a Etapa 2 para criar e configurar o TestVNet1 e o Gateway de VPN para TestVNet1. Para essa configuração, você não precisa criar a TestVNet4 da seção anterior, embora se você criá-la, ela não entrará em conflito com estas etapas: o tráfego de TestVNet4 não roteia para TestVNet5. Depois de concluir as etapas 1 e 2, continue com a etapa 6.

Etapa 6: verificar os intervalos de endereços IP

Ao criar conexões adicionais, é importante verificar se o espaço de endereço IP da nova rede virtual não se sobrepõe a nenhum dos outros intervalos de VNet ou de intervalos de gateway de rede local. Para este exercício, você pode usar os seguintes valores para TestVNet5:

Valores para TestVNet5:

  • Nome da rede virtual: TestVNet5
  • Grupo de recursos: TestRG5
  • Local: Leste do Japão
  • TestVNet5: 10.51.0.0/16 & 10.52.0.0/16
  • FrontEnd: 10.51.0.0/24
  • BackEnd: 10.52.0.0/24
  • GatewaySubnet: 10.52.255.0/27
  • GatewayName: VNet5GW
  • IP público: VNet5GWIP
  • Tipo de VPN: RouteBased
  • Connection: VNet5toVNet1
  • ConnectionType: VNet2VNet

Etapa 7: criar e configurar TestVNet5

Esta etapa deve ser feita no contexto da nova assinatura, Assinatura 5. Esta parte pode ser executada pelo administrador em uma organização diferente que possui a assinatura. Para alternar entre assinaturas, use az account list --all para listar as assinaturas disponíveis para sua conta e use az account set --subscription <subscriptionID> para alternar para a assinatura que você deseja usar.

  1. Verifique se você está conectado à Assinatura 5 e crie um grupo de recursos.

    az group create -n TestRG5  -l japaneast
    
  2. Crie a TestVNet5.

    az network vnet create \
       -n TestVNet5 \
       -g TestRG5 \
       --address-prefix 10.51.0.0/16 \
       -l japaneast \
       --subnet-name FrontEnd \
       --subnet-prefix 10.51.0.0/24
    
  3. Adicione sub-redes.

    az network vnet update \
       -n TestVNet5 \
       --address-prefixes 10.51.0.0/16 10.52.0.0/16 \
       -g TestRG5 \
    
    az network vnet subnet create \
       --vnet-name TestVNet5 \
       -n BackEnd \
       -g TestRG5 \
       --address-prefix 10.52.0.0/24
    
  4. Adicione a sub-rede de gateway.

    az network vnet subnet create \
       --vnet-name TestVNet5 \
       -n GatewaySubnet \
       -g TestRG5 \
       --address-prefix 10.52.255.0/27
    
  5. Solicite um endereço IP público.

    az network public-ip create \
       -g TestRG5 \
       --n VNet5GWIP \
       --sku Standard \
       --allocation-method Static \
       --l japaneast
    
  6. Criar o gateway TestVNet5

    az network vnet-gateway create \
      -n VNet5GW \
      -l japaneast \
      --public-ip-address VNet5GWIP \
      -g TestRG5 \
      --vnet TestVNet5 \
      --gateway-type Vpn \
      --sku VpnGw2 \
      --vpn-gateway-generation Generation2 \
      --no-wait
    

Etapa 8: criar as conexões

Esta etapa é dividida em duas sessões da CLI marcadas como [Assinatura 1] e [Assinatura 5] porque os gateways estão em assinaturas diferentes. Para alternar entre assinaturas, use az account list --all para listar as assinaturas disponíveis para sua conta e use az account set --subscription <subscriptionID> para alternar para a assinatura que você deseja usar.

  1. [Assinatura 1] Entre e conecte-se à Assinatura 1. Execute o seguinte comando para obter o nome e a ID do Gateway da saída:

    az network vnet-gateway show -n VNet1GW -g TestRG1
    

    Copie a saída para id:. Envie a ID e o nome do gateway de rede virtual (VNet1GW) para o administrador da Assinatura 5 por email ou outro método.

    Exemplo de saída:

    "id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
    
  2. [Assinatura 5] Entre e conecte-se à Assinatura 5. Execute o seguinte comando para obter o nome e a ID do Gateway da saída:

    az network vnet-gateway show -n VNet5GW -g TestRG5
    

    Copie a saída para id:. Envie a ID e o nome do gateway de rede virtual (VNet5GW) para o administrador da Assinatura 1 por email ou outro método.

  3. [Assinatura 1] Nesta etapa, você criará a conexão de TestVNet1 para TestVNet5. Você pode usar seus próprios valores para a chave compartilhada. No entanto, a chave compartilhada deve corresponder às duas conexões. Criar uma conexão pode levar alguns minutos para ser concluída. Conecte-se à Assinatura 1.

    az network vpn-connection create \
       -n VNet1ToVNet5 \
       -g TestRG1 \
       --vnet-gateway1 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW \
       -l eastus \
       --shared-key "eeffgg" \
       --vnet-gateway2 /subscriptions/e7e33b39-fe28-4822-b65c-a4db8bbff7cb/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW
    
  4. [Assinatura 5] Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet5 para TestVNet1. Verifique se as chaves compartilhadas correspondem e se você se conectou à Assinatura 5.

    az network vpn-connection create \
       -n VNet5ToVNet1 \
       -g TestRG5 \
       --vnet-gateway1 /subscriptions/e7e33b39-fe28-4822-b65c-a4db8bbff7cb/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW \
       -l japaneast \
       --shared-key "eeffgg" \
       --vnet-gateway2 /subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW
    

Verificar as conexões

Importante

Ao trabalhar com sub-redes de gateway, evite a associação de um grupo de segurança de rede (NSG) à sub-rede de gateway. A associação de um grupo de segurança de rede a essa sub-rede pode fazer com que seu Gateway de rede virtual (gateways VPN e Express Route) pare de funcionar conforme o esperado. Para obter mais informações sobre grupos de segurança de rede, confira O que é um grupo de segurança de rede?.

Você pode verificar se a conexão foi bem-sucedida usando o comando az network vpn-connection show. No exemplo, '--name' refere-se ao nome da conexão que deseja testar. Quando a conexão ainda está sendo estabelecida, seu status de conexão mostra "Conectando". Quando a conexão for estabelecida, o status será alterado para "Conectado". Modifique o exemplo a seguir com os valores do seu ambiente.

az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>

Perguntas Frequentes sobre VNet a VNet

Consulte as perguntas frequentes sobre o Gateway de VPN para as perguntas frequentes sobre a conexão VNet a VNet.

Próximas etapas