Configurar conexões coexistentes Site a Site e ExpressRoute usando o PowerShell

Este artigo descreve como configurar as conexões VPN site a site e de ExpressRoute que coexistam. Poder configurar a VPN site a site e o ExpressRoute tem várias vantagens. Você pode configurar um VPN Site a Site como um caminho de failover seguro para o ExpressRoute ou usar VPNs Site a Site para se conectar a sites que não estão conectados por meio do ExpressRoute. Neste artigo, analisaremos as etapas para configurar as duas situações. Este artigo se aplica ao modelo de implantação do Gerenciador de Recursos.

Configurar conexões coexistentes VPN Site a Site e a ExpressRoute tem várias vantagens:

  • Você pode configurar uma VPN site a site como um caminho de failover seguro para o ExpressRoute.
  • Como alternativa, você pode usar VPNs Site a Site para se conectar a sites que não estão conectados por meio de ExpressRoute.

As etapas para configurar as duas situações são cobertas neste artigo. Este artigo se aplica ao modelo de implantação do Gerenciador de Recursos e usa o PowerShell. Você também pode configurar esses cenários usando o portal do Azure, embora a documentação ainda não esteja disponível. Você pode configurar um gateway pela primeira vez. Normalmente, você não incorrerá em tempo de inatividade ao adicionar uma nova conexão de gateway ou gateway.

Observação

Se você quiser criar uma VPN Site a Site por um circuito ExpressRoute, consulte este artigo.

Limites e limitações

  • Há suporte para apenas um gateway de VPN baseado em rotas. Você deve usar uma rota baseada no gateway de VPN. Você também pode usar um gateway de VPN baseado em rota com uma conexão VPN configurada para “seletores de tráfego baseados em políticas”, conforme descrito em Conectar-se a vários dispositivos VPN baseados em políticas.
  • As configurações de coexistência do ExpressRoute-Gateway de VPN não têm suporte na SKU Básica.
  • Se você quiser usar o roteamento de trânsito entre o ExpressRoute e a VPN, defina o ASN do Gateway de VPN do Azure como 65515. O Gateway de VPN do Azure dá suporte ao protocolo de roteamento BGP. Para que o ExpressRoute e a VPN do Azure funcionem juntos, você precisa manter o número do sistema autônomo do seu gateway de VPN do Azure no valor padrão, 65515. Se você tiver selecionado um ASN diferente de 65515 e mudar a configuração para 65515, precisará redefinir o gateway de VPN para que a configuração entre em vigor.
  • A sub-rede do gateway precisa ser /27 ou um prefixo mais curto, (como /26, /25), ou você receberá uma mensagem de erro quando adicionar o gateway de rede virtual do ExpressRoute.
  • A coexistência em uma VNet de pilha dupla não é permitida. Se você estiver usando a compatibilidade de IPv6 do ExpressRoute e um gateway de ExpressRoute de pilha dupla, a coexistência com o Gateway de VPN não será possível.

Designs de configuração

Configurar uma VPN site a site como um caminho de failover para o ExpressRoute

Você pode configurar uma conexão VPN site a site como um backup para o ExpressRoute. Esta conexão se aplica apenas às redes virtuais vinculadas ao caminho de emparelhamento privado do Azure. Não há uma solução de failover com base em VPN para serviços acessíveis por meio de emparelhamentos do Azure e da Microsoft. O circuito do ExpressRoute sempre será o link principal. Os dados só fluirão pelo caminho da VPN Site a Site se o circuito do ExpressRoute falhar. Para evitar o roteamento assimétrico, sua configuração de rede local também deve preferir o circuito de ExpressRoute pela VPN Site a Site. Você pode preferir que o caminho de rota expressa por preferência mais alta local de configuração para as rotas que recebeu a ExpressRoute.

Observação

Se você habilitar o emparelhamento da Microsoft do ExpressRoute, você poderá receber o endereço IP público do gateway de VPN do Azure na conexão do ExpressRoute. Para configurar a conexão site a site de VPN como um backup, você precisa configurar a rede local para que a conexão VPN seja roteada para a Internet.

Observação

Embora o circuito ExpressRoute seja preferencial em relação à VPN Site a Site quando ambas as rotas são as mesmas, o Azure usa a correspondência de prefixo mais longa para escolher a rota até o destino do pacote.

Diagram that shows a Site-to-Site VPN connection as a backup for ExpressRoute.

