Configurare connessioni coesistenti expressroute e da sito a sito tramite PowerShell

Questo articolo illustra come configurare connessioni VPN expressroute e da sito a sito coesistenti. La possibilità di configurare una VPN da sito a sito ed ExpressRoute offre diversi vantaggi. È possibile configurare una VPN da sito a sito come percorso di failover sicuro per ExpressRoute o usare VPN da sito a sito per connettersi a siti non connessi tramite ExpressRoute. In questo articolo vengono illustrati i passaggi per configurare entrambi questi scenari. Questo articolo si applica al modello di distribuzione di Azure Resource Manager.

La configurazione di connessioni coesistenti VPN da sito a sito ed ExpressRoute presenta diversi vantaggi:

  • È possibile configurare una VPN da sito a sito come percorso di failover sicuro per ExpressRoute.
  • In alternativa, è possibile usare VPN da sito a sito per connettersi a siti non connessi tramite ExpressRoute.

Questo articolo illustra i passaggi necessari per configurare entrambi questi scenari. Questo articolo si applica al modello di distribuzione di Resource Manager e usa PowerShell. È anche possibile configurare questi scenari usando il portale di Azure, anche se la documentazione non è ancora disponibile. È possibile configurare per primo uno dei due gateway. In genere, non si verificano tempi di inattività durante l'aggiunta di una nuova connessione gateway o gateway.

Nota

Se si vuole creare una VPN da sito a sito su un circuito ExpressRoute, vedere VPN da sito a sito tramite peering Microsoft.

Limiti e limitazioni

  • È supportato solo il gateway VPN basato su route. È necessario usare un gateway VPN basato su route. È anche possibile usare un gateway VPN basato su route con una connessione VPN configurata per i selettori di traffico basati su criteri, come descritto in Connessione a più dispositivi VPN basati su criteri.
  • Le configurazioni coesistenti di ExpressRoute-Gateway VPN non sono supportate nello SKU Basic.
  • Se si vuole usare il routing di transito tra ExpressRoute e VPN, è necessario impostare l'ASN di Azure Gateway VPN su 65515 e usare il server di route di Azure. Azure Gateway VPN supporta il protocollo di routing BGP. Per integrare ExpressRoute e la VPN di Azure, è necessario mantenere il valore predefinito 65515 del numero di sistema autonomo (ASN, Autonomous System Number) del gateway VPN di Azure. Se in precedenza è stato selezionato un numero ASN diverso da 65515 e lo si modifica impostandolo su 65515, è necessario reimpostare il gateway VPN per rendere effettiva l'impostazione.
  • La subnet del gateway deve essere /27 o un prefisso più breve, ad esempio /26, /25 o viene visualizzato un messaggio di errore quando si aggiunge il gateway di rete virtuale ExpressRoute.
  • La coesistenza in una rete virtuale dual stack non è supportata. Se si usa il supporto IPv6 di ExpressRoute e un gateway ExpressRoute dual stack, la coesistenza con Gateway VPN non è possibile.

Progetti di configurazione

Configurare una VPN da sito a sito come percorso di failover per ExpressRoute

È possibile configurare una connessione VPN da sito a sito come backup per la connessione ExpressRoute. Questa connessione si applica solo alle reti virtuali collegate al percorso di peering privato di Azure. Non esiste una soluzione di failover basata su VPN per i servizi accessibili tramite il peering Microsoft di Azure. Il circuito ExpressRoute è sempre il collegamento principale. I dati passano attraverso il percorso VPN da sito a sito solo se il circuito ExpressRoute ha esito negativo. Per evitare il routing asimmetrico, la configurazione della rete locale deve anche preferire il circuito ExpressRoute rispetto alla VPN da sito a sito. A tal fine, impostare una preferenza locale prioritaria per le route ricevute tramite il circuito ExpressRoute.

Nota

  • Se è abilitato il peering Microsoft ExpressRoute, è possibile ricevere l'indirizzo IP pubblico del gateway VPN di Azure nella connessione ExpressRoute. Per configurare la connessione VPN da sito a sito come backup, è necessario configurare la rete locale in modo che la connessione VPN venga instradata a Internet.

  • Anche se il percorso del circuito ExpressRoute è preferibile rispetto alla VPN da sito a sito quando entrambe le route sono uguali, Azure usa la corrispondenza del prefisso più lunga per scegliere la route verso la destinazione del pacchetto.

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

Configurare una VPN da sito a sito per connettersi a siti non connessi tramite ExpressRoute

