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

Este artigo mostra como usar o PowerShell para criar uma conexão de gateway VPN site a site da sua rede local para a rede virtual. As etapas neste artigo se aplicam ao modelo de implantação do Resource Manager. Também pode criar esta configuração ao utilizar uma ferramenta de implementação diferente ou modelo de implementação ao selecionar uma opção diferente da lista seguinte:

Uma conexão de gateway VPN site a site é usada para conectar sua rede local a uma rede virtual do Azure por meio de um túnel VPN IPsec/IKE (IKEv1 ou IKEv2). Este tipo de ligação requer um dispositivo VPN localizado no local que tenha um endereço IP público com acesso exterior atribuído ao mesmo. Para obter mais informações sobre o gateways de VPN, veja About VPN gateway (Acerca do gateway de VPN).

Diagram of site-to-site VPN Gateway cross-premises connections.

Antes de começar

Antes de iniciar a configuração, verifique se cumpre os seguintes critérios:

  • Certifique-se de que tem um dispositivo VPN compatível e alguém que o possa configurar. Para obter mais informações sobre os dispositivos VPN compatíveis e a configuração do dispositivo, consulte About VPN Devices (Acerca dos Dispositivos VPN).
  • Verifique se tem um endereço IP IPv4 público com acesso exterior para o seu dispositivo VPN.
  • Se você não estiver familiarizado com os intervalos de endereços IP localizados em sua configuração de rede local, precisará coordenar com alguém que possa fornecer esses detalhes para você. Ao criar esta configuração, tem de especificar prefixos de intervalo de endereços IP que o Azure irá encaminhar para a sua localização no local. Nenhuma das sub-redes da rede local pode sobrepor as sub-redes de rede virtual a que pretende ligar.

Azure PowerShell

Este artigo usa cmdlets do PowerShell. Para executar os cmdlets, você pode usar o Azure Cloud Shell. O Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Abrir Cloudshell no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do https://shell.azure.com/powershellnavegador acessando . Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e selecione a tecla Enter para executá-los.

Você também pode instalar e executar os cmdlets do Azure PowerShell localmente em seu computador. Os cmdlets do PowerShell são atualizados com frequência. Se você não tiver instalado a versão mais recente, os valores especificados nas instruções podem falhar. Para localizar as versões do Azure PowerShell instaladas no seu computador, use o Get-Module -ListAvailable Az cmdlet. Para instalar ou atualizar, consulte Instalar o módulo do Azure PowerShell.

Valores de exemplo

Os exemplos neste artigo utilizam os seguintes valores. Pode utilizar estes valores para criar um ambiente de teste ou consultá-los para compreender melhor os exemplos neste artigo.

#Example values

VnetName                = VNet1
ResourceGroup           = TestRG1
Location                = East US 
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> 
Local Address Prefixes  = 10.0.0.0/24, 20.0.0.0/24
Gateway Name            = VNet1GW
PublicIP                = VNet1GWPIP
Gateway IP Config       = gwipconfig1 
VPNType                 = RouteBased 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite1

1. Criar uma rede virtual e uma sub-rede de gateway

Se ainda não tiver uma rede virtual, crie uma. Quando criar uma rede virtual, confirme que os espaços de endereços que especificar não se sobrepõem a nenhum dos espaços de endereços que tem na sua rede no local.

Nota

Para esta VNet ligar a uma localização no local, terá de se coordenar com o administrador da rede no local para extrair um intervalo de endereços IP que possa utilizar especificamente para esta rede virtual. Se existir um intervalo de endereços duplicado em ambos os lados da conexão VPN, o tráfego não será encaminhado da maneira esperada. Além disso, se pretender ligar esta VNet a outra VNet, o espaço de endereços não pode sobrepor-se a outra VNet. Tenha o cuidado de planear a configuração da rede em conformidade.

Sobre a sub-rede do gateway

