Connettere reti virtuali con il peering reti virtuali usando PowerShell
È 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 gratuito prima di iniziare.
Azure Cloud Shell
Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.
Per avviare Azure Cloud Shell:
Opzione | Esempio/Collegamento |
---|---|
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. | |
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. | |
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. |
Per usare Azure Cloud Shell:
Avviare Cloud Shell.
Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.
Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.
Selezionare Invio per eseguire il codice o il comando.
Se si sceglie di installare e usare PowerShell in locale, per questo articolo è necessario il modulo Azure PowerShell 1.0.0 o versione successiva. Eseguire Get-Module -ListAvailable Az
per trovare la versione installata. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell. Se si esegue PowerShell in locale, è anche necessario eseguire Connect-AzAccount
per creare una connessione con Azure.
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. Creare un gruppo di risorse con New-AzResourceGroup. Nell'esempio seguente viene creato un gruppo di risorse denominato test-rg nella posizione eastus.
$resourceGroup = @{
Name = "test-rg"
Location = "EastUS"
}
New-AzResourceGroup @resourceGroup
Creare una rete virtuale con New-AzVirtualNetwork. Nell'esempio seguente viene creata una rete virtuale denominata vnet-1 con il prefisso dell'indirizzo 10.0.0.0/16.
$vnet1 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork1 = New-AzVirtualNetwork @vnet1
Creare una configurazione di subnet con Add-AzVirtualNetworkSubnetConfig. Nell'esempio seguente viene creata una configurazione della subnet con prefisso di indirizzo 10.0.0.0/24:
$subConfig = @{
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
VirtualNetwork = $virtualNetwork1
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig
Scrivere la configurazione della subnet nella rete virtuale con Set-AzVirtualNetwork, che consente di creare la subnet:
$virtualNetwork1 | Set-AzVirtualNetwork
Creare una rete virtuale con il prefisso di indirizzo 10.1.0.0/16 e una subnet:
# Create the virtual network.
$vnet2 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
Name = "vnet-2"
AddressPrefix = "10.1.0.0/16"
}
$virtualNetwork2 = New-AzVirtualNetwork @vnet2
# Create the subnet configuration.
$subConfig = @{
Name = "subnet-1"
AddressPrefix = "10.1.0.0/24"
VirtualNetwork = $virtualNetwork2
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subConfig
# Write the subnet configuration to the virtual network.
$virtualNetwork2 | Set-AzVirtualNetwork
Peering reti virtuali
Creare un peering con Add-AzVirtualNetworkPeering. Nell'esempio seguente viene collegata vnet-1 a vnet-2.
$peerConfig1 = @{
Name = "vnet-1-to-vnet-2"
VirtualNetwork = $virtualNetwork1
RemoteVirtualNetworkId = $virtualNetwork2.Id
}
Add-AzVirtualNetworkPeering @peerConfig1
Nell'output restituito dopo l'esecuzione del comando precedente si può osservare che il valore di PeeringState è Initiated. Il peering rimane nello stato Initiated finché non si crea il peering da vnet-2 a vnet-1. Creare un peering da vnet-2 a vnet-1.
$peerConfig2 = @{
Name = "vnet-2-to-vnet-1"
VirtualNetwork = $virtualNetwork2
RemoteVirtualNetworkId = $virtualNetwork1.Id
}
Add-AzVirtualNetworkPeering @peerConfig2
Nell'output restituito dopo l'esecuzione del comando precedente si può osservare che il valore di PeeringState è Connected. Azure ha anche modificato lo stato di peering di vnet-1-to-vnet-2 a Connected. Verificare che lo stato del peering vnet-1-to-vnet-2 sia stato modificato in Connected con Get-AzVirtualNetworkPeering.
$peeringState = @{
ResourceGroupName = "test-rg"
VirtualNetworkName = "vnet-1"
}
Get-AzVirtualNetworkPeering @peeringState | Select PeeringState
Le risorse in una rete virtuale non possono comunicare con le risorse nell'altra rete virtuale finché il valore di PeeringState relativo ai peering in entrambe le reti virtuali non è Connected.
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 New-AzVM. Nell'esempio seguente viene creata una macchina virtuale denominata vm-1 nella rete virtuale vnet-1. L'opzione -AsJob
crea la macchina virtuale in background, pertanto è possibile continuare con il passaggio successivo. Quando richiesto, immettere il nome utente e la password per la macchina virtuale.
$vm1 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
ImageName = "Win2019Datacenter"
Name = "vm-1"
}
New-AzVm @vm1 -AsJob
Creare la seconda VM
$vm2 = @{
ResourceGroupName = "test-rg"
Location = "EastUS"
VirtualNetworkName = "vnet-2"
SubnetName = "subnet-1"
ImageName = "Win2019Datacenter"
Name = "vm-2"
}
New-AzVm @vm2
La creazione della VM richiede alcuni minuti. Non procedere con i passaggi successivi finché Azure non crea vm-2 e restituisce l'output in PowerShell.
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 del 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
È possibile connettersi all'indirizzo IP pubblico di una macchina virtuale da Internet. Usare Get-AzPublicIpAddress per restituire l'indirizzo IP pubblico di una macchina virtuale. L'esempio seguente restituisce l'indirizzo IP pubblico della macchina virtuale vm-1:
$ipAddress = @{
ResourceGroupName = "test-rg"
Name = "vm-1"
}
Get-AzPublicIpAddress @ipAddress | Select IpAddress
Usare il comando seguente per creare una sessione Desktop remoto con la macchina virtuale vm-1 dal computer locale. Sostituire <publicIpAddress>
con l'indirizzo IP restituito dal comando precedente.
mstsc /v:<publicIpAddress>
Viene creato e aperto un file Remote Desktop Protocol con estensione RDP. Immettere il nome utente e la password e quindi fare clic su OK. Per specificare le credenziali immesse durante la creazione della macchina virtuale, potrebbe essere necessario selezionare Altre opzioni e quindi Usa un account diverso. Durante il processo di accesso, è possibile che venga visualizzato un avviso relativo al certificato. Fare clic su Sì o Continua per procedere con la connessione.
Nella macchina virtuale vm-1, abilitare il protocollo ICMP (Internet Control Message Protocol) attraverso Windows Firewall, in modo che sia possibile effettuare il ping della macchina virtuale da vm-2 in un passaggio successivo tramite PowerShell:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Anche se in questo articolo viene usato il ping per la comunicazione tra le macchine virtuali, non è consigliabile consentire il protocollo ICMP tramite Windows Firewall per le distribuzioni di produzione.
Per stabilire la connessione a vm-2, immettere il comando seguente da un prompt dei comandi in vm-1:
mstsc /v:10.1.0.4
È stato abilitato il ping in vm-1. È ora possibile eseguire il ping di vm-1 in base all'indirizzo IP da un prompt dei comandi in vm-2.
ping 10.0.0.4
Si riceveranno quattro risposte. Disconnettere le sessioni RDP con vm-1 e vm-2.
Pulire le risorse
Quando non sono più necessari, usare Remove-AzResourcegroup per rimuovere il gruppo di risorse e tutte le risorse contenute.
Remove-AzResourceGroup -Name test-rg -Force
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.