Criar uma rede virtual com uma conexão VPN site a site usando a CLI

Este artigo mostra como usar a CLI do Azure para criar uma conexão de gateway de VPN site a site de sua rede local para a rede virtual. As etapas neste artigo se aplicam ao modelo de implantação do Resource Manager. 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:

Site-to-site VPN Gateway cross-premises connection diagram for CLI article.

Uma conexão de gateway de VPN site a site é usada para conectar a rede local a uma rede virtual do Azure por um túnel VPN IPsec/IKE (IKEv1 ou IKEv2). Esse tipo de conexão exige um dispositivo VPN localizado no local que tenha um endereço IP público voltado para o exterior atribuído a ele. Para saber mais sobre os gateways de VPN, veja Sobre o gateway de VPN.

Antes de começar

Verifique se você atende aos seguintes critérios antes de iniciar a configuração:

  • Verifique se você possui um dispositivo VPN compatível e alguém que possa configurá-lo. Para obter mais informações sobre dispositivos VPN compatíveis e a configuração de dispositivo, confira Sobre dispositivos VPN.
  • Verifique se você possui um endereço IPv4 público voltado para o exterior para seu dispositivo VPN.
  • Se você não estiver familiarizado com os intervalos de endereço IP localizados na configuração de rede local, fale com alguém que possa lhe dar essa informação. Ao criar essa configuração, você deve especificar os prefixos de intervalo de endereços IP que o Azure roteará para seu local. Nenhuma das sub-redes da rede local podem se sobrepor às sub-redes de rede virtual às quais você deseja se conectar.
  • Este artigo exige a versão 2.0 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Valores de exemplo

Você pode usar os seguintes valores para criar um ambiente de teste ou fazer referência a esses valores para entender melhor os exemplos neste artigo:

#Example values

VnetName                = VNet1 
ResourceGroup           = TestRG1 
Location                = eastus 
AddressSpace            = 10.1.0.0/16 
SubnetName              = Frontend
Subnet                  = 10.1.0.0/24 
GatewaySubnet           = 10.1.255.0/27 
LocalNetworkGatewayName = Site1
LNG Public IP           = <On-premises VPN device IP address>
LocalAddrPrefix1        = 10.0.0.0/24
LocalAddrPrefix2        = 20.0.0.0/24   
GatewayName             = VNet1GW 
PublicIP                = VNet1GWIP 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite2

1. Conectar-se com as suas assinaturas

Se você optar por executar a CLI localmente, conecte-se à sua assinatura. Se você estiver usando o Azure Cloud Shell no navegador, não precisa se conectar à sua assinatura. Você se conectará automaticamente no Azure Cloud Shell. No entanto, talvez seja necessário verificar se você está usando a assinatura correta depois de se conectar.

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

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

az account list --all

Especifique a assinatura que você deseja usar.

az account set --subscription <replace_with_your_subscription_id>

2. Criar um grupo de recursos

O exemplo a seguir cria um grupo de recursos denominado 'TestRG1' no local 'eastus'. Se já tiver um grupo de recursos na região em que deseja criar a rede virtual, você poderá usá-lo.

az group create --name TestRG --location eastus

3. Criar uma rede virtual

Se você ainda não tiver uma rede virtual, crie uma usando o comando az network vnet create. Ao criar uma rede virtual, certifique-se de que os espaços de endereço que você especificar não se sobreponham nenhum espaço de endereço que você tenha na rede local.

Observação

Para que essa rede virtual conecte a um local, é necessário coordenar com o administrador de rede local para que ele consiga um intervalo de endereços IP que você pode usar especificamente para essa rede virtual. Se um intervalo de endereços duplicado existir em ambos os lados da conexão de VPN, o tráfego não será roteado da maneira esperada. Além disso, se você deseja se conectar esta rede virtual a outra rede virtual, o espaço de endereços não pode sobrepor outra rede virtual. Tome cuidado e planeje sua configuração de rede de forma adequada.