O gateway de rede virtual utiliza uma sub-rede específica denominada sub-rede do gateway. A sub-rede do gateway faz parte do intervalo de endereços IP da rede virtual que especificou quando configurar a rede virtual. Contém os endereços IP que utilizam os serviços e recursos de gateway de rede virtual. A sub-rede deve ter o nome "GatewaySubnet" por ordem para que o Azure possa implementar os recursos de gateway. Não é possível especificar uma sub-rede diferente para implementar os recursos de gateway. Se não tiver uma sub-rede com o nome "GatewaySubnet", quando criar o gateway de VPN este irá falhar.

Quando cria a sub-rede do gateway, especifica o número de endereços IP que a sub-rede contém. O número de endereços IP necessários depende da configuração do gateway VPN que pretende criar. Algumas configurações requerem mais endereços IP do que outras. Recomendamos que crie uma sub-rede de gateway que utilize /27 ou /28.

Se vir um erro que especifica que o espaço de endereços se sobrepõe a uma sub-rede ou se a sub-rede não se encontra dentro do espaço de endereços da rede virtual, verifique o intervalo de endereços da VNet. Não pode ter endereços IP suficientes disponíveis no intervalo de endereços que criou para a sua rede virtual. Por exemplo, se a sub-rede de predefinição abrange o intervalo de endereços completo, isso significa que não existem endereços IP restantes para criar sub-redes adicionais. Pode ajustar as sub-redes no espaço de endereço existente para libertar endereços IP ou especifique um intervalo de endereços adicionais e crie a sub-rede do gateway.

Importante

Ao trabalhar com sub-redes de gateway, evite associar um NSG (grupo de segurança de rede) à 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 grupos de segurança de rede, consulte O que é um grupo de segurança de rede?.

Criar uma rede virtual e uma sub-rede de gateway

Este exemplo cria uma rede virtual e uma sub-rede de gateway. Se já tiver uma rede virtual à qual precisa de adicionar uma sub-rede de gateway, veja Para adicionar uma sub-rede de gateway a uma rede virtual que já criou.

Criar um grupo de recursos:

New-AzResourceGroup -Name TestRG1 -Location 'East US'