Configurar uma VPN site a site para se conectar a sites não conectados por meio do ExpressRoute

Você pode configurar sua rede de modo que alguns sites se conectem diretamente ao Azure através da VPN site a site, e alguns sites se conectem por meio do ExpressRoute.

Coexist

Selecionando as etapas de uso

Há dois conjuntos diferentes de procedimentos para escolher. O procedimento de configuração selecionado varia conforme você já tenha uma rede virtual à qual deseja se conectar ou queira criar uma nova rede virtual.

  • Não tenho uma VNet e preciso criar uma.

    Se você ainda não tiver uma rede virtual, esse procedimento explica como criar uma nova rede virtual usando o modelo de implantação do Gerenciador de Recursos e criando novas conexões de VPN Site a Site e de ExpressRoute. Para configurar uma rede virtual, siga as etapas em Para criar uma nova rede virtual e conexões coexistentes.

  • Eu já tenho uma VNet do modelo de implantação do Gerenciador de Recursos.

    Talvez você já tenha uma rede virtual implementada com uma conexão de VPN Site a Site ou uma conexão de ExpressRoute existente. Nesse cenário, se o prefixo de sub-rede do gateway for /28 ou mais (/29, /30 etc.), você precisará excluir o gateway existente. A seção Para configurar conexões coexistentes para uma VNet já existente explica como excluir o gateway e, em seguida, criar novas conexões de VPN Site a Site e de ExpressRoute.

    Se você excluir e recriar o gateway, você terá tempo de inatividade para as conexões entre locais. Entretanto, suas VMs e serviços ainda poderão se comunicar por meio do balanceador de carga enquanto você configura o seu gateway, se estiverem configurados para fazer isso.

Antes de começar

As etapas e os exemplos deste artigo usam os módulos AZ do Azure PowerShell. Para instalar os módulos AZ localmente no computador, confira Instalar o Azure PowerShell. Para saber mais sobre o novo módulo AZ, confira Apresentando o novo módulo AZ do Azure PowerShell. Os cmdlets do PowerShell são atualizados com frequência. Se você não estiver executando a versão mais recente, os valores especificados nas instruções poderão falhar. Para localizar as versões instaladas do PowerShell no sistema, use o cmdlet Get-Module -ListAvailable Az.

Você pode usar o Azure Cloud Shell para executar a maioria dos cmdlets do PowerShell e dos comandos da CLI, em vez de instalar o Azure PowerShell ou a CLI localmente. O Azure Cloud Shell é um shell interativo gratuito que tem ferramentas comuns do Azure pré-instaladas e configuradas para uso com a conta. Para executar qualquer código contido neste artigo no Azure Cloud Shell, abra uma sessão do Cloud Shell, use o botão Copiar em um bloco de códigos para copiar o código e colá-lo na sessão do Cloud Shell com Ctrl+Shift+V no Windows e no Linux ou Cmd+Shift+V no macOS. O texto colado não é executado automaticamente, pressione Enter para executar o código.

Há algumas maneiras de inicializar o Cloud Shell:

Opção Link
Clique em Experimente no canto superior direito de um bloco de código. Cloud Shell in this article
Abra o Cloud Shell em seu navegador. https://shell.azure.com/powershell
Clique no botão Cloud Shell no menu no canto superior direito do portal do Azure. Cloud Shell in the portal

Para criar uma nova rede virtual e conexões coexistentes

