Configurare connessioni coesistenti da sito a sito ed ExpressRoute usando PowerShell

Questo articolo illustra come configurare connessioni ExpressRoute e VPN 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 oppure usare VPN da sito a sito per connettersi a siti che non sono connessi tramite ExpressRoute. In questo articolo verranno 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 di tipo VPN da sito a sito ed ExpressRoute offre diversi vantaggi:

  • È possibile configurare una VPN da sito a sito come percorso di failover protetto per ExpressRoute.
  • In alternativa, è possibile usare la VPN da sito a sito per connettersi ai siti che non sono 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 tali scenari tramite il portale di Azure, nonostante la documentazione non sia ancora disponibile. È possibile configurare per primo uno dei due gateway. In genere, l'aggiunta di un nuovo gateway o di una connessione gateway non comporterà tempi di inattività.

Nota

Se si vuole creare una VPN da sito a sito su un circuito ExpressRoute, vedere questo articolo.

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 Connettersi a più dispositivi VPN basati su criteri.
  • Le configurazioni di coesistenza di ExpressRoute-Gateway VPN non sono supportate nello SKU Di base.
  • Se si vuole usare il routing di transito tra ExpressRoute e VPN, l'asN di Azure Gateway VPN deve essere impostato su 65515 e il server di route di Azure deve essere usato. Il gateway VPN di Azure 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) oppure verrà visualizzato un messaggio di errore quando si aggiunge il gateway di rete virtuale di ExpressRoute.
  • La coesistenza in una rete virtuale dual stack non è supportata. Se si usa il supporto IPv6 di ExpressRoute e un gateway di ExpressRoute dual stack, la coesistenza con Gateway VPN non sarà 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 ExpressRoute. Questa connessione si applica solo alle reti virtuali collegate al percorso di peering privato di Azure. Non esiste alcuna soluzione di failover basato su VPN per i servizi accessibili tramite i peering di Microsoft Azure. Il circuito ExpressRoute è sempre il collegamento principale. Il flusso dei dati attraversa il percorso VPN da sito a sito solo se il circuito ExpressRoute ha esito negativo. Per evitare routing asimmetrici, la configurazione della rete locale dovrebbe anche preferire il circuito ExpressRoute rispetto alla connessione VPN da sito a sito. A tal fine, impostare una preferenza locale prioritaria per le route ricevute tramite il circuito ExpressRoute.

Nota

Se è stato abilitato il peering Microsoft di 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.

Nota

Mentre il circuito ExpressRoute viene preferito sulla VPN da sito a sito quando entrambe le route sono uguali, Azure userà la corrispondenza di prefisso più lunga per scegliere la route verso la destinazione del pacchetto.

Diagramma che mostra una connessione VPN da sito a sito come backup per ExpressRoute.

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

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

Coesistenza

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 è disponibile una rete virtuale, questa procedura consente la creazione di una nuova rete virtuale e di nuove connessioni ExpressRoute e VPN da sito a sito usando il modello di distribuzione di Resource Manager. Per configurare una rete virtuale, seguire la procedura in Per creare una nuova rete virtuale con connessioni coesistenti.

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

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

    Eliminare e ricreare il gateway può causare tempi di inattività delle connessioni cross-premise. Le macchine virtuali e i servizi saranno comunque in grado di comunicare tramite il servizio di bilanciamento del carico mentre si configura il gateway, se sono configurati in questo senso.

Prima di iniziare

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 Collegamento
Fare clic su Prova nell'angolo superiore destro di un blocco di codice. Cloud Shell in questo articolo
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 nel portale

Per creare una nuova rete virtuale con connessioni coesistenti

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. Impostare le variabili.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. Creare una rete virtuale con una subnet del gateway. 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

    La subnet del gateway deve avere 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 le subnet.

    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 di 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 rete virtuale con una connessione da sito a sito. GatewaySku è supportato soltanto nei gateway VPN VpnGw1, VpnGw2, VpnGw3, Standard e HighPerformance. Le configurazioni con coesistenza di gateway VPN ed ExpressRoute non sono supportate nello SKU di livello 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 il codice ASN (Numero AS) per la rete virtuale aggiungendo il parametro -Asn nel comando seguente. Se non si specifica questo parametro, il numero AS predefinito sarà 65515.

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

    Nota

    Per i gateway coesistenza, è necessario usare l'ASN predefinito 65515. Vedere limiti e limitazioni.

    È possibile trovare l'IP del peering BGP e il numero AS usati da Azure per il gateway VPN in $azureVpn.BgpSettings.BgpPeeringAddress e in $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 usati dal 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 & 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 sul circuito ExpressRoute, vedere Configurare il 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 configurare connessioni coesistenti per una rete virtuale esistente

Se è presente una rete virtuale che include un solo gateway di rete virtuale (ad esempio, un gateway VPN da sito a sito) e si vuole aggiungere un altro gateway di un tipo diverso (ad esempio, un gateway ExpressRoute), controllare le dimensioni della subnet del gateway. Se la subnet del gateway ha dimensioni pari a /27 o superiori, è possibile ignorare i passaggi seguenti e seguire invece i passaggi della sezione precedente per aggiungere un gateway VPN da sito a sito o un gateway ExpressRoute. Se la subnet del gateway è /29 o /28, è necessario eliminare prima di tutto il gateway di rete virtuale e aumentare le dimensioni della subnet del gateway. I passaggi descritti in questa sezione illustrano come eseguire questa operazione.

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. Eliminare il gateway ExpressRoute o VPN da sito a sito esistente.

    Remove-AzVirtualNetworkGateway -Name <yourgatewayname> -ResourceGroupName <yourresourcegroup>
    
  2. Eliminare la subnet del gateway.

    $vnet = Get-AzVirtualNetwork -Name <yourvnetname> -ResourceGroupName <yourresourcegroup> Remove-AzVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet
    
  3. Aggiungere una subnet del gateway di /27 o superiore.

    Nota

    Se non sono rimasti indirizzi IP sufficienti nella rete virtuale per aumentare le dimensioni della subnet del gateway, è necessario aggiungere altro spazio di indirizzi IP.

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

    Salvare la configurazione di rete virtuale.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. A questo punto, la rete virtuale è priva di gateway. Per creare nuovi gateway e configurare le connessioni, usare gli esempi seguenti:

    Impostare le variabili.

    $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
    

    Creare il gateway.

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

    Creare la connessione.

    $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

Per aggiungere una configurazione da punto a sito al gateway VPN in una configurazione di coesistenza, è possibile seguire questa procedura. Per caricare il certificato radice VPN, è necessario installare PowerShell localmente 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 rete locale connessa a ExpressRoute e un'altra della rete locale connessa a una connessione VPN da sito a sito, sarà necessario configurare Il server di route di Azure.

Passaggi successivi

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