Condividi tramite


Connettere reti virtuali da modelli di distribuzione diversi usando PowerShell

Questo articolo fornisce le informazioni necessarie per connettere reti virtuali classiche a reti virtuali di Resource Manager, in modo da consentire alle risorse presenti nei modelli di distribuzione separati di comunicare tra loro. Nella procedura descritta in questo articolo viene usato PowerShell.

Questo articolo è destinato ai clienti che hanno già una rete virtuale creata usando il modello di distribuzione classico (legacy) e che ora vogliono connettere la rete virtuale classica a un'altra rete virtuale creata usando il modello di distribuzione più recente. Se non si ha già una rete virtuale legacy, consultare invece l'articolo Creare una connessione da rete virtuale a rete virtuale.

Architettura

La connessione di una rete virtuale classica a una rete virtuale di Resource Manager è simile alla connessione di una rete virtuale a una posizione del sito locale. Entrambi i tipi di connettività utilizzano un gateway VPN per fornire un tunnel sicuro tramite IPsec/IKE. È possibile creare una connessione tra reti virtuali in sottoscrizioni diverse e in aree diverse. È anche possibile connettere reti virtuali che già dispongono di connessioni alle reti locali, purché il gateway sia dinamico o basato su route. Per altre informazioni sulle connessioni da rete virtuale a rete virtuale, vedere le Domande frequenti sulle connessioni da rete virtuale a rete virtuale.

Per questa configurazione si crea una connessione gateway VPN tramite un tunnel VPN IPsec/IKE tra le reti virtuali. Assicurarsi che nessun intervallo di reti virtuali si sovrapponga a un altro o a una delle reti locali alle quali si connette.

La tabella seguente illustra un esempio di come sono definiti le reti virtuali e i siti locali:

Rete virtuale Spazio di indirizzi Paese Si connette al sito della rete locale
ClassicVNet (10.1.0.0/16) Stati Uniti occidentali RMVNetSite (192.168.0.0/16)
RMVNet (192.168.0.0/16) Stati Uniti orientali ClassicVNetSite (10.1.0.0/16)

Prerequisiti

I passaggi seguenti illustrano le impostazioni necessarie per configurare un gateway dinamico o basato su route per ogni rete virtuale e creare una connessione VPN tra i gateway. Questa configurazione non supporta i gateway con routing statico o basati su criteri.

Questa procedura presuppone che sia già stata creata una rete virtuale classica legacy e una rete virtuale di Resource Manager.

  • Verificare che gli intervalli di indirizzi per le reti virtuali non si sovrappongano tra loro o con gli intervalli di altre connessioni a cui i gateway potrebbero essere connessi.

  • In questo articolo viene usato PowerShell. Installare sul computer i cmdlet PowerShell più recenti sia per Resource Manager che per Gestione dei servizi.

    Sebbene sia possibile eseguire alcuni dei comandi di PowerShell usando l'ambiente Azure Cloud Shell, è necessario installare entrambe le versioni dei cmdlet per creare correttamente le connessioni.

    Per altre informazioni, vedere Come installare e configurare Azure PowerShell.

Impostazioni di esempio

È possibile usare questi valori per comprendere meglio gli esempi.

Rete virtuale classica

Nome rete virtuale = ClassicVNet
Gruppo di risorse = ClassicRG Area geografica = Stati Uniti occidentali
Spazi degli indirizzi della rete virtuale = 10.1.0.0/16
Subnet1 = 10.1.0.0/24
GatewaySubnet = 10.1.255.0/27
Nome della rete locale = RMVNetSite
GatewayType = DynamicRouting

Rete virtuale di Resource Manager

Nome della rete virtuale = RMVNet
Gruppo di risorse = RMRG
Spazi degli indirizzi della rete virtuale = 192.168.0.0/16
Subnet1 = 192.168.1.0/24
GatewaySubnet = 192.168.255.0/27
Località = Stati Uniti orientali
Nome IP pubblico del gateway = rmgwpip
Gateway di rete locale = ClassicVNetSite
Nome gateway di rete virtuale = RMGateway
Configurazione di indirizzamento IP del gateway = gwipconfig

Configurare la rete virtuale classica