Este procedimento orientará você na criação de uma VNet, bem como na criação das conexões Site a Site e de ExpressRoute que coexistirão. Os cmdlets que você usará para essa configuração podem ser ligeiramente diferentes daqueles com os quais você talvez esteja familiarizado. Certifique-se de usar os cmdlets especificados nestas instruções.

  1. Entrar e selecione sua assinatura.

    Se estiver usando o Azure Cloud Shell, você entrará na conta do Azure automaticamente após clicar em "Experimentar". Para entrar localmente, abra o console do PowerShell com privilégios elevados e execute o cmdlet para se conectar.

    Connect-AzAccount
    

    Se você tiver mais de uma assinatura, obtenha uma lista das assinaturas do Azure.

    Get-AzSubscription
    

    Especifique a assinatura que você deseja usar.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Definir variáveis.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. Crie uma rede virtual incluindo uma Sub-rede de Gateway. Para saber mais sobre como criar uma rede virtual, confira Criar uma rede virtual. Para saber mais sobre como criar sub-redes, confira Criar uma sub-rede

    Importante

    A Sub-rede de Gateway deve ser /27 ou um prefixo mais curto (como /26 ou /25).

    Crie uma nova VNet.

    $vnet = New-AzVirtualNetwork -Name "CoexVnet" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AddressPrefix "10.200.0.0/16"
    

    Adicione sub-redes.

    Add-AzVirtualNetworkSubnetConfig -Name "App" -VirtualNetwork $vnet -AddressPrefix "10.200.1.0/24"
    Add-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
    

    Salve a configuração da VNet.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. Em seguida, crie seu gateway de VPN Site a Site. Para obter mais informações sobre a configuração do gateway de VPN, consulte Configurar uma VNet com uma conexão Site a Site. O GatewaySku tem suporte para os gateway VPN em VpnGw1, VpnGw2, VpnGw3, Standard e HighPerformance. Configurações de coexistência de ExpressRoute-Gateway de VPN não têm suporte na SKU Básica. O VpnType deve ser RouteBased.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "VPNGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "VPNGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
    

    O Gateway de VPN do Azure oferece suporte ao protocolo de roteamento BGP. Você pode especificar o ASN (número AS) para essa Rede Virtual, adicionando a opção -Asn ao comando a seguir. Não especificando que esse parâmetro terá como padrão o AS número 65515.

    $azureVpn = New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1" -Asn $VNetASN
    

    Observação

    Para gateways coexistentes, você precisa usar o ASN padrão 65515. Confira limites e limitações.

    Você pode encontrar o IP do emparelhamento BGP e o número AS que o Azure usa para o gateway de VPN em $azureVpn.BgpSettings.BgpPeeringAddress e $azureVpn.BgpSettings.Asn. Para obter mais informações, consulte Configurar BGP para o gateway de VPN do Azure.

  5. Crie uma entidade de gateway de VPN de site local. Esse comando não configura seu gateway de VPN local. Em vez disso, ele permite que você forneça as configurações de gateway local, como o IP público e o espaço para endereço local, para que o gateway de VPN do Azure possa se conectar a ele.

    Se seu dispositivo VPN local só dá suporte ao roteamento estático, você pode configurar as rotas estáticas da seguinte maneira:

    $MyLocalNetworkAddress = @("10.100.0.0/16","10.101.0.0/16","10.102.0.0/16")
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress *<Public IP>* -AddressPrefix $MyLocalNetworkAddress
    

    Se seu dispositivo VPN local suporta o BGP e você deseja habilitar o roteamento dinâmico, é preciso saber o IP do emparelhamento BGP e o número AS que seu dispositivo VPN local usa.

    $localVPNPublicIP = "<Public IP>"
    $localBGPPeeringIP = "<Private IP for the BGP session>"
    $localBGPASN = "<ASN>"
    $localAddressPrefix = $localBGPPeeringIP + "/32"
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress $localVPNPublicIP -AddressPrefix $localAddressPrefix -BgpPeeringAddress $localBGPPeeringIP -Asn $localBGPASN
    
  6. Configure seu dispositivo VPN local para conectar o novo gateway de VPN do Azure. Para obter mais informações sobre a configuração de dispositivo VPN, consulte Configuração do Dispositivo VPN.

  7. Vincule o gateway de VPN Site a Site no Azure ao gateway local.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    New-AzVirtualNetworkGatewayConnection -Name "VPNConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $azureVpn -LocalNetworkGateway2 $localVpn -ConnectionType IPsec -SharedKey <yourkey>
    
  8. Se você estiver se conectando a um circuito de ExpressRoute existente, ignore as etapas 8 & 9 e ir para a etapa 10. Configurar circuitos do ExpressRoute. Para obter mais informações sobre a configuração de circuito de ExpressRoute, consulte criar um circuito de ExpressRoute.

  9. Configure o emparelhamento particular do Azure através do circuito de ExpressRoute. Para obter mais informações sobre como configurar o emparelhamento particular do Azure através do circuito de ExpressRoute, consulte Configurar emparelhamento

  10. Crie um gateway de ExpressRoute. Para obter mais informações sobre a configuração do gateway de ExpressRoute, confira Configuração do gateway de ExpressRoute. O Gateway SKU deve ser Standard, HighPerformance ou UltraPerformance.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    $gw = New-AzVirtualNetworkGateway -Name "ERGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
    
  11. Vincule o gateway de ExpressRoute ao circuito de ExpressRoute. Após essa etapa for concluída, a conexão entre sua rede local e o Azure, por meio de ExpressRoute, é estabelecida. Para obter mais informações sobre a operação de vinculação, confira Vincular VNets à ExpressRoute.

    $ckt = Get-AzExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup"
    New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute
    