Criar a sua rede virtual.

  1. Defina as variáveis.

    $subnet1 = New-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27
    $subnet2 = New-AzVirtualNetworkSubnetConfig -Name 'Frontend' -AddressPrefix 10.1.0.0/24
    
  2. Crie a VNet.

    New-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1 `
    -Location 'East US' -AddressPrefix 10.1.0.0/16 -Subnet $subnet1, $subnet2
    

Para adicionar uma sub-rede de gateway a uma rede virtual já criada

Utilize os passos nesta secção se já tiver uma rede virtual, mas precisar de adicionar uma sub-rede de gateway.

  1. Defina as variáveis.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
    
  2. Crie a sub-rede de gateway.

    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
    
  3. Defina a configuração.

    Set-AzVirtualNetwork -VirtualNetwork $vnet
    

2. Crie o gateway de rede local

O gateway de rede local (GNL) normalmente refere-se ao seu local local. Não é o mesmo que um gateway de rede virtual. Dê um nome ao site pelo qual o Azure se possa referir ao mesmo e especifique o endereço IP do dispositivo VPN no local para o qual vai criar uma ligação. Também pode especificar os prefixos do endereço IP que vai ser encaminhado através do gateway de VPN para o dispositivo VPN. Os prefixos do endereço que especificar são os que estão localizados na sua rede no local. Se a rede no local se alterar, pode atualizar facilmente os prefixos.

Selecione um dos exemplos a seguir. Os valores utilizados nos exemplos são:

  • O GatewayIPAddress é o endereço IP do seu dispositivo VPN no local.
  • O AddressPrefix é o seu espaço de endereços no local.

Exemplo de prefixo de endereço único

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix '10.0.0.0/24'

Exemplo de prefixo de endereço múltiplo

New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix @('20.0.0.0/24','10.0.0.0/24')

3. Solicite um endereço IP público

Um gateway VPN deve ter um endereço IP público. Primeira, requeira o recurso de endereço IP e, em seguida, faça referência ao mesmo ao criar o gateway de rede virtual. O endereço IP é dinamicamente atribuído ao recurso quando o gateway de VPN é criado. A única vez que o endereço IP público é alterado é quando o gateway é excluído e recriado. Não é alterado ao redimensionar, repor ou ao realizar qualquer outra manutenção/atualização interna do gateway de VPN.

Solicite um endereço IP público para seu gateway VPN de rede virtual.

$gwpip= New-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1 -Location 'East US' -AllocationMethod Static -Sku Standard

4. Crie a configuração de endereçamento IP do gateway

A configuração do gateway define a sub-rede (a 'GatewaySubnet') e o endereço IP público a ser usado. Utilize o exemplo seguinte para criar a configuração do seu gateway:

$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gwpip.Id

5. Crie o gateway VPN

Crie o gateway de VPN da rede virtual. Criar um gateway, muitas vezes, pode demorar 45 minutos ou mais, dependendo do SKU de gateway selecionado. Os seguintes valores são usados no exemplo:

  • O -GatewayType para uma configuração site a site é Vpn. O tipo de gateway é sempre específico para a configuração que você está implementando. Por exemplo, outras configurações de gateway podem exigir -GatewayType ExpressRoute.
  • O -VpnType pode ser RouteBased (conhecido como Gateway Dinâmico em alguma documentação) ou PolicyBased (referido como Gateway Estático em alguma documentação). Para obter mais informações sobre os tipos de gateways de VPN, veja Acerca dos Gateways de VPN.
  • Selecione o SKU do Gateway que pretende utilizar. Existem limitações de configuração para determinados SKUs. Para obter mais informações, veja SKUs de gateway. Se obtiver um erro ao criar o gateway de VPN relativamente a -GatewaySku, confirme que instalou a versão mais recente dos cmdlets do PowerShell.
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location 'East US' -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -GatewaySku VpnGw2

6. Configure seu dispositivo VPN

As conexões site a site com uma rede local exigem um dispositivo VPN. Neste passo, configure o seu dispositivo VPN. Ao configurar seu dispositivo VPN, você precisa dos seguintes itens:

  • Uma chave partilhada. Essa é a mesma chave compartilhada que você especifica ao criar sua conexão VPN site a site. Nos nossos exemplos, iremos utilizar uma chave partilhada básica. Deve gerar uma chave mais complexa para utilizar.

  • O endereço IP público do gateway de rede virtual. Pode ver o endereço IP público através do portal do Azure, do PowerShell ou da CLI. Para localizar o endereço IP público do seu gateway de rede virtual usando o PowerShell, use o exemplo a seguir. Neste exemplo, VNet1GWPIP é o nome do recurso de endereço IP público que você criou em uma etapa anterior.

    Get-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1
    

Para transferir os scripts de configuração do dispositivo VPN

Consoante o dispositivo VPN que tiver, poderá transferir um script de configuração do dispositivo VPN. Para mais informações, consulte Transferir os scripts de configuração do dispositivo VPN.

Consulte as seguintes ligações para informações de configuração adicionais:

7. Crie a conexão VPN

Em seguida, crie a conexão VPN site a site entre seu gateway de rede virtual e seu dispositivo VPN. Não se esqueça de substituir os valores pelos seus. A chave partilhada tem de corresponder ao valor utilizado na configuração do dispositivo VPN. Observe que o '-ConnectionType' para site a site é IPsec.

  1. Defina as variáveis.

    $gateway1 = Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1
    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Crie a ligação.

    New-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1 `
    -Location 'East US' -VirtualNetworkGateway1 $gateway1 -LocalNetworkGateway2 $local `
    -ConnectionType IPsec -SharedKey 'abc123'
    

Após uns breves instantes, a ligação será estabelecida.

8. Verifique a conexão VPN

A verificação da ligação VPN pode ser feita de várias formas.

Você pode verificar se sua conexão foi bem-sucedida usando o cmdlet 'Get-AzVirtualNetworkGatewayConnection', com ou sem '-Debug'.

  1. Utilize o seguinte exemplo de cmdlet, configurando os valores para corresponder aos seus. Se lhe for pedido, selecione "A" para executar "Todos". No exemplo, '--name' refere-se ao nome da ligação que pretende testar.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. Quando o cmdlet terminar, veja os valores. No exemplo abaixo, o estado da ligação é apresentado como "Ligado" e pode ver bytes de entrada e de saída.

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

Ligar a uma máquina virtual

Você pode se conectar a uma VM implantada em sua rede virtual criando uma Conexão de Área de Trabalho Remota para sua VM. A melhor forma de verificar, inicialmente, que se pode ligar à VM é ligar-se utilizando o respetivo endereço IP privado, em vez do nome do computador. Dessa forma, você está testando para ver se consegue se conectar, não se a resolução de nomes está configurada corretamente.

  1. Localizar o endereço IP privado. Você pode encontrar o endereço IP privado de uma VM examinando as propriedades da VM no portal do Azure ou usando o PowerShell.

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

    • PowerShell: Use o exemplo para exibir uma lista de VMs e endereços IP privados de seus grupos de recursos. Não é necessário modificar este exemplo antes de o utilizar.

      $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 Ligação ao Ambiente de Trabalho Remoto introduzindo RDP ou Ligação ao Ambiente de Trabalho Remoto 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 mstsc comando no PowerShell.

  4. Em Ligação ao Ambiente de Trabalho Remoto, introduza o endereço IP privado da VM. Pode selecionar Mostrar Opções para ajustar outras definições e, em seguida, ligar.

Se você estiver tendo problemas para se conectar a uma VM por meio de sua conexão VPN, verifique os seguintes pontos:

  • Certifique-se de que a ligação VPN é efetuada com êxito.
  • 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 configurou o DNS corretamente. Para obter mais informações sobre como a resolução de nomes funciona para VMs, consulte Resolução de nomes para VMs.

Para obter mais informações sobre ligações RDP, veja Troubleshoot Remote Desktop connections to a VM(Resolução de Problemas de ligações de Ambiente de Trabalho Remoto a uma VM).

Para modificar os prefixos de endereços IP de um gateway de rede local

Se os prefixos de endereço IP que pretende encaminhar para a sua localização no local forem alterados, pode modificar o gateway de rede local. Ao usar esses exemplos, modifique os valores para corresponder ao seu ambiente.

Para adicionar prefixos de endereços adicionais:

  1. Defina a variável para o LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Modifique os prefixos. Os valores especificados substituem os valores anteriores.

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24','10.101.2.0/24')
    

Para remover um prefixos de endereço:

Não inclua os prefixos que já não são necessários. Neste exemplo, não precisamos mais do prefixo 10.101.2.0/24 (do exemplo anterior), portanto, atualizaremos o gateway de rede local e excluiremos esse prefixo.

  1. Defina a variável para o LocalNetworkGateway.

    $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
    
  2. Defina o gateway com os prefixos atualizados.

    Set-AzLocalNetworkGateway -LocalNetworkGateway $local `
    -AddressPrefix @('10.101.0.0/24','10.101.1.0/24')
    

Para modificar o endereço IP do gateway de um gateway de rede local

Se o dispositivo VPN que pretende ligar foi alterou o respetivo endereço IP público, tem de modificar o gateway de rede local para que essa alteração seja refletida. Ao modificar este valor, também pode modificar os prefixos de endereços em simultâneo. Certifique-se de que utiliza o nome existente do seu gateway de rede local, de modo a substituir as definições atuais. Se utilizar um nome diferente, irá criar um novo gateway de rede local, em vez de substituir o existente.

New-AzLocalNetworkGateway -Name Site1 `
-Location "East US" -AddressPrefix @('10.101.0.0/24','10.101.1.0/24') `
-GatewayIpAddress "5.4.3.2" -ResourceGroupName TestRG1

Para excluir uma conexão de gateway

Se você não souber o nome da sua conexão, poderá encontrá-la usando o cmdlet 'Get-AzVirtualNetworkGatewayConnection'.

Remove-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 `
-ResourceGroupName TestRG1

Próximos passos