È possibile configurare la rete in cui alcuni siti si connettono direttamente ad Azure tramite VPN da sito a sito e alcuni siti si connettono tramite ExpressRoute.

Coexist

Selezione dei passaggi da usare

È possibile scegliere tra due set diversi di procedure. La procedura di configurazione scelta dipende dalla disponibilità o meno di una rete virtuale esistente a cui stabilire la connessione oppure dall'esigenza di creare una nuova rete virtuale.

  • Non è disponibile una rete virtuale ed è necessario crearne una.

    Se non si ha già una rete virtuale, questa procedura illustra come creare una nuova rete virtuale usando il modello di distribuzione Resource Manager e creare nuove connessioni ExpressRoute e VPN da sito a sito.

  • È già disponibile una rete virtuale con modello di distribuzione di Azure Resource Manager.

    Potrebbe essere già disponibile una rete virtuale con una connessione VPN da sito a sito esistente o una connessione ExpressRoute. In questo scenario se il prefisso della subnet del gateway è /28 o più (/29, /30 e così via), è necessario eliminare il gateway esistente. La procedura per configurare le connessioni coesistenti per una sezione già esistente illustra come eliminare il gateway e quindi creare nuove connessioni ExpressRoute e VPN da sito a sito.

    Se si elimina e si ricrea il gateway, si verificano tempi di inattività per le connessioni cross-premise. Tuttavia, le macchine virtuali e i servizi possono connettersi tramite Internet mentre si configura il gateway se sono configurati per farlo.

Operazioni preliminari

I passaggi e gli esempi in questo articolo usano i moduli Az di Azure PowerShell. Per installare il modulo Az nel computer locale, vedere Installare Azure PowerShell. Per altre informazioni, vedere Introduzione al nuovo modulo Az di Azure PowerShell. I cmdlet di PowerShell vengono aggiornati di frequente. Se non si esegue la versione più recente, i valori specificati nelle istruzioni potrebbero generare errori. Per trovare la versione installata di PowerShell nel sistema, usare il cmdlet Get-Module -ListAvailable Az.

È possibile usare Azure Cloud Shell per eseguire la maggior parte dei cmdlet di PowerShell e dei comandi dell'interfaccia della riga di comando, invece di installare Azure PowerShell o l'interfaccia della riga di comando localmente. Azure Cloud Shell è una shell interattiva gratuita, configurata per l'uso con il proprio account, in cui sono preinstallati gli strumenti comuni di Azure. Per eseguire il codice contenuto in questo articolo in Azure Cloud Shell, aprire una sessione di Cloud Shell, usare il pulsante Copia in un blocco di codice per copiare il codice e incollarlo nella sessione di Cloud Shell con CTRL+MAIUSC+V in Windows e Linux o CMD+MAIUSC+V in macOS. Il testo incollato non viene eseguito automaticamente. Premere INVIO per eseguire il codice.

Esistono alcuni modi per avviare Cloud Shell:

Opzione Collega
Fare clic su Prova nell'angolo superiore destro di un blocco di codice. Cloud Shell in this article
Aprire Cloud Shell nel browser. https://shell.azure.com/powershell
Fare clic sul pulsante Cloud Shell nel menu in alto a destra nel portale di Azure. Cloud Shell in the portal

