Configurar o ExpressRoute e as conexões coexistentes site a site usando o PowerShell

Este artigo ajuda você a configurar conexões do ExpressRoute e VPN site a site que coexistem. A capacidade de configurar a VPN site a site e o ExpressRoute tem várias vantagens. Você pode configurar a 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 pelo ExpressRoute. Neste artigo, analisamos as etapas para configurar as duas situações. Este artigo se aplica ao modelo de implantação do Gerenciador de Recursos.

A configuração de conexões VPN site a site e do ExpressRoute coexistentes 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 pelo 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 utilizando 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 experimenta nenhum tempo de inatividade ao adicionar um novo gateway ou uma nova conexão de gateway.

Observação

Se você quiser criar uma VPN site a site em um circuito do ExpressRoute, confira VPN site a site em um emparelhamento da Microsoft.

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 Gateway de VPN - do ExpressRoute não são suportadas na SKU Básica.
  • Se você quiser usar o roteamento de trânsito entre o ExpressRoute e a VPN, o ASN do Gateway de VPN do Azure deve ser definido como 65515, e o Servidor de Rota do Azure deve ser usado. O Gateway de VPN do Azure tem suporte para o 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 deve ser /27 ou um prefixo mais curto, como /26, /25, ou você receberá uma mensagem de erro ao adicionar o gateway de rede virtual do ExpressRoute.
  • Não há suporte para a coexistência em uma rede virtual de pilha dupla. Se você estiver usando o suporte a IPv6 do ExpressRoute e um gateway do 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 backup da sua conexão do 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 da Microsoft no Azure. O circuito do ExpressRoute sempre será o link principal. Os dados fluem através do caminho VPN site-to-site somente se o circuito do ExpressRoute falhar. Para evitar roteamento assimétrico, sua configuração de rede local também deve preferir o circuito ExpressRoute à 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ê tiver o emparelhamento do Microsoft ExpressRoute habilitado, poderá receber o endereço IP público do seu 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.

  • Embora o caminho de circuito do ExpressRoute seja preferível à VPN site a site quando as duas rotas são iguais, o Azure usa a correspondência de prefixo mais longa para escolher a rota para 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 pelo ExpressRoute

Você pode configurar sua rede de modo que alguns sites se conectem diretamente ao Azure pela VPN site a site e alguns sites se conectem pelo 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 orientará você na criação de uma nova rede virtual usando o modelo de implantação do Resource Manager e na criação de novas conexões ExpressRoute e VPN site a site.

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

    Talvez você já tenha uma rede virtual instalada com uma conexão VPN site a site ou conexão do ExpressRoute. Nesse cenário, se o prefixo de sub-rede do gateway for /28 ou mais (/29, /30 etc.), você precisará excluir o gateway existente. As etapas para configurar conexões coexistentes para uma seção de VNet já existente orientam você na exclusão do gateway e na criação de novas conexões ExpressRoute e VPN site a site.

    Se você excluir e recriar seu gateway, você experimentará o tempo de inatividade para suas conexões entre instalações. No entanto, suas VMs e serviços podem se conectar pela Internet enquanto você configura seu gateway, se estiverem configurados para 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

Esse procedimento orienta você na criação de uma VNet e de conexões site a site e do ExpressRoute que coexistem. 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. Defina variáveis e crie um grupo de recursos.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. Crie uma rede virtual que inclua o GatewaySubnet. 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

    O GatewaySubnet deve ser um /27 ou um prefixo mais curto, como /26 ou /25.

    Criar uma rede virtual.

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

    Adicione duas sub-redes nomeadas App e GatewaySubnet.

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

    Salvar a configuração da rede virtual.

    $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, confira 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. As configurações de gateway coexistentes do ExpressRoute e 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 é compatível com o protocolo de roteamento BGP. Você pode especificar o Número ASN (ASN) para a rede virtual adicionando o sinalizador -Asn no comando a seguir. Se o parâmetro Asn não for especificado, o número de AS será definido como 65515.

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

    Observação

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

    Você pode encontrar o IP de emparelhamento do BGP e o número AS que o Azure utiliza para o gateway da VPN executando $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 de VPN local for compatível com o BGP e você quiser ativar o roteamento dinâmico, precisará saber o IP de emparelhamento do BGP e o número AS do seu dispositivo de VPN local.

    $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 existente do ExpressRoute, ignore as etapas 8 e 9 e vá 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 adicionar a configuração de ponto a site ao gateway de VPN

Você pode seguir estas etapas para adicionar uma configuração ponto a site ao seu gateway de 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, presumimos que o certificado raiz seja armazenado no computador local no qual 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 você quiser habilitar a conectividade entre uma de suas redes locais conectadas ao ExpressRoute e outra de sua rede local conectada a uma conexão site a site, será necessário configurar o Servidor de Rota do Azure.

Próximas etapas

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