Condividi tramite


Collegare una rete virtuale a un circuito ExpressRoute con Azure PowerShell

Questo articolo spiega come collegare le reti virtuali ai circuiti di Azure ExpressRoute usando il modello di distribuzione di Resource Manager e PowerShell. Le reti virtuali possono essere nella stessa sottoscrizione o appartenere a un'altra sottoscrizione. Questa esercitazione illustra inoltre come aggiornare un collegamento alla rete virtuale.

Diagramma che mostra una rete virtuale collegata a un circuito ExpressRoute.

Prerequisiti

  • Verificare i prerequisiti, i requisiti di routing e i flussi di lavoro.

  • È necessario avere un circuito ExpressRoute attivo.

    • Seguire le istruzioni per creare un circuito ExpressRoute e fare in modo che venga abilitato dal provider di connettività.
    • Assicurarsi di disporre del peering privato di Azure configurato per il circuito. Vedere l'articolo relativo alla configurazione del routing per istruzioni relative al routing.
    • Assicurarsi che il peering privato di Azure sia configurato e stabilisca il peering BGP tra la rete e Microsoft per la connettività end-to-end.
    • Assicurarsi di disporre di una rete virtuale e di un gateway di rete virtuale creati e con provisioning completo. Seguire le istruzioni per creare un gateway di rete virtuale per ExpressRoute. Un gateway di rete virtuale per ExpressRoute usa ExpressRoute come GatewayType e non VPN.
  • È possibile collegare fino a 10 reti virtuali a un circuito ExpressRoute standard. Tutte le reti virtuali devono essere nella stessa area geopolitica quando si usa un circuito ExpressRoute standard.

  • Una singola rete virtuale può essere collegata a un massimo di 16 circuiti ExpressRoute. Seguire i passaggi di questo articolo per creare un nuovo oggetto di connessione per ogni circuito ExpressRoute a cui ci si connette. I circuiti ExpressRoute possono essere nella stessa sottoscrizione, diverse sottoscrizioni o una combinazione di entrambe le situazioni.

  • Abilitando il componente aggiuntivo ExpressRoute Premium, è possibile collegare reti virtuali esterne all'area geopolitica del circuito ExpressRoute. Il componente aggiuntivo Premium consente di collegare più di 10 reti virtuali al circuito ExpressRoute, a seconda della larghezza di banda scelta. Per altre informazioni sul componente aggiuntivo Premium, vedere le domande frequenti .

  • Per creare la connessione dal circuito ExpressRoute al gateway di rete virtuale ExpressRoute di destinazione, il numero di spazi indirizzi annunciati dalle reti virtuali locali o con peering deve essere uguale o minore di 200. Dopo aver creato la connessione, è possibile aggiungere alle reti virtuali locali o con peering altri spazi indirizzi, fino a un massimo di 1.000.

  • Esaminare le indicazioni per la Connettività tra reti virtuali tramite ExpressRoute.

Uso di Azure PowerShell

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 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

Connettere una rete virtuale

Resilienza massima (scelta consigliata): offre il massimo livello di resilienza alla rete virtuale. Fornisce due connessioni ridondanti dal gateway di rete virtuale a due circuiti ExpressRoute diversi in posizioni ExpressRoute diverse.

Clonare lo script

Per creare connessioni con resilienza massima, clonare lo script di installazione da GitHub.

# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/ 
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/

Eseguire lo script New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 per creare connessioni a disponibilità elevata. L'esempio seguente illustra come creare due nuove connessioni a due circuiti ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$circuit2 = Get-AzExpressRouteCircuit -Name "MyCircuit2" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name1 "ERConnection1" -Name2 "ERConnection2" -Peer1 $circuit1.Peerings[0] -Peer2 $circuit2.Peerings[0] -RoutingWeight1 10 -RoutingWeight2 10 -VirtualNetworkGateway1 $gw

Se si vuole creare una nuova connessione e usarne una esistente, è possibile usare l'esempio seguente. Questo esempio crea una nuova connessione a un secondo circuito ExpressRoute e usa una connessione esistente al primo circuito ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = Get-AzVirtualNetworkGatewayConnection -Name "ERConnection1" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name2 "ERConnection2" -Peer2 $circuit1.Peerings[0] -RoutingWeight2 10 -VirtualNetworkGateway1 $gw -ExistingVirtualNetworkGatewayConnection $connection

Collegare una rete virtuale di un'altra sottoscrizione a un circuito

È possibile condividere un circuito ExpressRoute tra più sottoscrizioni. La figura seguente mostra un semplice schema del funzionamento della condivisione di circuiti ExpressRoute tra più sottoscrizioni.

