Esercizio - Creare un gateway VPN da sito a sito usando i comandi dell'interfaccia della riga di comando di Azure

Completato

Ora si è pronti a completare il gateway VPN da sito a sito creando gli indirizzi IP pubblici, i gateway di rete virtuale e le connessioni. Tenere presente che sono stati usati segnaposto per i riferimenti agli indirizzi IP pubblici quando sono stati creati i gateway di rete locale, Quindi una delle operazioni da eseguire è aggiornare i gateway con gli indirizzi IP pubblici effettivi assegnati ai gateway di rete virtuale.

Idealmente, gli indirizzi IP pubblici e i gateway di rete virtuale devono essere creati prima dei gateway di rete locale. Questo esercizio illustra come aggiornare i gateway di rete locale. È possibile usare gli stessi comandi per aggiornare eventuali elementi di configurazione presenti nei gateway di rete locale, ad esempio gli spazi degli indirizzi della rete remota.

Creare il gateway VPN sul lato Azure

La prima operazione è la creazione del gateway VPN per l'estremità Azure della connessione. La creazione di un gateway di rete virtuale può richiedere fino a 45 minuti. Per risparmiare tempo, si useranno i comandi dell'interfaccia della riga di comando di Azure con il parametro --no-wait. Questo parametro consente di creare entrambi i gateway di rete virtuale simultaneamente per ridurre al minimo il tempo totale necessario per creare queste risorse.

  1. Eseguire il comando seguente in Cloud Shell per creare l'indirizzo IP pubblico PIP-VNG-Azure-VNet-1.

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --allocation-method Static
    
  2. Eseguire il comando seguente in Cloud Shell per creare la rete virtuale VNG-Azure-VNet-1.

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --subnet-name GatewaySubnet 
    
  3. Eseguire il comando seguente in Cloud Shell per creare il gateway di rete virtuale VNG-Azure-VNet-1.

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --public-ip-addresses PIP-VNG-Azure-VNet-1 \
        --vnet VNG-Azure-VNet-1 \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    

Creare il gateway VPN locale

Ora viene creato un gateway VPN per simulare un dispositivo VPN locale.

  1. Eseguire il comando seguente in Cloud Shell per creare l'indirizzo IP pubblico PIP-VNG-HQ-Network.

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --allocation-method Static
    
  2. Eseguire il comando seguente in Cloud Shell per creare la rete virtuale VNG-HQ-Network.

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --subnet-name GatewaySubnet 
    
  3. Eseguire il comando seguente in Cloud Shell per creare il gateway di rete virtuale VNG-HQ-Network.

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --public-ip-addresses PIP-VNG-HQ-Network \
        --vnet VNG-HQ-Network \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    
  4. Per il completamento della creazione del gateway sono necessari più di 30 minuti. Per monitorare lo stato di avanzamento della creazione del gateway, eseguire il comando seguente. Viene usato il comando Linux watch per eseguire periodicamente il comando az network vnet-gateway list, che consente di monitorare i progressi.

    watch -d -n 5 az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
  5. Dopo che ognuno dei gateway VPN ha mostrato il valore ProvisioningState Succeeded, si è pronti a continuare. Premere CTRL+C per arrestare il comando dopo la creazione del gateway.

    ActiveActive    EnableBgp    EnablePrivateIpAddress   GatewayType    Location        Name              ProvisioningState    ResourceGroup                         ResourceGuid                          VpnType
    --------------  -----------  ------------------------ -------------  --------------  ----------------  -------------------  -----------------------------  ------------------------------------  ----------
    False           False        False                    Vpn            southcentralus  VNG-Azure-VNet-1  Succeeded            <rgn>[sandbox resource group name]</rgn>  48dc714e-a700-42ad-810f-a8163ee8e001  RouteBased
    False           False        False                    Vpn            southcentralus  VNG-HQ-Network    Succeeded            <rgn>[sandbox resource group name]</rgn>  49b3041d-e878-40d9-a135-58e0ecb7e48b  RouteBased
    

Aggiornare i riferimenti IP dei gateway di rete locale

Importante

I gateway di rete virtuale devono essere distribuiti correttamente prima di iniziare l'esercizio successivo. Il completamento di un gateway può richiedere più di 30 minuti. Se il ProvisioningState non indica ancora "Operazione riuscita", è necessario attendere.