In questa sezione viene configurata la rete virtuale classica esistente. Se la rete virtuale ha già un gateway, verificare che il gateway sia basato su route, quindi passare alla sezione successiva. Se il gateway non è basato su route, eliminare il gateway prima di procedere con i passaggi successivi. Sarà possibile creare un nuovo gateway in un secondo momento.

1. Eseguire il download del file di configurazione di rete

  1. Accedere all'account Azure nella console di PowerShell con diritti elevati. Il cmdlet seguente richiede le credenziali di accesso per l'account Azure. Dopo l'accesso, vengono scaricate le impostazioni dell'account in modo che siano disponibili per Azure PowerShell. In questa sezione vengono usati i cmdlet di Azure PowerShell di Gestione dei servizi classici.

    Add-AzureAccount
    

    Ottenere la sottoscrizione di Azure.

    Get-AzureSubscription
    

    Se sono disponibili più sottoscrizioni, selezionare la sottoscrizione da usare.

    Select-AzureSubscription -SubscriptionName "Name of subscription"
    
  2. Creare una directory sul computer. Per questo esempio è stato creato AzureNet.

  3. Esportare il file di configurazione di rete di Azure eseguendo il comando seguente. Se necessario è possibile modificare il percorso del file da esportare.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  4. Aprire il file XML scaricato per modificarlo. Per un esempio del file di configurazione di rete, vedere lo Schema di configurazione di rete.

  5. Prendere nota del valore VirtualNetworkSite name=. Se la rete virtuale classica è stata creata usando il portale, nel portale il nome avrà un formato simile a "Group ClassicRG ClassicVNet", anziché "ClassicVNet".

2. Verificare la subnet del gateway

Nell'elemento VirtualNetworkSites aggiungere una subnet del gateway alla rete virtuale se non ne è ancora stato creato uno. La subnet del gateway DEVE essere denominata "GatewaySubnet", altrimenti Azure non potrà riconoscerla e utilizzarla come una subnet del gateway.

Importante

I gruppi di sicurezza di rete nella subnet del gateway non sono supportati. Se si associa un gruppo di sicurezza di rete a tale subnet, il gateway della rete virtuale (VPN e gateway Express Route) potrebbe smettere di funzionare come previsto. Per altre informazioni sui gruppi di sicurezza di rete, vedere Che cos'è un gruppo di sicurezza di rete.

Esempio:

<VirtualNetworkSites>
  <VirtualNetworkSite name="ClassicVNet" Location="West US">
    <AddressSpace>
      <AddressPrefix>10.1.0.0/16</AddressPrefix>
    </AddressSpace>
    <Subnets>
      <Subnet name="Subnet1">
        <AddressPrefix>10.1.0.0/24</AddressPrefix>
      </Subnet>
      <Subnet name="GatewaySubnet">
        <AddressPrefix>10.1.255.0/27</AddressPrefix>
      </Subnet>
    </Subnets>
  </VirtualNetworkSite>
</VirtualNetworkSites>

3. Aggiungere il sito di rete locale

Il sito di rete locale aggiunto rappresenta la rete virtuale di Resource Manager a cui si desidera connettersi. Aggiungere un elemento LocalNetworkSites al file, se non ne esiste già uno. A questo punto nella configurazione, il parametro VPNGatewayAddress può essere qualsiasi indirizzo IP pubblico valido poiché non è stato ancora creato il gateway per la rete virtuale di Resource Manager. Dopo aver creato il gateway RM, l'indirizzo IP segnaposto verrà sostituito con l'indirizzo IP pubblico corretto assegnato al gateway di Resource Manager.

<LocalNetworkSites>
  <LocalNetworkSite name="RMVNetSite">
    <AddressSpace>
      <AddressPrefix>192.168.0.0/16</AddressPrefix>
    </AddressSpace>
    <VPNGatewayAddress>5.4.3.2</VPNGatewayAddress>
  </LocalNetworkSite>
</LocalNetworkSites>

4. Associare la rete locale al sito della rete locale

Questa sezione descrive come specificare il sito di rete locale a cui si desidera connettere la rete virtuale. In questo caso, è la rete virtuale di Resource Manager a cui si è fatto riferimento in precedenza. Assicurarsi che i nomi corrispondano. Questo passaggio non crea un gateway. Specifica la rete locale a cui il gateway si collegherà.