Nota

La connessione di reti virtuali tra cloud sovrani di Azure e il cloud pubblico di Azure non è supportata. È possibile collegare solo reti virtuali da sottoscrizioni diverse nello stesso cloud.

Ciascuno dei cloud più piccoli nel cloud di grandi dimensioni viene usato per rappresentare le sottoscrizioni appartenenti a reparti diversi di un'organizzazione. Ciascun reparto dell'organizzazione usa la propria sottoscrizione per distribuire i servizi, ma può condividere un solo circuito ExpressRoute per la connessione alla rete locale. Un singolo reparto (in questo esempio, IT) può possedere il circuito ExpressRoute. Altre sottoscrizioni all'interno dell'organizzazione possono usare il circuito ExpressRoute.

Nota

I costi relativi a connettività e larghezza di banda per il circuito ExpressRoute saranno addebitati al proprietario della sottoscrizione. Tutte le reti virtuali condividono la stessa larghezza di banda.

Connettività tra sottoscrizioni

Amministrazione - Proprietari e utenti del circuito

Il proprietario del circuito è l'utente esperto autorizzato della risorsa circuito ExpressRoute. Il proprietario del circuito può creare le autorizzazioni che possono essere riscattate dagli "utenti del circuito". Gli utenti del circuito sono i proprietari dei gateway di rete virtuale che non sono nella stessa sottoscrizione del circuito ExpressRoute. Gli utenti del circuito possono riscattare le autorizzazioni (un'autorizzazione per ogni rete virtuale).

Il proprietario del circuito ha la facoltà di modificare e revocare le autorizzazioni in qualsiasi momento. La revoca dell'autorizzazione comporterà l'eliminazione di tutti i collegamenti dalla sottoscrizione di cui è stato revocato l'accesso.

Nota

Il proprietario del circuito non è un ruolo Controllo degli accessi in base al ruolo predefinito o definito nella risorsa ExpressRoute. La definizione del proprietario del circuito è qualsiasi ruolo con l'accesso seguente:

  • Microsoft.Network/expressRouteCircuits/authorizations/write
  • Microsoft.Network/expressRouteCircuits/authorizations/read
  • Microsoft.Network/expressRouteCircuits/authorizations/delete

Sono inclusi i ruoli predefiniti, ad esempio Collaboratore, Proprietario e Collaboratore di rete. Vedere la descrizione dettagliata dei diversi ruoli predefiniti.

Operazioni del proprietario del circuito

Per creare un'autorizzazione

Il proprietario del circuito crea un'autorizzazione, che crea a sua volta una chiave di autorizzazione che può essere usata da un utente del circuito per connettere i propri gateway di rete virtuale al circuito ExpressRoute. Un'autorizzazione è valida per una sola connessione.

Il frammento di cmdlet seguente mostra come creare un'autorizzazione:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$auth1 = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"

La risposta ai comandi precedenti contiene la chiave di autorizzazione e lo stato:

Name                   : MyAuthorization1
Id                     : /subscriptions/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/CrossSubTest/authorizations/MyAuthorization1
Etag                   : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
AuthorizationKey       : ####################################
AuthorizationUseStatus : Available
ProvisioningState      : Succeeded

Per verificare le autorizzazioni

Il proprietario del circuito può esaminare tutte le autorizzazioni rilasciate in un particolare circuito eseguendo il cmdlet seguente:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Per aggiungere le autorizzazioni

Il proprietario del circuito può aggiungere le autorizzazioni usando il cmdlet seguente:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization2"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Per eliminare le autorizzazioni

Il proprietario del circuito può revocare o eliminare le autorizzazioni dell'utente eseguendo il cmdlet seguente:

Remove-AzExpressRouteCircuitAuthorization -Name "MyAuthorization2" -ExpressRouteCircuit $circuit
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

Operazioni dell'utente del circuito

L’utente del circuito deve richiedere l’ID peer e una chiave di autorizzazione al proprietario del circuito. La chiave di autorizzazione è un GUID.

L'ID peer può essere controllato con il comando seguente:

Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"

Per riscattare un'autorizzazione di connessione

L'utente del circuito può eseguire il cmdlet seguente per riscattare un'autorizzazione di collegamento:

$id = "/subscriptions/********************************/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/MyCircuit"    
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "RemoteResourceGroup" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $id -ConnectionType ExpressRoute -AuthorizationKey "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

Per rilasciare un'autorizzazione di connessione

È possibile rilasciare un'autorizzazione eliminando il collegamento del circuito ExpressRoute alla rete virtuale.

