Configurar uma ligação de gateway de VPN de VNet a VNet com a CLI do Azure
Este artigo ajuda-o a ligar redes virtuais com o tipo de ligação VNet a VNet. As redes virtuais podem estar nas mesmas regiões ou em regiões diferentes e pertencer às mesmas subscrições ou a subscrições diferentes. Ao conectar redes virtuais de assinaturas diferentes, as assinaturas não precisam ser associadas ao mesmo locatário.
Neste exercício, você cria as redes virtuais (VNets) e gateways VPN necessários. Temos etapas para conectar redes virtuais dentro da mesma assinatura, bem como etapas e comandos para o cenário mais complicado de conectar redes virtuais em assinaturas diferentes.
O comando da CLI do Azure para criar uma conexão é az network vpn-connection. Se você estiver conectando redes virtuais de assinaturas diferentes, use as etapas neste artigo ou no artigo do PowerShell . Se você já tiver redes virtuais que deseja conectar e elas estiverem na mesma assinatura, convém usar as etapas do portal do Azure porque o processo é menos complicado. Observe que não é possível conectar redes virtuais de assinaturas diferentes usando o portal do Azure.
Sobre a ligação de VNets
Existem múltiplas formas de ligar VNets. As seções a seguir descrevem diferentes maneiras de conectar redes virtuais.
VNet a VNet
Configurar uma ligação VNet a VNet é uma boa forma de ligar facilmente as VNets. Ligar uma rede virtual a outra com o tipo de ligação VNet a VNet é semelhante a criar uma ligação IPsec Site a Site a uma localização no local. Ambos os tipos de conectividade utilizam um gateway de VPN para fornecer um túnel seguro através de IPsec/IKE e funcionam da mesma forma quando estão a comunicar. A diferença entre os tipos de ligação é a forma como o gateway de rede local é configurado. Quando você cria uma conexão VNet-to-VNet, não vê o espaço de endereço do gateway de rede local. É criado e preenchido automaticamente. Se atualizar o espaço de endereços de uma VNet, a outra VNet reconhece automaticamente que deve efetuar o encaminhamento para o espaço de endereços atualizado. Criar uma conexão VNet-to-VNet normalmente é mais rápido e fácil do que criar uma conexão Site-to-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.
Ligar VNets utilizando os passos de Site a Site (IPsec)
Se você estiver trabalhando com uma configuração de rede complicada, talvez prefira conectar suas redes virtuais usando as etapas Site-to-Site , em vez das etapas VNet-to-VNet. Quando utilizar os passos de Site a Site, pode criar e configurar manualmente os gateways de rede local. O gateway de rede local para cada VNet trata a outra VNet como um site local. Isso permite especificar espaços de endereço adicionais para o gateway de rede local para rotear o tráfego. Se o espaço de endereço para uma VNet for alterado, terá de atualizar manualmente o gateway de rede local correspondente para refletir a alteração. Ele não é atualizado automaticamente.
VNet peering
Talvez você queira considerar conectar suas redes virtuais usando o emparelhamento de redes virtuais. O emparelhamento de rede virtual não usa um gateway VPN e tem restrições diferentes. Além disso, o preço do VNet peering é calculado de forma diferente que os preços dos Gateways VPN de VNet a VNet. Para obter mais informações, veja VNet peering.
Porquê criar uma ligação VNet a VNet?
Talvez você queira conectar redes virtuais usando uma conexão VNet-to-VNet pelos seguintes motivos:
Geopresença e georredundância entre várias regiões
- Pode configurar a sua própria georreplicação ou sincronização com uma conetividade segura sem passar por pontos finais com acesso à Internet.
- Com o Gestor de Tráfego e o Balanceador de Carga do Azure, pode configurar uma carga de trabalho de elevada disponibilidade com georredundância em várias regiões do Azure. Um exemplo importante consiste em configurar o SQL Always On com Grupos de Disponibilidade propagando-se em várias regiões do Azure.
Aplicações multicamadas regionais com isolamento ou limites administrativos
- Na mesma região, pode configurar aplicações de várias camadas com várias redes virtuais ligadas em conjunto devido a requisitos de isolamento ou administrativos.
A comunicação VNet a VNet pode ser combinada com configurações multilocal. Este procedimento permite-lhe estabelecer topologias de rede que combinam uma conetividade em vários locais com uma conetividade de rede intervirtual.
Que passos de VNet a VNet devo utilizar?
Neste artigo, verá dois conjuntos de passos de ligação VNet a VNet diferentes. Um conjunto de passos para VNets que residem na mesma subscrição e outro para VNets que residem em diferentes subscrições.
Neste exercício, pode combinar configurações ou escolher apenas aquela com que quer trabalhar. Todas as configurações utilizam o tipo de ligação VNet a VNet. O tráfego de rede flui entre as VNets que estão ligadas diretamente entre si.
Ligar VNets que estão na mesma subscrição
Antes de começar
Antes de começar, instale a versão mais recente dos comandos da CLI (2.0 ou posterior). Para obter informações sobre como instalar os comandos da CLI, veja Instalar a CLI do Azure.
Planear os intervalos de endereços IP
Nos passos seguintes, vai criar duas redes virtuais, juntamente com as respetivas sub-redes de gateway e configurações. Depois, vai criar uma ligação de VPN entre as duas VNets. É importante planear os intervalos de endereços IP da configuração da rede. Nota: precisa confirmar que nenhum dos intervalos de VNet ou intervalos de rede local se sobrepõe de modo algum. Nesses exemplos, não incluímos um servidor DNS. Se pretender a resolução de nomes para as suas redes virtuais, veja Name resolution (Resolução de nomes).
Utilizamos os seguintes valores nos exemplos:
Valores da TestVNet1:
- Nome da VNet: TestVNet1
- Grupo de Recursos: TestRG1
- Localização: E.U.A. Leste
- TestVNet1: 10.11.0.0/16 e 10.12.0.0/16
- Front-End: 10.11.0.0/24
- Back-End: 10.12.0.0/24
- GatewaySubnet: 10.12.255.0/27
- GatewayName: VNet1GW
- IP Público: VNet1GWIP
- VPNType: RouteBased
- Ligação (1 a 4): VNet1toVNet4
- Ligação(1 a 5): VNet1aVNet5 (Para VNets em subscrições diferentes)
Valores da TestVNet4:
- Nome da VNet: TestVNet4
- TestVNet2: 10.41.0.0/16 e 10.42.0.0/16
- Front-End: 10.41.0.0/24
- Back-End: 10.42.0.0/24
- GatewaySubnet: 10.42.255.0/27
- Grupo de Recursos: TestRG4
- Localização: E.U.A. Oeste
- GatewayName: VNet4GW
- IP Público: VNet4GWIP
- Tipo de VPN: RouteBased
- Ligação: VNet4toVNet1
Passo 1 - Ligar à sua subscrição
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, pule para a próxima seção.
Inicie sessão na sua subscrição do Azure com o comando az login e siga as instruções no ecrã. Para obter mais informações sobre o início de sessão, veja Introdução à CLI do Azure.
az login
Se tiver mais de uma subscrição do Azure, liste as subscrições da conta.
az account list --all
Especifique a subscrição que pretende utilizar.
az account set --subscription <replace_with_your_subscription_id>
Passo 2 - Criar e configurar a TestVNet1
Crie um grupo de recursos.
az group create -n TestRG1 -l eastus
Crie TestVNet1 e as sub-redes para TestVNet1 usando o comando az network vnet create . Este exemplo cria uma rede virtual com o nome TestVNet1 e uma sub-rede, com o nome 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
Crie um espaço de endereços adicional para a sub-rede do back-end. Observe que, nesta etapa, especificamos o espaço de endereço que criamos anteriormente e o espaço de endereço adicional que queremos adicionar. Isto deve-se ao facto de o comando az network vnet update substituir as definições anteriores. Confirme que especifica todos os prefixos de endereços quando utilizar este comando.
az network vnet update \ -n TestVNet1 \ --address-prefixes 10.11.0.0/16 10.12.0.0/16 \ -g TestRG1
Crie a sub-rede do back-end.
az network vnet subnet create \ --vnet-name TestVNet1 \ -n BackEnd \ -g TestRG1 \ --address-prefix 10.12.0.0/24
Crie a sub-rede de gateway. Repare que o nome da sub-rede de gateway é “GatewaySubnet”. Este nome é obrigatório. Neste exemplo, a sub-rede do gateway está a utilizar 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á endereços suficientes para acomodar possíveis configurações adicionais que você pode querer no futuro.
az network vnet subnet create \ --vnet-name TestVNet1 \ -n GatewaySubnet \ -g TestRG1 \ --address-prefix 10.12.255.0/27
Um gateway VPN deve ter um endereço IP público. O endereço IP público é alocado para o gateway VPN que você cria para sua 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
Crie o gateway de rede virtual para TestVNet1 usando o comando az network vnet-gateway create . Se executar este comando utilizando o parâmetro "--no-wait", não verá quaisquer comentários ou saída. Este parâmetro permite que o gateway seja criado em segundo plano. Isso não significa que o gateway VPN termine de criar imediatamente. Muitas vezes, a criação de um gateway demora 45 minutos ou mais, dependendo do SKU de gateway que utilizar.
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
Passo 3 – Criar e configurar TestVNet4
Crie um grupo de recursos.
az group create -n TestRG4 -l westus
Criar 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
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
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
Peça um Endereço IP público.
az network public-ip create \ -g TestRG4 \ --n VNet4GWIP \ --sku Standard \ --allocation-method Static \ --l westus
Crie um gateway da 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
Passo 4 - Criar as ligações
Agora, tem duas VNets com gateways de VPN. O passo seguinte é criar ligações do gateway de VPN entre os gateways das redes virtuais. Se você usou os exemplos anteriores, seus gateways de rede virtual estão em grupos de recursos diferentes. Quando os gateways estão em diferentes grupos de recursos, tem de identificar e especificar os IDs dos recurso de cada gateway durante a criação das ligações. Se as VNets estiverem no mesmo grupo de recursos, pode utilizar o segundo conjunto de instruções, porque não é necessário especificar os IDs dos recursos.
Para ligar VNets que residem em diferentes grupos de recursos
Obtenha o ID de Recurso de VNet1GW a partir da saída do comando seguinte:
az network vnet-gateway show -n VNet1GW -g TestRG1
Na saída, localize a
"id:"
linha. Os valores dentro das aspas são necessários para criar a ligação na secção seguinte. Copie estes valores para um editor de texto, como o Notepad, para colá-los facilmente quando estiver a criar a ligação.Saída de exemplo:
"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 depois
"id":
dentro das aspas."id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
Obtenha o ID de Recurso de VNet4GW e copie os valores para um editor de texto.
az network vnet-gateway show -n VNet4GW -g TestRG4
Criar a ligação da TestVNet1 para a TestVNet4. Neste passo, vai criar a ligação da TestVNet1 à TestVNet4. Há uma chave compartilhada referenciada nos exemplos. Pode utilizar os seus próprios valores para a chave partilhada. Importante: a chave partilhada tem de corresponder a ambas as ligações. A criação das ligações demora pouco tempo.
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
Criar a ligação da TestVNet4 para a TestVNet1. Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet4 para TestVNet1. Verifique se as chaves partilhadas correspondem. A ligação leva algum tempo até 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
Verifique as suas ligações. Veja Verificar a ligação.
Para ligar VNets que residem no mesmo grupo de recursos
Criar a ligação da TestVNet1 para a TestVNet4. Neste passo, vai criar a ligação da TestVNet1 à TestVNet4. Repare que os grupos de recursos são iguais nos exemplos. Também pode ver uma referência a uma chave partilhada nos exemplos. Pode utilizar os seus próprios valores na chave partilhada. Contudo, esta tem de corresponder em ambas as ligações. A criação das ligações demora pouco tempo.
az network vpn-connection create \ -n VNet1ToVNet4 \ -g TestRG1 \ --vnet-gateway1 VNet1GW \ -l eastus \ --shared-key "eeffgg" \ --vnet-gateway2 VNet4GW
Criar a ligação da TestVNet4 para a TestVNet1. Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet4 para TestVNet1. Verifique se as chaves partilhadas correspondem. A ligação leva algum tempo até ser estabelecida.
az network vpn-connection create \ -n VNet4ToVNet1 \ -g TestRG1 \ --vnet-gateway1 VNet4GW \ -l eastus \ --shared-key "eeffgg" \ --vnet-gateway2 VNet1GW
Verifique as suas ligações. Veja Verificar a ligação.
Ligar VNets que estão em subscrições diferentes
Neste cenário, vai ligar TestVNet1 e TestVNet5. As VNets residem em subscrições diferentes. As assinaturas não precisam estar associadas ao mesmo locatário. Os passos desta configuração acrescentam uma ligação de VNet para VNet adicional, de modo a ligar a TestVNet1 à TestVNet5.
Passo 5 - Criar e configurar TestVNet1
Estas instruções vêm no seguimento dos passos das secções anteriores. Tem de concluir o Passo 1 e o Passo 2 para criar e configurar a TestVNet1 e o VPN Gateway da TestVNet1. Para essa configuração, não é necessário criar TestVNet4 a partir da seção anterior, embora se você criá-lo, ele não entrará em conflito com estas etapas: o tráfego de TestVNet4 não é roteado para TestVNet5. Depois de concluir os Passos 1 e 2, continue com o Passo 6.
Passo 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 seus outros intervalos de VNet ou intervalos de gateway de rede local. Para este exercício, pode utilizar os seguintes valores para a TestVNet5:
Valores da TestVNet5:
- Nome da VNet: TestVNet5
- Grupo de Recursos: TestRG5
- Localização: Leste do Japão
- TestVNet5: 10.51.0.0/16 e 10.52.0.0/16
- Front-End: 10.51.0.0/24
- Back-End: 10.52.0.0/24
- Sub-rede Gateway: 10.52.255.0/27
- GatewayName: VNet5GW
- IP Público: VNet5GWIP
- Tipo de VPN: RouteBased
- Ligação: VNet5toVNet1
- ConnectionType: VNet2VNet
Passo 7 – Criar e configurar TestVNet5
Este passo tem de ser realizado no contexto da subscrição nova, a Subscrição 5. Essa parte pode ser executada pelo administrador em uma organização diferente que possui a assinatura. Para alternar entre subscrições, utilize az account list --all
para listar as subscrições disponíveis para a sua conta e, em seguida, utilize az account set --subscription <subscriptionID>
para mudar para a subscrição que pretende utilizar.
Certifique-se de que está ligado à Subscrição 5 e, em seguida, crie um grupo de recursos.
az group create -n TestRG5 -l japaneast
Criar 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
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
Adicione a sub-rede do gateway.
az network vnet subnet create \ --vnet-name TestVNet5 \ -n GatewaySubnet \ -g TestRG5 \ --address-prefix 10.52.255.0/27
Solicitar um endereço IP público.
az network public-ip create \ -g TestRG5 \ --n VNet5GWIP \ --sku Standard \ --allocation-method Static \ --l japaneast
Criar o gateway da 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
Passo 8 - Criar as ligações
Este passo foi dividido em duas sessões da CLI marcadas como [Subscription 1] e [Subscription 5], porque os gateways estão nestas duas subscrições diferentes. Para alternar entre subscrições, utilize az account list --all
para listar as subscrições disponíveis para a sua conta e, em seguida, utilize az account set --subscription <subscriptionID>
para mudar para a subscrição que pretende utilizar.
[Subscrição 1] Inicie sessão e ligue-se à Subscrição 1. Execute o comando seguinte para obter o nome e o ID do Gateway a partir da saída:
az network vnet-gateway show -n VNet1GW -g TestRG1
Copie a saída para
id:
. Envie o ID e o nome do gateway de VNet (VNet1GW) ao administrador da Subscrição 5 por e-mail ou outro método.Saída de exemplo:
"id": "/subscriptions/d6ff83d6-713d-41f6-a025-5eb76334fda9/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"
[Subscrição 5] Inicie sessão e ligue-se à Subscrição 5. Execute o comando seguinte para obter o nome e o ID do Gateway a partir da saída:
az network vnet-gateway show -n VNet5GW -g TestRG5
Copie a saída para
id:
. Envie o ID e o nome do gateway de VNet (VNet1GW) ao administrador da Subscrição 5 por e-mail ou outro método.[Subscrição 1] Neste passo, vai criar a ligação de TestVNet1 a TestVNet5. Pode utilizar os seus próprios valores na chave partilhada. Contudo, esta tem de corresponder em ambas as ligações. A criação de uma ligação pode demorar algum tempo. Verifique se estabelece ligação à Subscrição 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
[Subscrição 5] Esta etapa é semelhante à etapa anterior, exceto que você está criando a conexão de TestVNet5 para TestVNet1. Certifique-se de que as chaves partilhadas correspondem e que se liga à Subscrição 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 ligações
Importante
Não há suporte para NSGs (grupos de segurança de rede) na sub-rede do gateway. Associar um grupo de segurança de rede a essa sub-rede pode fazer com que seu gateway de rede virtual (gateways VPN e ExpressRoute) pare de funcionar conforme o esperado. Para obter mais informações sobre os grupos de segurança de rede, veja O que é um grupo de segurança de rede (NSG)?
Pode verificar se a sua ligação foi concluída com êxito com o comando az network vpn-connection show. No exemplo, '--name' refere-se ao nome da conexão que você deseja testar. Quando a ligação ainda estiver a ser estabelecida, o respetivo estado de ligação mostra "A ligar". Quando a ligação estiver estabelecido, o estado muda para "Ligado". Modifique o exemplo a seguir com os valores para seu ambiente.
az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>
FAQ da ligação VNet a VNet
Consulte as Perguntas frequentes sobre o Gateway de VPN para perguntas frequentes sobre VNet-to-VNet.
Próximos passos
- Assim que a ligação estiver concluída, pode adicionar máquinas virtuais às redes virtuais. Para obter mais informações, veja a documentação das Máquinas Virtuais.
- Para obter informações sobre o BGP, veja a Descrição Geral do BGP e Como configurar o BGP.