Aggiungere un'applicazione IPv4 a IPv6 nella rete virtuale di Azure usando PowerShell

Questo articolo illustra come aggiungere la connettività IPv6 a un'applicazione IPv4 esistente in una rete virtuale di Azure con un'istanza di Load Balancer Standard e un indirizzo IP pubblico. L'aggiornamento sul posto include:

  • Spazio indirizzi IPv6 per la rete virtuale e la subnet
  • Load Balancer Standard con configurazioni front-end IPv4 e IPV6
  • Macchine virtuali con schede di interfaccia di rete con una configurazione IPv4 + IPv6
  • IP pubblico di tipo IPv6 in modo che il servizio di bilanciamento del carico abbia connettività IPv6 con connessione Internet

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. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.

  3. 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.

  4. 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 6.9.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.

Prerequisiti

Questo articolo presuppone che sia stata distribuita un'istanza di Load Balancer Standard come descritto in Avvio rapido: Creare un'istanza di Load Balancer Standard - Azure PowerShell.

Recuperare il gruppo di risorse

Prima di creare la rete virtuale dual stack, è necessario recuperare il gruppo di risorse con Get-AzResourceGroup.

$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroupSLB"

Creare indirizzi IP di tipo IPv6

Creare un indirizzo IPv6 pubblico con New-AzPublicIpAddress per Load Balancer Standard. L'esempio seguente crea un indirizzo IP pubblico di tipo IPv6 denominato PublicIP_v6 nel gruppo di risorse myResourceGroupSLB:

$PublicIP_v6 = New-AzPublicIpAddress `
  -Name "PublicIP_v6" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Sku Standard  `
  -AllocationMethod Static `
  -IpAddressVersion IPv6

Configurare il front-end del servizio di bilanciamento del carico

Recuperare la configurazione del servizio di bilanciamento del carico esistente e quindi aggiungere il nuovo indirizzo IP di tipo IPv6 usando Add-AzLoadBalancerFrontendIpConfig come indicato di seguito:

# Retrieve the load balancer configuration
$lb = Get-AzLoadBalancer -ResourceGroupName $rg.ResourceGroupName -Name "MyLoadBalancer"

# Add IPv6 components to the local copy of the load balancer configuration
$lb | Add-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v6" `
  -PublicIpAddress $PublicIP_v6

#Update the running load balancer with the new frontend
$lb | Set-AzLoadBalancer

Configurare il pool back-end del servizio di bilanciamento del carico

Creare il pool back-end nella copia locale della configurazione del servizio di bilanciamento del carico e aggiornare il servizio di bilanciamento del carico in esecuzione con la nuova configurazione del pool back-end come indicato di seguito:

$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"

# Update the running load balancer with the new backend pool
$lb | Set-AzLoadBalancer

Configurare le regole del servizio di bilanciamento del carico

Recuperare la configurazione del pool front-end e back-end del servizio di bilanciamento del carico esistente e quindi aggiungere nuove regole di bilanciamento del carico usando Add-AzLoadBalancerRuleConfig.

# Retrieve the updated (live) versions of the frontend and backend pool
$frontendIPv6 = Get-AzLoadBalancerFrontendIpConfig -Name "dsLbFrontEnd_v6" -LoadBalancer $lb
$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6" -LoadBalancer $lb

# Create new LB rule with the frontend and backend
$lb | Add-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80

#Finalize all the load balancer updates on the running load balancer
$lb | Set-AzLoadBalancer

Aggiungere intervalli di indirizzi IPv6

Aggiungere intervalli di indirizzi IPv6 alla rete virtuale e alla subnet che ospitano le macchine virtuali come indicato di seguito:

#Add IPv6 ranges to the VNET and subnet
#Retreive the VNET object
$vnet = Get-AzVirtualNetwork  -ResourceGroupName $rg.ResourceGroupName -Name "myVnet" 

#Add IPv6 prefix to the VNET
$vnet.addressspace.addressprefixes.add("fd00:db8:deca::/48")

#Update the running VNET
$vnet |  Set-AzVirtualNetwork

#Retrieve the subnet object from the local copy of the VNET
$subnet= $vnet.subnets[0]

#Add IPv6 prefix to the Subnet (subnet of the VNET prefix, of course)
$subnet.addressprefix.add("fd00:db8:deca::/64")

#Update the running VNET with the new subnet configuration
$vnet |  Set-AzVirtualNetwork

Aggiungere la configurazione IPv6 alla scheda di interfaccia di rete

Configurare tutte le schede di interfaccia di rete della macchina virtuale con un indirizzo IPv6 usando Add-AzNetworkInterfaceIpConfig come indicato di seguito:

#Retrieve the NIC objects
$NIC_1 = Get-AzNetworkInterface -Name "myNic1" -ResourceGroupName $rg.ResourceGroupName
$NIC_2 = Get-AzNetworkInterface -Name "myNic2" -ResourceGroupName $rg.ResourceGroupName
$NIC_3 = Get-AzNetworkInterface -Name "myNic3" -ResourceGroupName $rg.ResourceGroupName

#Add an IPv6 IPconfig to NIC_1 and update the NIC on the running VM
$NIC_1 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_1 | Set-AzNetworkInterface

#Add an IPv6 IPconfig to NIC_2 and update the NIC on the running VM
$NIC_2 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_2 | Set-AzNetworkInterface

#Add an IPv6 IPconfig to NIC_3 and update the NIC on the running VM
$NIC_3 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_3 | Set-AzNetworkInterface

Visualizzare la rete virtuale dual stack IPv6 in portale di Azure

È possibile visualizzare la rete virtuale dual stack IPv6 in portale di Azure come indicato di seguito:

  1. Nella barra di ricerca del portale, immettere reti virtuali e

  2. Nella finestra Reti virtuali, selezionare myVNet.

  3. Selezionare Dispositivi connessi in Impostazioni per visualizzare le interfacce di rete collegate. La rete virtuale dual stack mostra le tre schede di interfaccia di rete con configurazioni IPv4 e IPv6.

    Screenshot delle impostazioni dei dispositivi connessi che visualizzano gli indirizzi IPv4 e IPv6 nelle interfacce di rete.

Pulire le risorse

Quando non servono più, è possibile usare il comando Remove-AzResourceGroup per rimuovere il gruppo di risorse, la macchina virtuale e tutte le risorse correlate.

Remove-AzResourceGroup -Name MyAzureResourceGroupSLB

Passaggi successivi

In questo articolo è stata aggiornata un'istanza di Load Balancer Standard esistente con una configurazione IP front-end IPv4 a una configurazione dual stack (IPv4 e IPv6). Sono state aggiunte anche configurazioni IPv6 alle schede di interfaccia di rete delle macchine virtuali nel pool back-end e alla rete virtuale che le ospita. Per altre informazioni sul supporto IPv6 nelle reti virtuali di Azure, vedere Che cos'è IPv6 per la rete virtuale di Azure?