Modificare una connessione di rete virtuale

È possibile aggiornare alcune proprietà di una connessione di rete virtuale.

Per aggiornare il peso della connessione

La rete virtuale può essere connessa a più circuiti ExpressRoute. È possibile ricevere lo stesso prefisso da più di un circuito ExpressRoute. Per scegliere la connessione per l'invio di traffico destinato per questo prefisso, è possibile modificare il valore RoutingWeight di una connessione. Il traffico viene inviato sulla connessione con il valore RoutingWeight più elevato.

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyVirtualNetworkConnection" -ResourceGroupName "MyRG"
$connection.RoutingWeight = 100
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

L'intervallo di RoutingWeight va da 0 a 32.000. Il valore predefinito è 0.

Configurare ExpressRoute FastPath

È possibile abilitare ExpressRoute FastPath se il gateway di rete virtuale è Prestazioni extra o ErGw3AZ. FastPath migliora le prestazioni del percorso dati come i pacchetti al secondo e le connessioni al secondo tra la rete locale e la rete virtuale.

Configurare FastPath in una nuova connessione

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG" 
$gw = Get-AzVirtualNetworkGateway -Name "MyGateway" -ResourceGroupName "MyRG" 
$connection = New-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" -ExpressRouteGatewayBypass -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute -Location "MyLocation" 

Aggiornamento di una connessione esistente per abilitare FastPath

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" 
$connection.ExpressRouteGatewayBypass = $True
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Con il supporto per il peering di reti virtuale e le route definite dall'utente, FastPath invierà il traffico direttamente alle macchine virtuali distribuite nelle reti virtuali "spoke" (collegate tramite peering di rete virtuale) e rispedirà eventuali route definite dall'utente configurate in GatewaySubnet. Questa funzionalità è ora disponibile a livello generale.

Con FastPath e il collegamento privato, il traffico del collegamento privato inviato tramite ExpressRoute ignora il gateway di rete virtuale ExpressRoute nel percorso dati. Quando entrambe queste funzionalità sono abilitate, FastPath invierà direttamente il traffico a un endpoint privato distribuito in una rete virtuale "spoke".

Questi scenari sono disponibili a livello generale per scenari limitati con connessioni associate a circuiti ExpressRoute Direct da 10 Gbps e 100 Gbps. Per abilitarle, seguire queste indicazioni:

  1. Compilare questo modulo Microsoft per richiedere la registrazione della sottoscrizione. Il completamento delle richieste può richiedere fino a quattro settimane, quindi pianificare le distribuzioni di conseguenza.
  2. Dopo aver ricevuto una conferma dal passaggio 1, eseguire il comando di Azure PowerShell seguente nella sottoscrizione di Azure di destinazione.
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <resource-group> -ResourceName <connection-name>
$connection.ExpressRouteGatewayBypass = $true
$connection.EnablePrivateLinkFastPath = $true
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Nota

È possibile usare Monitoraggio connessione per verificare che il traffico raggiunga la destinazione tramite FastPath.

Nota

L'abilitazione del supporto per il collegamento privato FastPath per scenari con disponibilità generale limitata può richiedere più di quattro settimane. Pianificare in anticipo le distribuzioni.

Il supporto FastPath per il peering di reti virtuali e le route definite dall'utente è disponibile solo per le connessioni ExpressRoute Direct.

Nota

Se FastPath è già configurato e si vuole eseguire la registrazione alle funzionalità disponibili a livello generale con limitazioni, è necessario eseguire le operazioni seguenti:

  1. Eseguire la registrazione a una delle funzionalità di anteprima di FastPath con i comandi di Azure PowerShell.
  2. Disabilitare e quindi riabilitare FastPath nella connessione di destinazione.
  3. Per passare dalla funzionalità disponibile a livello generale con limitazioni, registrare la sottoscrizione con il comando PowerShell di anteprima di destinazione e quindi disabilitare e abilitare nuovamente FastPath per la connessione.

Pulire le risorse

Se la connessione ExpressRoute non serve più, usare il comando Remove-AzVirtualNetworkGatewayConnection dalla sottoscrizione in cui si trova il the gateway per rimuovere il collegamento tra il gateway e il circuito.

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

Passaggi successivi

In questa esercitazione è stato illustrato come connettere una rete virtuale a un circuito nella stessa sottoscrizione e in una sottoscrizione diversa. Per altre informazioni sui gateway ExpressRoute, vedere Gateway di rete virtuale per ExpressRoute.

Per informazioni su come configurare i filtri di route per il peering Microsoft con PowerShell, passare all'esercitazione successiva.