Connettere reti virtuali con il peering di rete virtuale usando l'interfaccia della riga di comando di Azure

È possibile connettere due reti virtuali tra loro con il peering reti virtuali. Dopo che è stato eseguito il peering, le risorse delle due reti virtuali possono comunicare tra loro con la stessa larghezza di banda e la stessa latenza che sarebbero disponibili se si trovassero nella stessa rete virtuale.

In questo articolo vengono illustrate le operazioni seguenti:

  • Creare due reti virtuali

  • Connettere due reti virtuali con un peering di reti virtuali

  • Distribuire una macchina virtuale in ogni rete virtuale

  • Stabilire la comunicazione tra le macchine virtuali

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

  • Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.0.28 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare reti virtuali

Prima di creare una rete virtuale, è necessario creare un gruppo di risorse per la rete virtuale e tutte le altre risorse create in questo articolo. Come prima cosa creare un gruppo di risorse con az group create. Nell'esempio seguente viene creato un gruppo di risorse denominato test-rg nella posizione eastus .

az group create \
    --name test-rg \
    --location eastus

Creare una rete virtuale con az network vnet create. Nell'esempio seguente viene creata una rete virtuale denominata vnet-1 con il prefisso dell'indirizzo 10.0.0.0/16.

az network vnet create \
  --name vnet-1 \
  --resource-group test-rg \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24

Creare una rete virtuale denominata vnet-2 con il prefisso dell'indirizzo 10.1.0.0/16:

az network vnet create \
  --name vnet-2 \
  --resource-group test-rg \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.1.0.0/24

Peering reti virtuali

I peering vengono stabiliti tra GLI ID di rete virtuale. Ottenere l'ID di ogni rete virtuale con az network vnet show e archiviare l'ID in una variabile.

# Get the id for vnet-1.
vNet1Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-1 \
  --query id --out tsv)

# Get the id for vnet-2.
vNet2Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-2 \
  --query id \
  --out tsv)

Creare un peering da vnet-1 a vnet-2 con az network vnet peering create. Se il --allow-vnet-access parametro non è specificato, viene stabilito un peering, ma nessuna comunicazione può fluire attraverso di essa.

az network vnet peering create \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

Come si può vedere nell'output restituito dopo l'esecuzione del comando precedente, lo stato peeringState è Initiated. Il peering rimane nello stato Avviato fino a quando non si crea il peering da vnet-2 a vnet-1. Creare un peering da vnet-2 a vnet-1.

az network vnet peering create \
  --name vnet-2-to-vnet-1 \
  --resource-group test-rg \
  --vnet-name vnet-2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

Come si può vedere nell'output restituito dopo l'esecuzione del comando precedente, lo stato peeringState è ora Connected. Azure ha anche modificato lo stato di peering del peering vnet-1-to-vnet-2 in Connessione ed. Verificare che lo stato del peering per il peering vnet-1-to-vnet-2 sia stato modificato in Connessione ed con az network vnet peering show.

az network vnet peering show \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --query peeringState

Le risorse in una rete virtuale non possono comunicare con le risorse nell'altra rete virtuale finché non viene Connessione il peeringState per i peering in entrambe le reti virtuali.

Creare macchine virtuali

Creare una macchina virtuale in ogni rete virtuale per poter stabilire la comunicazione tra di esse in un passaggio successivo.

Creare la prima VM

Creare una VM con il comando az vm create. L'esempio seguente crea una macchina virtuale denominata vm-1 nella rete virtuale vnet-1 . Se le chiavi SSH non esistono già in una posizione predefinita, vengono create dal comando. Per usare un set specifico di chiavi, utilizzare l'opzione --ssh-key-value. L'opzione --no-wait crea la macchina virtuale in background, pertanto è possibile continuare con il passaggio successivo.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --generate-ssh-keys \
  --no-wait

Creare la seconda VM

Creare una macchina virtuale nella rete virtuale vnet-2 .

az vm create \
  --resource-group test-rg \
  --name vm-2 \
  --image Ubuntu2204 \
  --vnet-name vnet-2 \
  --subnet subnet-1 \
  --generate-ssh-keys

La creazione della VM richiede alcuni minuti. Dopo aver creato la macchina virtuale, l'interfaccia della riga di comando di Azure mostra informazioni simili all'esempio seguente:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "test-rg"
}

Prendere nota di publicIpAddress. Questo indirizzo viene usato per accedere alla VM da Internet in un passaggio successivo.

Nota

Azure fornisce un IP di accesso in uscita predefinito per le macchine virtuali a cui non è stato assegnato un indirizzo IP pubblico o che si trovano nel pool back-end di un servizio del bilanciamento del carico di base di Azure. Il meccanismo dell'IP di accesso in uscita predefinito fornisce un IP in uscita non configurabile.

L'IP di accesso in uscita predefinito è disabilitato quando si verifica uno degli eventi seguenti:

  • Alla macchina virtuale viene assegnato un indirizzo IP pubblico.
  • La macchina virtuale è posizionata nel pool back-end di un servizio di bilanciamento del carico standard, con o senza regole in uscita.
  • Una risorsa gateway NAT di Azure viene assegnata alla subnet della macchina virtuale.

Le macchine virtuali create usando set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non hanno l'accesso in uscita predefinito.

Per altre informazioni sulle connessioni in uscita in Azure, vedere Accesso in uscita predefinito in Azure e Uso di Source Network Address Translation (SNAT) per le connessioni in uscita.

Stabilire la comunicazione tra le macchine virtuali

Usare il comando seguente per creare una sessione SSH con la macchina virtuale vm-2 . Sostituire <publicIpAddress> con l'indirizzo IP pubblico della macchina virtuale. Nell'esempio precedente l'indirizzo IP pubblico è 13.90.242.231.

ssh <publicIpAddress>

Eseguire il ping della macchina virtuale in vnet-1.

ping 10.0.0.4 -c 4

Si riceveranno quattro risposte.

Chiudere la sessione SSH alla macchina virtuale vm-2 .

Pulire le risorse

Quando il gruppo di risorse e tutte le risorse in esso contenute non sono più necessari, usare az group delete per rimuoverli.

az group delete \
    --name test-rg \
    --yes

Passaggi successivi

In questo articolo è stato illustrato come connettere due reti nella stessa area di Azure con il peering di rete virtuale. È anche possibile creare un peering di reti virtuali in aree supportate diverse e in sottoscrizioni di Azure diverse e creare progettazioni di rete di tipo hub-spoke con peering. Per altre informazioni sul peering di rete virtuale, vedere Peering di rete virtuale e Gestire un peering di rete virtuale.

È possibile connettere il proprio computer a una rete virtuale tramite una VPN e interagire con le risorse in una rete virtuale o in reti virtuali associate tramite peering. Vedere gli esempi di script riutilizzabili per completare molte delle attività illustrate negli articoli relativi alle reti virtuali.