O exemplo a seguir cria uma rede virtual chamada ''VNet1'' e uma sub-rede ''Subrede 1''.

az network vnet create --name VNet1 --resource-group TestRG1 --address-prefix 10.1.0.0/16 --location eastus --subnet-name Subnet1 --subnet-prefix 10.1.0.0/24

4. Criar a sub-rede de gateway

O gateway de rede virtual usa uma sub-rede específica denominada sub-rede de gateway. O gateway faz parte do intervalo de endereços IP de rede virtual que você especifica ao configurar sua rede virtual. Contém os endereços IP usados pelos recursos e serviços do gateway de rede virtual. A sub-rede deve ser denominada "GatewaySubnet" para que o Azure implante os recursos de gateway. Você não pode especificar uma sub-rede diferente para implantação dos recursos de gateway. Se você não tiver uma sub-rede denominada "GatewaySubnet", quando você criar o gateway de VPN, ele falhará.

Quando você cria a sub-rede de gateway, pode especificar o número de endereços IP que contém a sub-rede. O número de endereços IP necessários depende da configuração do gateway VPN que você deseja criar. Algumas configurações exigem mais endereços IP do que outras. Recomendamos que você crie uma sub-rede de gateways que usa um /27 ou /28.

Se você vir um erro que especifica que o espaço de endereço se sobrepõe a uma sub-rede, ou que a sub-rede não está contida no espaço de endereço para sua rede virtual, verifique o intervalo de endereços de VNet. Talvez você não tenha endereços IP suficientes disponíveis no intervalo de endereços que você criou para sua rede virtual. Por exemplo, se a sua sub-rede padrão envolver todo o intervalo de endereços, não restará qualquer endereço IP para criar outras sub-redes. Você pode ajustar suas sub-redes no espaço de endereço existente a fim de liberar endereços IP, ou especificar um intervalo de endereços adicional e criar ali a sub-rede de gateway.

Execute o comando azure network vnet subnet create para criar uma sub-rede de gateway.

az network vnet subnet create --address-prefix 10.1.255.0/27 --name GatewaySubnet --resource-group TestRG1 --vnet-name VNet1

Importante

Ao trabalhar com sub-redes de gateway, evite a associação de um NSG (grupo de segurança de rede) à 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 de VPN e ExpressRoute) 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?.

5. Criar o gateway de rede local

O gateway de rede local geralmente se refere ao seu local. Você atribui um nome ao site pelo qual o Azure pode fazer referência a ele e especifica o endereço IP do dispositivo VPN local para o qual você criará uma conexão. Você também pode especificar os prefixos de endereço IP que serão roteados por meio do gateway de VPN para o dispositivo VPN. Os prefixos de endereço que você especifica são os prefixos localizados em sua rede local. Se sua rede local for alterada, você poderá atualizar facilmente os prefixos.

Use os seguintes valores:

  • O --gateway-ip-address é o endereço IP do dispositivo VPN local.
  • Os --local-address-prefixes são seus espaços de endereços locais.

Use o comando az network local-gateway create para adicionar um gateway de rede local com vários prefixos de endereço:

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 --resource-group TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

6. Solicitar um endereço IP público

Um gateway de VPN deve ter um endereço IP público. Você primeiro solicita o recurso de endereço IP e, em seguida, faz referência a ele ao criar seu gateway de rede virtual. O endereço IP é atribuído dinamicamente ao recurso quando o gateway de VPN é criado. A única vez em que o endereço IP Público é alterado é quando o gateway é excluído e recriado. Isso não altera o redimensionamento, a redefinição ou outras manutenções/atualizações internas do seu gateway de VPN.

Use o comando az network public-ip create para solicitar um endereço IP público.

az network public-ip create --name VNet1GWIP --resource-group TestRG1 --allocation-method Static --sku Standard

7. Criar o gateway de VPN

Crie o gateway de VPN da rede virtual. Criar um gateway pode levar 45 minutos ou mais, dependendo do SKU de gateway selecionado.

