Distribuire un'applicazione dual stack IPv6 nella rete virtuale di Azure usando l'interfaccia della riga di comando di Azure
Questo articolo illustra come distribuire un'applicazione dual stack (IPv4 + IPv6) usando Load Balancer Standard in Azure, che include una rete virtuale dual stack con una subnet dual stack, un servizio Load Balancer Standard con doppie configurazioni front-end (IPv4 + IPv6), macchine virtuali con schede di interfaccia di rete con doppia configurazione IP, doppie regole del gruppo di sicurezza di rete e doppi indirizzi IP pubblici.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido di Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede la versione 2.0.49 o successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un gruppo di risorse
Prima di creare la rete virtuale dual stack, è necessario creare un gruppo di risorse con il comando az group create. L'esempio seguente crea un gruppo di risorse denominato DsResourceGroup01 nella località eastus:
az group create \
--name DsResourceGroup01 \
--location eastus
Creare indirizzi IP pubblici IPv4 e IPv6 per il bilanciamento del carico
Per accedere agli endpoint IPv4 e Ipv6 da Internet, sono necessari indirizzi IP pubblici IPv4 e IPv6 per il servizio di bilanciamento del carico. Creare un indirizzo IP pubblico con az network public-ip create. L'esempio seguente crea l'indirizzo IP pubblico IPv4 e IPv6 denominato dsPublicIP_v4 e dsPublicIP_v6 nel gruppo di risorse DsResourceGroup01:
# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4 \
--resource-group DsResourceGroup01 \
--location eastus \
--sku STANDARD \
--allocation-method static \
--version IPv4
# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6 \
--resource-group DsResourceGroup01 \
--location eastus \
--sku STANDARD \
--allocation-method static \
--version IPv6
Creare indirizzi IP pubblici per le macchine virtuali
Per accedere in remoto alle macchine virtuali in Internet, sono necessari indirizzi IP pubblici IPv4 per le macchine virtuali. Creare un indirizzo IP pubblico con az network public-ip create.
az network public-ip create \
--name dsVM0_remote_access \
--resource-group DsResourceGroup01 \
--location eastus \
--sku Standard \
--allocation-method static \
--version IPv4
az network public-ip create \
--name dsVM1_remote_access \
--resource-group DsResourceGroup01 \
--location eastus \
--sku Standard \
--allocation-method static \
--version IPv4
Creare un'istanza di Load Balancer Standard
In questa sezione vengono configurati il doppio indirizzo IP front-end (IPv4 e IPv6) e il pool di indirizzi back-end per il servizio di bilanciamento del carico e viene creata un'istanza di Load Balancer Standard.
Creare un servizio di bilanciamento del carico
Usare il comando az network lb create per creare un servizio Load Balancer Standard denominato dsLB, che include un pool front-end denominato dsLbFrontEnd_v4 e un pool back-end denominato dsLbBackEndPool_v4, associato all'indirizzo IP pubblico IPv4 dsPublicIP_v4 creato nel passaggio precedente.
az network lb create \
--name dsLB \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4 \
--public-ip-address dsPublicIP_v4 \
--backend-pool-name dsLbBackEndPool_v4
Creare front-end IPv6
Creare un indirizzo IP front-end IPv6 con az network lb frontend-ip create. L'esempio seguente crea una configurazione IP front-end denominata dsLbFrontEnd_v6, a cui associa l'indirizzo dsPublicIP_v6:
az network lb frontend-ip create \
--lb-name dsLB \
--name dsLbFrontEnd_v6 \
--resource-group DsResourceGroup01 \
--public-ip-address dsPublicIP_v6
Configurare il pool di indirizzi back-end IPv6
Creare un pool di indirizzi back-end IPv6 con il comando az network lb address-pool create. L'esempio seguente crea un pool di indirizzi back-end denominato dsLbBackEndPool_v6 per includere macchine virtuali con configurazioni della scheda di interfaccia di rete IPv6:
az network lb address-pool create \
--lb-name dsLB \
--name dsLbBackEndPool_v6 \
--resource-group DsResourceGroup01
Creare un probe di integrità
Creare un probe di integrità con il comando az network lb probe create per monitorare l'integrità delle macchine virtuali.
az network lb probe create -g DsResourceGroup01 --lb-name dsLB -n dsProbe --protocol tcp --port 3389
Creare una regola di bilanciamento del carico
Una regola di bilanciamento del carico consente di definire come il traffico verrà distribuito alle VM. Definire la configurazione IP front-end per il traffico in ingresso e il pool IP back-end per la ricezione del traffico, insieme alle porte di origine e di destinazione necessarie.
Creare una regola di bilanciamento del carico con az network lb rule create. L'esempio seguente crea regole di bilanciamento del carico denominate dsLBrule_v4 e dsLBrule_v6 e bilancia il traffico sulla porta TCP 80 alle configurazioni IP front-end IPv4 e IPv6:
az network lb rule create \
--lb-name dsLB \
--name dsLBrule_v4 \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v4 \
--protocol Tcp \
--frontend-port 80 \
--backend-port 80 \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4
az network lb rule create \
--lb-name dsLB \
--name dsLBrule_v6 \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6 \
--protocol Tcp \
--frontend-port 80 \
--backend-port 80 \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6
Creare risorse di rete
Prima di distribuire le macchine virtuali, è necessario creare alcune risorse di rete di supporto: set di disponibilità, gruppo di sicurezza di rete, rete virtuale e schede di interfaccia di rete virtuali.
Creare un set di disponibilità
Per aumentare la disponibilità dell'app, posizionare le macchine virtuali in un set di disponibilità.
Creare un set di disponibilità con az vm availability-set create. L'esempio seguente crea un set di disponibilità chiamato dsAVset:
az vm availability-set create \
--name dsAVset \
--resource-group DsResourceGroup01 \
--location eastus \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Creare un gruppo di sicurezza di rete
Creare un gruppo di sicurezza di rete per le regole che regolamentano le comunicazioni in ingresso e in uscita della rete virtuale.
Creare un gruppo di sicurezza di rete
Creare un gruppo di sicurezza di rete con il comando az network nsg create
az network nsg create \
--name dsNSG1 \
--resource-group DsResourceGroup01 \
--location eastus
Creare una regola del gruppo di sicurezza di rete per consentire connessioni in ingresso e in uscita
Creare una regola del gruppo di sicurezza di rete per consentire connessioni RDP tramite la porta 3389, la connessione Internet tramite la porta 80 e connessioni in uscita con az network nsg rule create.
# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 100 \
--description "Allow Remote Desktop In" \
--access Allow \
--protocol "*" \
--direction Inbound \
--source-address-prefixes "*" \
--source-port-ranges "*" \
--destination-address-prefixes "*" \
--destination-port-ranges 3389
# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 200 \
--description "Allow HTTP In" \
--access Allow \
--protocol "*" \
--direction Inbound \
--source-address-prefixes "*" \
--source-port-ranges 80 \
--destination-address-prefixes "*" \
--destination-port-ranges 80
# Create outbound rule
az network nsg rule create \
--name allowAllOut \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 300 \
--description "Allow All Out" \
--access Allow \
--protocol "*" \
--direction Outbound \
--source-address-prefixes "*" \
--source-port-ranges "*" \
--destination-address-prefixes "*" \
--destination-port-ranges "*"
Creare una rete virtuale
Creare una rete virtuale con az network vnet create. L'esempio seguente crea una rete virtuale denominata dsVNET con le subnet dsSubNET_v4 e dsSubNET_v6:
# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"
# Create a single dual stack subnet
az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1
Creare NIC
Creare schede di interfaccia di rete virtuali per ogni macchina virtuale con il comando az network nic create. L'esempio seguente crea una scheda di interfaccia di rete virtuale per ogni macchina virtuale. Ogni scheda di interfaccia di rete ha due configurazioni IP (una configurazione IPv4 e una IPv6). Creare la configurazione IPv6 con az network nic ip-config create.
# Create NICs
az network nic create \
--name dsNIC0 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM0_remote_access
az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access
# Create IPV6 configurations for each NIC
az network nic ip-config create \
--name dsIp6Config_NIC0 \
--nic-name dsNIC0 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB
az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB
Creare macchine virtuali
Creare le VM con az vm create. L'esempio seguente crea due macchine virtuali e i componenti di rete virtuale necessari, se non sono già disponibili.
Creare la macchina virtuale dsVM0 come indicato di seguito:
az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
Creare la macchina virtuale dsVM1 come indicato di seguito:
az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
Visualizzare la rete virtuale dual stack IPv6 nel portale di Azure
È possibile visualizzare la rete virtuale dual stack IPv6 nel portale di Azure come indicato di seguito:
- Nella barra di ricerca del portale immettere dsVnet.
- Selezionare myVirtualNetwork quando viene visualizzato nei risultati della ricerca. Verrà avviata la pagina Panoramica della rete virtuale dual stack denominata dsVnet. La rete virtuale dual stack mostra le due schede di interfaccia di rete con configurazioni IPv4 e IPv6 che si trovano nella subnet dual stack denominata dsSubnet.
Pulire le risorse
Quando non servono più, è possibile usare il comando az group delete per rimuovere il gruppo di risorse, la macchina virtuale e tutte le risorse correlate.
az group delete --name DsResourceGroup01
Passaggi successivi
In questo articolo è stato creato un servizio Load Balancer Standard con una doppia configurazione IP front-end (IPv4 e IPv6). Sono state anche create due macchine virtuali che includono schede di interfaccia di rete con doppie configurazioni IP (IPv4 + IPv6), aggiunte al pool back-end del servizio di bilanciamento del carico. Per altre informazioni sul supporto IPv6 nelle reti virtuali di Azure, vedere Che cos'è IPv6 per la rete virtuale di Azure?