In questa sezione si aggiorneranno i riferimenti all'indirizzo IP del gateway remoto definiti nei gateway di rete locale. È possibile aggiornare il gateway di rete locale solo dopo aver creato i gateway VPN e aver assegnato e associato a tali gateway un indirizzo IPv4.

  1. Eseguire il comando dell'interfaccia della riga di comando di Azure seguente per controllare se sono stati creati entrambi i gateway di rete virtuale. Lo stato iniziale indica Aggiornamento. È necessario vedere Operazione riuscita sia in VNG-Azure-VNet-1 che in VNG-HQ-Network.

    az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
    Name              Location    GatewayType    VpnType     VpnGatewayGeneration    EnableBgp    EnablePrivateIpAddress    Active    ResourceGuid                        ProvisioningState    ResourceGroup
    ----------------  ----------  -------------  ----------  ----------------------  -----------  ------------------------  --------  ------------------------------------  -------------------  ------------------------------------------
    VNG-Azure-VNet-1  westus      Vpn            RouteBased  Generation1         False        False                     False     9a2e60e6-da57-4274-99fd-e1f8b2c0326d  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    VNG-HQ-Network    westus      Vpn            RouteBased  Generation1         False        False                     False     c36430ed-e6c0-4230-ae40-cf937a102bcd  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    

    Ricordarsi di attendere che gli elenchi dei gateway vengano restituiti correttamente. Ricordare anche che le risorse dei gateway di rete locale definiscono le impostazioni della rete e del gateway remoti con nomi corrispondenti. Ad esempio, il gateway di rete locale LNG-Azure-VNet-1 contiene informazioni come l'indirizzo IP e le reti per Azure-VNet-1.

  2. Eseguire il comando seguente in Cloud Shell per recuperare l'indirizzo IPv4 assegnato a PIP-VNG-Azure-VNet-1 e archiviarlo in una variabile.

    PIPVNGAZUREVNET1=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --query "[ipAddress]" \
        --output tsv)
    
  3. Eseguire il comando seguente in Cloud Shell per aggiornare il gateway di rete locale LNG-Azure-VNet-1 in modo che punti all'indirizzo IP pubblico collegato al gateway di rete virtuale VNG-Azure-VNet-1.

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-Azure-VNet-1 \
        --gateway-ip-address $PIPVNGAZUREVNET1
    
  4. Eseguire il comando seguente in Cloud Shell per recuperare l'indirizzo IPv4 assegnato a PIP-VNG-HQ-Network e archiviarlo in una variabile.

    PIPVNGHQNETWORK=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --query "[ipAddress]" \
        --output tsv)
    
  5. Eseguire il comando seguente in Cloud Shell per aggiornare il gateway di rete locale LNG-HQ-Network in modo che punti all'indirizzo IP pubblico collegato al gateway di rete virtuale VNG-HQ-Network.

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-HQ-Network \
        --gateway-ip-address $PIPVNGHQNETWORK
    

Creare le connessioni

Ora è possibile completare la configurazione creando le connessioni da ogni gateway VPN al gateway di rete locale che contiene i riferimenti all'indirizzo IP pubblico per la rete remota del gateway.

  1. Creare la chiave condivisa da usare per le connessioni. Nel comando seguente sostituire <shared key> con una stringa di testo da usare per la chiave pre-condivisa IPSec. La chiave pre-condivisa è una stringa di caratteri ASCII stampabili composta da un massimo di 128 caratteri. Non può contenere caratteri speciali, ad esempio trattini e tilde. Verrà usata in entrambe le connessioni.

    Nota

    In questo esempio qualsiasi serie di numeri funzionerà per una chiave condivisa: SHAREDKEY = 123456789. Negli ambienti di produzione è consigliabile usare una stringa di caratteri ASCII stampabili non più lunga di 128 caratteri senza caratteri speciali, ad esempio trattini o tilde.

    SHAREDKEY=<shared key>
    
  2. Tenere presente che LNG-HQ-Network contiene un riferimento all'indirizzo IP nel dispositivo VPN locale simulato. Eseguire il comando seguente in Cloud Shell per creare una connessione da VNG-Azure-VNet-1 a LNG-HQ-Network.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network \
        --vnet-gateway1 VNG-Azure-VNet-1 \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-HQ-Network
    
  3. Ricordare che LNG-Azure-VNet-1 contiene un riferimento all'indirizzo IP pubblico associato al gateway VPN VNG-Azure-VNet-1. Questa connessione in genere si crea dal dispositivo locale. Eseguire il comando seguente in Cloud Shell per creare una connessione da VNG-HQ-Network a LNG-Azure-VNet-1.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name HQ-Network-To-Azure-VNet-1  \
        --vnet-gateway1 VNG-HQ-Network \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-Azure-VNet-1
    

La configurazione della connessione da sito a sito è stata completata. L'operazione potrebbe richiedere alcuni minuti, ma i tunnel dovrebbero connettersi automaticamente e risultare attivi.

Passaggi di verifica

Verificare che i tunnel VPN siano connessi.

  1. Eseguire il comando seguente per verificare che Azure-VNet-1-To-HQ-Network sia connesso.

    az network vpn-connection show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network  \
        --output table \
        --query '{Name:name,ConnectionStatus:connectionStatus}'
    

    Verrà visualizzato un output simile al seguente che indica che la connessione ha avuto esito positivo. Se ConnectionStatus è Connecting o Unknown, attendere un minuto o due ed eseguire di nuovo il comando. Per completare le operazioni di connessione, possono essere necessari alcuni minuti.

    Name                        ConnectionStatus
    --------------------------  ------------------
    Azure-VNet-1-To-HQ-Network  Connected
    

La configurazione da sito a sito ora è completa. La topologia finale, incluse le subnet e le connessioni, con i punti di connessione logici, è illustrata nel diagramma seguente. Le macchine virtuali distribuite nelle subnet Services e Applications ora possono comunicare tra loro, dato che le connessioni VPN sono state stabilite correttamente.

Diagramma delle risorse distribuite durante l'esercizio dell'unità 4.