Para configurar conexões coexistentes para uma VNet já existente

Se você tiver uma rede virtual que tem apenas um gateway de rede virtual (por exemplo, o gateway VPN Site a Site) e quiser adicionar outro gateway de um tipo diferente (por exemplo, gateway de ExpressRoute), verifique o tamanho da sub-rede de gateway. Se a sub-rede de gateway for /27 ou maior, você poderá ignorar as etapas abaixo e executar as etapas na seção anterior para adicionar um gateway de VPN Site a Site ou um gateway de ExpressRoute. Se a sub-rede do gateway é /28 ou /29, você deve primeiro excluir o gateway da rede virtual e aumentar o tamanho de sub-rede do gateway. As etapas nesta seção mostram como fazer isso.

Os cmdlets que você usará para essa configuração podem ser ligeiramente diferentes daqueles com os quais você talvez esteja familiarizado. Certifique-se de usar os cmdlets especificados nestas instruções.

  1. Exclua o gateway de ExpressRoute ou gateway de VPN Site a Site existente.

    Remove-AzVirtualNetworkGateway -Name <yourgatewayname> -ResourceGroupName <yourresourcegroup>
    
  2. Exclua a Sub-rede de Gateway.

    $vnet = Get-AzVirtualNetwork -Name <yourvnetname> -ResourceGroupName <yourresourcegroup> Remove-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet
    
  3. Adicione uma Sub-rede de Gateway que seja /27 ou maior.

    Observação

    Se você não tiver endereços IP suficientes restantes em sua rede virtual para aumentar o tamanho da sub-rede do gateway, precisará adicionar mais espaço de endereço IP.

    $vnet = Get-AzVirtualNetwork -Name <yourvnetname> -ResourceGroupName <yourresourcegroup>
    Add-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
    

    Salve a configuração da VNet.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. Neste ponto, você terá uma rede virtual sem gateways. Para criar novos gateways e configurar as conexões, siga os seguintes exemplos:

    Defina as variáveis.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    

    Crie o gateway.

    $gw = New-AzVirtualNetworkGateway -Name <yourgatewayname> -ResourceGroupName <yourresourcegroup> -Location <yourlocation> -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
    

    Crie a conexão.

    $ckt = Get-AzExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup"
    New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute
    

Para adicionar a configuração de ponto a site ao gateway de VPN

Você pode seguir as etapas abaixo para adicionar a configuração ponto a ponto ao seu gateway VPN em uma configuração de coexistência. Para carregar o certificado raiz de VPN, você precisa instalar o PowerShell localmente no computador ou usar o portal do Azure.

  1. Adicione o pool de endereços do Cliente VPN.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
    
  2. Carregue o certificado raiz da VPN para Azure para seu gateway de VPN. Neste exemplo, presume-se que o certificado raiz está armazenado no computador local onde os seguintes cmdlets do PowerShell são executados e que você esteja executando o PowerShell localmente. Você também pode usar o portal do Azure para carregar o certificado.

    $p2sCertFullName = "RootErVpnCoexP2S.cer" 
    $p2sCertMatchName = "RootErVpnCoexP2S" 
    $p2sCertToUpload=get-childitem Cert:\CurrentUser\My | Where-Object {$_.Subject -match $p2sCertMatchName} 
    if ($p2sCertToUpload.count -eq 1){write-host "cert found"} else {write-host "cert not found" exit} 
    $p2sCertData = [System.Convert]::ToBase64String($p2sCertToUpload.RawData) 
    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $p2sCertFullName -VirtualNetworkGatewayname $azureVpn.Name -ResourceGroupName $resgrp.ResourceGroupName -PublicCertData $p2sCertData
    

Para saber mais sobre a VPN de Ponto a Site, confira Configurar uma conexão de Ponto a Site.

Para habilitar o roteamento de trânsito entre o ExpressRoute e a VPN do Azure

Se quiser habilitar a conectividade entre uma das suas redes locais conectadas ao ExpressRoute e a outra rede local conectada a uma conexão VPN site a site, configure o Servidor de Rota do Azure.

Próximas etapas

Para obter mais informações sobre o ExpressRoute, consulte Perguntas Frequentes sobre ExpressRoute.