Questa procedura illustra come creare una rete virtuale e connessioni da sito a sito ed ExpressRoute coesistenti. I cmdlet usati per questa configurazione possono essere leggermente diversi da quelli con cui si ha familiarità. Assicurarsi di usare i cmdlet specificati in queste istruzioni.

  1. Accedere e selezionare la sottoscrizione.

    Se si usa Azure Cloud Shell, l'accesso all'account di Azure viene eseguito automaticamente quando si fa clic su 'Prova'. Per accedere in locale, aprire la console di PowerShell con privilegi elevati ed eseguire il cmdlet per connettersi.

    Connect-AzAccount
    

    Se si dispone di più sottoscrizioni, ottenere un elenco delle sottoscrizioni di Azure.

    Get-AzSubscription
    

    Specificare la sottoscrizione da usare.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Definire le variabili e creare un gruppo di risorse.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. Creare una rete virtuale che includa .GatewaySubnet Per altre informazioni sulle creazione di una rete virtuale, vedere Creare una rete virtuale. Per altre informazioni sulle creazione di subnet, vedere Creare una subnet

    Importante

    GatewaySubnet deve essere un prefisso /27 o più breve, ad esempio /26 o /25.

    Creare una nuova rete virtuale.

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

    Aggiungere due subnet denominate 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"
    

    Salvare la configurazione della rete virtuale.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. Creare quindi il gateway VPN da sito a sito. Per altre informazioni sulla configurazione del gateway VPN, vedere Configurare una rete virtuale con una connessione da sito a sito. GatewaySku è supportato soltanto nei gateway VPN VpnGw1, VpnGw2, VpnGw3, Standard e HighPerformance. Le configurazioni coesistenti di ExpressRoute-Gateway VPN non sono supportate nello SKU Basic. Il valore di VpnType deve essere 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"
    

    Il gateway VPN di Azure supporta il protocollo di routing BGP. È possibile specificare asn (numero AS) per la rete virtuale aggiungendo il -Asn flag nel comando seguente. Non specificando il Asn parametro per impostazione predefinita il numero AS è 65515.

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

    Nota

    Per i gateway coesistenti, è necessario usare l'ASN predefinito 65515. Per altre informazioni, vedere Limiti e limitazioni.

    È possibile trovare l'IP del peering BGP e il numero AS usato da Azure per il gateway VPN eseguendo $azureVpn.BgpSettings.BgpPeeringAddress e $azureVpn.BgpSettings.Asn. Per altre informazioni, vedere Configurare BGP per il gateway VPN di VPN.

  5. Creare un'entità gateway VPN del sito locale. Questo comando non configura il gateway VPN locale. Consente invece di fornire le impostazioni del gateway locale, ad esempio l'indirizzo IP pubblico e lo spazio indirizzi locale, in modo che il gateway VPN di Azure possa connettersi.

    Se il dispositivo VPN locale supporta solo il routing statico, è possibile configurare le route statiche nel modo seguente:

    $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 il dispositivo VPN locale supporta BGP e si vuole abilitare il routing dinamico, è necessario conoscere l'IP del peering BGP e il numero AS del dispositivo VPN locale.

    $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. Configurare il dispositivo VPN locale per la connessione al nuovo gateway VPN di Azure. Per altre informazioni sulla configurazione del dispositivo VPN, vedere l'articolo relativo alla configurazione del dispositivo VPN.

  7. Collegare il gateway VPN da sito a sito in Azure al gateway locale.

    $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 ci si connette a un circuito ExpressRoute esistente, ignorare i passaggi 8 e 9 e passare al passaggio 10. Configurare circuiti ExpressRoute. Per altre informazioni sulla configurazione del circuito ExpressRoute, vedere Creare un circuito ExpressRoute.

  9. Configurare il peering privato di Azure tramite il circuito ExpressRoute. Per altre informazioni sulla configurazione del peering privato di Azure tramite il circuito ExpressRoute, vedere l'articolo sulla configurazione del peering.

  10. Creare un gateway ExpressRoute. Per altre informazioni sulla configurazione di gateway ExpressRoute, vedere il relativo articolo. Il valore di GatewaySKU deve essere Standard, HighPerformance o 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. Collegare il gateway ExpressRoute al circuito ExpressRoute. Dopo aver completato questo passaggio, viene stabilita la connessione tra la rete locale e Azure tramite ExpressRoute. Per altre informazioni sull'operazione di collegamento, vedere Collegamento di reti virtuali a circuiti ExpressRoute.

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

Per aggiungere una configurazione da punto a sito al gateway VPN

È possibile seguire questa procedura per aggiungere una configurazione da punto a sito al gateway VPN in una configurazione di coesistenza. Per caricare il certificato radice VPN, è necessario installare PowerShell in locale nel computer oppure usare il portale di Azure.

  1. Aggiungere un pool di indirizzi client VPN.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
    
  2. Caricare il certificato radice VPN in Azure per il gateway VPN. In questo esempio si presuppone che il certificato radice venga archiviato nel computer locale in cui vengono eseguiti i cmdlet di PowerShell seguenti e che si esegue PowerShell in locale. È anche possibile caricare il certificato usando il portale di Azure.

    $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
    

Per altre informazioni sulle VPN da punto a sito, vedere Configurare una connessione da punto a sito.

Per abilitare il routing di transito tra ExpressRoute e VPN di Azure

Se si vuole abilitare la connettività tra una delle reti locali connesse a ExpressRoute e un'altra della rete locale connessa a una connessione VPN da sito a sito, è necessario configurare il server di route di Azure.

Passaggi successivi

Per altre informazioni su ExpressRoute, vedere le Domande frequenti su ExpressRoute.