Use os seguintes valores:

  • O --gateway-type para uma configuração site a site é Vpn. O tipo de gateway é sempre específico para a configuração que você está implementando. Para obter mais informações, consulte Tipos de gateway.
  • O --vpn-type é RouteBased (referenciado como Gateway Dinâmico em alguma documentação).
  • Selecione a SKU de Gateway que você deseja usar. Há limitações de configuração para alguns SKUs. Para obter mais informações, confira SKUs de gateway.

Criar o gateway de VPN 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. Esse parâmetro permite que o gateway seja criado em segundo plano. Leva 45 minutos ou mais para criar um gateway.

az network vnet-gateway create --name VNet1GW --public-ip-address VNet1GWIP --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw1 --no-wait 

8. Configurar o dispositivo VPN

As conexões site a site para uma rede local exigem um dispositivo VPN. Nesta etapa, você deve configurar seu dispositivo VPN. Ao configurar seu dispositivo VPN, você precisará dos seguintes itens:

  • Uma chave compartilhada. Essa é a mesma chave compartilhada especificada ao criar a conexão VPN site a site. Em nossos exemplos, usamos uma chave compartilhada básica. Recomendamos gerar uma chave mais complexa para uso.

  • O endereço IP público do seu gateway de rede virtual. Você pode exibir o endereço IP público usando o portal do Azure, o PowerShell ou a CLI. Para localizar o endereço IP público do seu gateway de rede virtual, use o comando az network public-ip list. Para facilitar a leitura, a saída é formatada para exibir a lista de IPs públicos em formato de tabela.

    az network public-ip list --resource-group TestRG1 --output table
    

Para fazer o download de scripts de configuração do dispositivo VPN

Dependendo do seu dispositivo VPN, será possível baixar um script de configuração do dispositivo VPN. Para saber mais, confira Fazer download dos scripts de configuração de dispositivo de VPN.

Confira os links a seguir para obter outras informações de configuração:

9. Criar a conexão VPN

Crie a conexão VPN site a site entre o gateway de rede virtual e o dispositivo VPN local. Preste atenção especial ao valor de chave compartilhada, que deve corresponder ao valor de chave compartilhada configurado para seu dispositivo VPN.

Crie a conexão usando o comando az network vpn-connection create.

az network vpn-connection create --name VNet1toSite2 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l eastus --shared-key abc123 --local-gateway2 Site2

Após um instante, a conexão será estabelecida.

10. Verificar a conexão VPN

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>

Se quiser usar outro método para verificar a conexão, confira Verificar uma conexão de gateway de VPN.

Para conectar-se a uma máquina virtual

É possível se conectar a uma VM implantada em sua rede virtual criando uma conexão de Área de Trabalho Remota com a VM. É a melhor maneira de verificar inicialmente se você pode se conectar à sua VM usando seu endereço IP privado, em vez do nome do computador. Dessa forma, você está testando para ver se pode conectar-se e não se a resolução de nomes está configurada corretamente.

  1. Localize o endereço IP privado. É possível encontrar o endereço IP privado de uma VM observando as propriedades da VM no portal do Azure ou usando o PowerShell.

    • Portal do Azure: localize sua VM no portal do Azure. Exiba as propriedades para a VM. O endereço IP privado está listado.

    • PowerShell: use o exemplo para exibir uma lista de VMs e endereços de IP privados dos seus grupos de recursos. Você não precisa modificar esse exemplo antes de usá-lo.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Verifique se você está conectado à sua rede virtual.

  3. Abra a Conexão de Área de Trabalho Remota, inserindo RDP ou Conexão de Área de Trabalho Remota na caixa de pesquisa na barra de tarefas. Em seguida, selecione Conexão de Área de Trabalho Remota. Você também pode abrir a Conexão de Área de Trabalho Remota usando o comando mstsc no PowerShell.

  4. Na Conexão de Área de Trabalho Remota, insira o endereço IP privado da VM. É possível selecionar Mostrar Opções para ajustar outras configurações e depois se conectar.