<Gateway>
  <ConnectionsToLocalNetwork>
    <LocalNetworkSiteRef name="RMVNetSite">
      <Connection type="IPsec" />
    </LocalNetworkSiteRef>
  </ConnectionsToLocalNetwork>
</Gateway>

5. Salvare il file e caricarlo

Salvare il file, quindi importarlo in Azure eseguendo il comando seguente. Assicurarsi di modificare il percorso del file in base al proprio ambiente.

Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml

Viene visualizzato un risultato simile che mostra che l'importazione è stata completata.

OperationDescription        OperationId                      OperationStatus                                                
--------------------        -----------                      ---------------                                                
Set-AzureVNetConfig        e0ee6e66-9167-cfa7-a746-7casb9    Succeeded 

6. Creare il gateway

Prima di eseguire questo esempio, vedere i nomi esatti previsti da Azure nel file di configurazione di rete scaricato. Il file di configurazione di rete contiene i valori per le reti virtuali classiche. Quando viene creata una rete virtuale classica usando il portale, il nome della rete virtuale è diverso nel file di configurazione di rete. Ad esempio, se è stato usato il portale di Azure per creare una rete virtuale classica denominata "Classic VNet"' in un gruppo di risorse denominato "ClassicRG", il nome contenuto nel file di configurazione di rete viene convertito in "Group ClassicRG Classic VNet". Usare sempre il nome contenuto nel file di configurazione di rete quando si usa PowerShell.Quando si specifica il nome di una rete virtuale che contiene spazi, racchiudere il valore tra virgolette.

Usare l'esempio seguente per creare un gateway con routing dinamico:

New-AzureVNetGateway -VNetName ClassicVNet -GatewayType DynamicRouting

È possibile controllare lo stato del gateway tramite il cmdlet Get-AzureVNetGateway.

Configurare il gateway di rete virtuale RM

