Lägga till ett IPv4-program i IPv6 i ett virtuellt Azure-nätverk med hjälp av PowerShell

Den här artikeln visar hur du lägger till IPv6-anslutning till ett befintligt IPv4-program i ett virtuellt Azure-nätverk med en Standard Load Balancer och offentlig IP-adress. Uppgraderingen på plats omfattar:

  • IPv6-adressutrymme för det virtuella nätverket och undernätet
  • Standard Load Balancer med både IPv4- och IPV6-klientdelskonfigurationer
  • Virtuella datorer med nätverkskort som har både en IPv4 - och IPv6-konfiguration
  • Offentlig IP-adress för IPv6 så att lastbalanseraren har internetuppkopplad IPv6-anslutning

Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Button to launch Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Screenshot that shows the Cloud Shell button in the Azure portal

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

  3. Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.

  4. Välj Retur för att köra koden eller kommandot.

Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 6.9.0 eller senare. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.

Förutsättningar

Den här artikeln förutsätter att du har distribuerat en Standard Load Balancer enligt beskrivningen i Snabbstart: Skapa en Standard Load Balancer – Azure PowerShell.

Hämta resursgruppen

Innan du kan skapa det virtuella nätverket med dubbla staplar måste du hämta resursgruppen med Get-AzResourceGroup.

$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroupSLB"

Skapa en IP-adress för IPv6

Skapa en offentlig IPv6-adress med New-AzPublicIpAddress för din Standard Load Balancer. I följande exempel skapas en offentlig IPv6-IP-adress med namnet PublicIP_v6 i resursgruppen myResourceGroupSLB :

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

Konfigurera klientdelen för lastbalanseraren

Hämta den befintliga lastbalanserarens konfiguration och lägg sedan till den nya IP-adressen för IPv6 med hjälp av Add-AzLoadBalancerFrontendIpConfig på följande sätt:

# 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

Konfigurera lastbalanserarens serverdelspool

Skapa serverdelspoolen på den lokala kopian av lastbalanserarens konfiguration och uppdatera lastbalanseraren som körs med den nya serverdelspoolkonfigurationen enligt följande:

$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"

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

Konfigurera regler för lastbalanserare

Hämta den befintliga konfigurationen av lastbalanserarens klientdel och serverdelspool och lägg sedan till nya belastningsutjämningsregler med hjälp av 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

Lägga till IPv6-adressintervall

Lägg till IPv6-adressintervall i det virtuella nätverket och undernätet som är värd för de virtuella datorerna enligt följande:

#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

Lägga till IPv6-konfiguration i nätverkskortet

Konfigurera alla vm-nätverkskort med en IPv6-adress med hjälp av Add-AzNetworkInterfaceIpConfig på följande sätt:

#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

Visa virtuellt IPv6-nätverk med dubbla staplar i Azure-portalen

Du kan visa det virtuella IPv6-nätverket med dubbla staplar i Azure-portalen på följande sätt:

  1. I portalens sökfält anger du virtuella nätverk och

  2. I fönstret Virtuella nätverk väljer du myVNet.

  3. Välj Anslut enheter under Inställningar för att visa de anslutna nätverksgränssnitten. Det virtuella nätverket med dubbla staplar visar de tre nätverkskorten med både IPv4- och IPv6-konfigurationer.

    Screenshot of connected devices settings displaying IPv4 and IPv6 addresses on network interfaces.

Rensa resurser

När den inte längre behövs du använda kommandot Remove-AzResourceGroup för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser.

Remove-AzResourceGroup -Name MyAzureResourceGroupSLB

Nästa steg

I den här artikeln har du uppdaterat en befintlig Standard Load Balancer med en IP-konfiguration på IPv4-klientdelen till en konfiguration med dubbla staplar (IPv4 och IPv6). Du har också lagt till IPv6-konfigurationer till nätverkskorten för de virtuella datorerna i serverdelspoolen och till det virtuella nätverk som är värd för dem. Mer information om IPv6-stöd i virtuella Azure-nätverk finns i Vad är IPv6 för Azure Virtual Network?