Se você estiver com problemas para se conectar a uma VM por meio da conexão VPN, verifique o seguinte pontos:

  • Verifique se a conexão VPN é estabelecida.
  • Verifique se você está se conectando ao endereço IP privado da VM.
  • Se você puder se conectar à VM usando o endereço IP privado, mas não o nome do computador, verifique se o DNS foi configurado corretamente. Para obter mais informações sobre como funciona a resolução de nomes para VMs, confira Resolução de nomes para VMs.

Para obter mais informações sobre conexões RDP, confira Solucionar problemas de conexões da Área de Trabalho Remota a uma VM.

Tarefas comuns

Esta seção contém os comandos comuns que são úteis ao trabalhar com configurações de site a site. Para obter a lista completa dos comandos de rede da CLI, consulte CLI do Azure - Rede.

Para exibir os gateways de rede local

Para exibir uma lista de gateways de rede local, use o comando az network local-gateway list.

az network local-gateway list --resource-group TestRG1

Para modificar prefixos de endereço IP de gateway de rede local - sem conexão de gateway

Se você não tiver uma conexão de gateway e deseja adicionar ou remover os prefixos de endereço IP, você use o mesmo comando que você usa para criar o gateway de rede local, az network local-gateway create. Você também pode usar esse comando para atualizar o endereço IP do gateway para o dispositivo VPN. Para sobrescrever as configurações atuais, use o nome existente do seu gateway de rede local. Se você usar um nome diferente, um novo gateway de rede local será criado, em vez de substituir o existente.

Sempre que você fizer uma alteração, toda a lista de prefixos deverá ser especificada, não apenas os prefixos que você deseja alterar. Especifique apenas os prefixos que você deseja manter. Neste caso, 10.0.0.0/24 e 20.0.0.0/24

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

Para modificar prefixos de endereço IP de gateway de rede local - conexão de gateway existente

Se você tiver uma conexão de gateway e deseja adicionar ou remover os prefixos de endereço IP, você pode atualizar os prefixos usando az network local-gateway update. Isso resulta em algum tempo de inatividade para a conexão VPN. Ao modificar os prefixos de endereço IP, você não precisa excluir o gateway de VPN.

Sempre que você fizer uma alteração, toda a lista de prefixos deverá ser especificada, não apenas os prefixos que você deseja alterar. Neste exemplo, 10.0.0.0/24 e 20.0.0.0/24 já estão presentes. Podemos adicionar os prefixos 30.0.0.0/24 e 40.0.0.0/24 e especificar todos os 4 prefixos durante a atualização.

az network local-gateway update --local-address-prefixes 10.0.0.0/24 20.0.0.0/24 30.0.0.0/24 40.0.0.0/24 --name VNet1toSite2 -g TestRG1

Para modificar o 'gatewayIpAddress' para um gateway de rede local

Se o dispositivo VPN ao qual você deseja se conectar mudou seu endereço IP público, você precisará modificar o gateway de rede local para refletir essa alteração. O endereço IP do gateway pode ser alterado sem remover uma conexão de gateway de VPN existente (se houver uma). Para modificar o endereço IP do gateway, substitua os valores 'Site2' e 'TestRG1' pelos seus próprios valores usando o comando az network local-gateway update.

az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1

Verifique se o endereço IP está correto na saída:

"gatewayIpAddress": "23.99.222.170",

Para verificar os valores de chave compartilhados

Verifique se o valor de chave compartilhado é o mesmo valor usado para a configuração do dispositivo VPN. Caso contrário, execute a conexão novamente usando o valor do dispositivo ou atualize o dispositivo com o valor de retorno. Os valores devem ser correspondentes. Para exibir a chave compartilhada, use az network vpn-connection-list.

az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1

Para exibir o endereço IP público do gateway de VPN

Para localizar o endereço IP público do seu gateway de rede virtual, use o comando az network public-ip list. Para facilitar a leitura, a saída para este exemplo é formatada para exibir a lista de IPs públicos em formato de tabela.

az network public-ip list --resource-group TestRG1 --output table

Próximas etapas