I prerequisiti sono basati sul presupposto che si sia già creata una rete virtuale di Resource Manager. In questo passaggio si crea un gateway VPN per la rete virtuale di Resource Manager. Non eseguire questi passaggi fino a quando non si è recuperato l'indirizzo IP pubblico del gateway della rete virtuale classica.

  1. Accedere all'account di Azure nella console PowerShell. Il cmdlet seguente richiede le credenziali di accesso per l'account Azure. Dopo l'accesso, le impostazioni dell'account verranno scaricate e saranno disponibili per Azure PowerShell. Facoltativamente, è possibile usare la funzionalità "Prova" per avviare Azure Cloud Shell nel browser.

    Se si usa Azure Cloud Shell, ignorare il cmdlet seguente:

    Connect-AzAccount
    

    Per verificare che si stia usando la sottoscrizione corretta, eseguire il cmdlet seguente:

    Get-AzSubscription
    

    Se sono disponibili più sottoscrizioni, specificare la sottoscrizione da usare.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. Creare un gateway di rete locale. In una rete virtuale il gateway di rete locale in genere fa riferimento al percorso locale. In questo caso, il gateway di rete locale fa riferimento alla rete virtuale classica. Assegnargli un nome che Azure possa usare come riferimento e specificare il prefisso dello spazio indirizzi. Azure usa il prefisso di indirizzo IP che viene specificato per identificare il traffico da inviare al percorso locale. Se si desidera modificare le informazioni prima di creare il gateway, è possibile modificare i valori ed eseguire nuovamente l'esempio.

    -Name è il nome da assegnare per fare riferimento al gateway di rete locale.
    -AddressPrefix è lo spazio degli indirizzi per una rete virtuale classica.
    -GatewayIpAddress è l'indirizzo IP pubblico del gateway della rete virtuale classica. Assicurarsi di modificare il testo di esempio "n.n.n.n" sostituendolo con l'indirizzo IP corretto.

    New-AzLocalNetworkGateway -Name ClassicVNetSite `
    -Location "West US" -AddressPrefix "10.1.0.0/16" `
    -GatewayIpAddress "n.n.n.n" -ResourceGroupName RMRG
    
  3. Richiedere un indirizzo IP pubblico da allocare al gateway di rete virtuale di Resource Manager. Non è possibile specificare l'indirizzo IP che si vuole usare. L'indirizzo IP viene allocato in modo dinamico al gateway di rete virtuale. Ciò non significa però che l'indirizzo IP verrà modificato. L'indirizzo IP del gateway di rete virtuale viene modificato solamente quando il gateway viene eliminato e ricreato. Non viene modificato in caso di ridimensionamento, reimpostazione o altre manutenzioni/aggiornamenti del gateway.

    In questo passaggio viene anche impostata una variabile che verrà usata in un passaggio successivo.

    $ipaddress = New-AzPublicIpAddress -Name rmgwpip `
    -ResourceGroupName RMRG -Location 'EastUS' `
    -AllocationMethod Dynamic
    
  4. Verificare che la rete virtuale abbia una subnet gateway. Se non esiste alcuna subnet del gateway, aggiungerne una. Assicurarsi che la subnet del gateway sia denominata GatewaySubnet.

    $vnet = Get-AzVirtualNetwork -ResourceGroupName RMRG -Name RMVNet
    Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 192.168.255.0/27 -VirtualNetwork $vnet
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  5. Recuperare la subnet usata per il gateway eseguendo il comando seguente. In questo passaggio, è anche possibile impostare una variabile da usare nel passaggio successivo.

    -Name è il nome della rete virtuale di Resource Manager.
    -ResourceGroupName è il gruppo di risorse a cui la rete virtuale è associata. Per poter funzionare correttamente, la subnet del gateway deve esistere già per questa rete virtuale e deve essere denominata GatewaySubnet .

    $subnet = Get-AzVirtualNetworkSubnetConfig -Name GatewaySubnet `
    -VirtualNetwork (Get-AzVirtualNetwork -Name RMVNet -ResourceGroupName RMRG)
    
  6. Creare la configurazione di indirizzamento IP del gateway. La configurazione del gateway definisce la subnet e l'indirizzo IP pubblico da utilizzare. Per creare la configurazione del gateway, usare l'esempio seguente.

    In questo passaggio i parametri -SubnetId e -PublicIpAddressId devono essere passati alla proprietà ID dalla subnet e dagli oggetti dell'indirizzo IP rispettivamente. Non è possibile usare una semplice stringa. Queste variabili vengono impostate nel passaggio per richiedere un indirizzo IP pubblico e nel passaggio per recuperare la subnet.

    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig `
    -Name gwipconfig -SubnetId $subnet.id `
    -PublicIpAddressId $ipaddress.id
    
  7. Creare il gateway di rete virtuale di Resource Manager tramite il comando seguente. -VpnType deve essere RouteBased. La creazione del gateway può richiedere oltre 45 minuti.

    New-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG `
    -Location "EastUS" -GatewaySKU Standard -GatewayType Vpn `
    -IpConfigurations $gwipconfig `
    -EnableBgp $false -VpnType RouteBased
    
  8. Dopo che il gateway della rete privata virtuale è stato creato, copiare l'indirizzo IP pubblico. Verrà usato al momento della configurazione delle impostazioni di rete locale per la rete virtuale classica. È possibile usare il cmdlet seguente per recuperare l'indirizzo IP pubblico. L'indirizzo IP pubblico viene elencato nel valore restituito come IpAddress.

    Get-AzPublicIpAddress -Name rmgwpip -ResourceGroupName RMRG
    

Modificare le impostazioni del sito locale della rete virtuale classica

In questa sezione viene usata la rete virtuale classica. Viene sostituito l'indirizzo IP segnaposto usato nella specifica delle impostazioni del sito locale, che verrà usato per connettersi al gateway di rete virtuale di Resource Manager. Poiché si lavora con la rete virtuale classica, usare PowerShell installato localmente nel computer, non la funzionalità "Prova" di Azure Cloud Shell.

  1. Esportare il file di configurazione della rete.

    Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml
    
  2. In un editor di testo modificare il valore di VPNGatewayAddress. Sostituire l'indirizzo IP segnaposto con l'indirizzo IP pubblico del gateway di Resource Manager e salvare le modifiche.

    <VPNGatewayAddress>13.68.210.16</VPNGatewayAddress>
    
  3. Importare il file di configurazione di rete modificato in Azure.

    Set-AzureVNetConfig -ConfigurationPath C:\AzureNet\NetworkConfig.xml
    

Creazione di una connessione tra i gateway

La creazione di una connessione tra i gateway richiede PowerShell. Potrebbe essere necessario aggiungere l'account Azure per usare la versione classica dei cmdlet di PowerShell. A tale scopo, usare Add-AzureAccount.

  1. Nella console di PowerShell impostare la chiave condivisa. Prima di eseguire i cmdlet, vedere i nomi esatti previsti da Azure nel file di configurazione di rete scaricato. Quando si specifica il nome di una rete virtuale che contiene spazi, racchiudere il valore tra virgolette singole.

    Nell'esempio seguente -VNetName è il nome della rete virtuale classica, mentre -LocalNetworkSiteName è il nome specificato per il sito della rete locale. Verificare i nomi di entrambi nel file di configurazione di rete scaricato in precedenza.

    -SharedKey è un valore che è possibile generare e specificare. Per questo esempio è stato usato "abc123", ma è possibile generare e usare un elemento più complesso. È importante che il valore specificato qui sia lo stesso valore specificato nel passaggio successivo quando si crea la connessione. Il valore restituito deve mostrare lo stato: Operazione completata.

    Set-AzureVNetGatewayKey -VNetName ClassicVNet `
    -LocalNetworkSiteName RMVNetSite -SharedKey abc123
    
  2. Creare la connessione VPN eseguendo i comandi seguenti:

    Impostare le variabili.

    $vnet01gateway = Get-AzLocalNetworkGateway -Name ClassicVNetSite -ResourceGroupName RMRG
    $vnet02gateway = Get-AzVirtualNetworkGateway -Name RMGateway -ResourceGroupName RMRG
    

    Creare la connessione. Si noti che -ConnectionType è IPsec, non Vnet2Vnet.

    New-AzVirtualNetworkGatewayConnection -Name RM-Classic -ResourceGroupName RMRG `
    -Location "East US" -VirtualNetworkGateway1 `
    $vnet02gateway -LocalNetworkGateway2 `
    $vnet01gateway -ConnectionType IPsec -RoutingWeight 10 -SharedKey 'abc123'
    

Verificare le connessioni

Dalla rete virtuale classica alla rete virtuale RM

È possibile verificare se la connessione è riuscita usando il cmdlet "Get-AzureVNetConnection". Questo cmdlet deve essere eseguito localmente nel computer.

  1. Per configurare i valori in modo che corrispondano ai propri, usare l'esempio di cmdlet seguente. Il nome della rete virtuale deve essere tra virgolette se contiene spazi. Usare il nome della rete virtuale, così come compare nel file di configurazione di rete.

    Get-AzureVNetConnection "ClassicVNet"
    
  2. Al termine dell'esecuzione del cmdlet, visualizzare i valori. Nell'esempio seguente lo stato di connettività risulta “Connesso” ed è possibile visualizzare i byte in ingresso e in uscita.

    ConnectivityState         : Connected
    EgressBytesTransferred    : 0
    IngressBytesTransferred   : 0
    LastConnectionEstablished : 4/25/2022 4:24:34 PM
    LastEventID               : 24401
    LastEventMessage          : The connectivity state for the local network site 'RMVNetSite' changed from Not Connected to Connected.
    LastEventTimeStamp        : 4/25/2022 4:24:34 PM
    LocalNetworkSiteName      : RMVNetSite
    OperationDescription      :
    OperationId               :
    OperationStatus           :
    

Dalla rete virtuale RM alla rete virtuale classica

Per verificare l'esito positivo della connessione è possibile usare il cmdlet 'Get-AzVirtualNetworkGatewayConnection' con o senza '-Debug'.

  1. Per configurare i valori in modo che corrispondano ai propri, usare l'esempio di cmdlet seguente. Quando richiesto, selezionare "A" per eseguire "Tutti". Il valore " -Name" nell'esempio fa riferimento al nome della connessione che si vuole testare.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. Al termine dell'esecuzione del cmdlet, visualizzare i valori. Nell'esempio seguente lo stato di connessione risulta “Connesso” ed è possibile visualizzare i byte in ingresso e in uscita.

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

Passaggi successivi

Per altre informazioni sulle connessioni da rete virtuale a rete virtuale, vedere le Domande frequenti sul gateway VPN.