Een IPv4-toepassing toevoegen aan IPv6 in een virtueel Azure-netwerk met behulp van PowerShell

In dit artikel leest u hoe u IPv6-connectiviteit toevoegt aan een bestaande IPv4-toepassing in een virtueel Azure-netwerk met een Standard Load Balancer en openbaar IP-adres. De in-place upgrade omvat:

  • IPv6-adresruimte voor het virtuele netwerk en subnet
  • Standard Load Balancer met zowel IPv4- als IPV6-front-endconfiguraties
  • VM's met NIC's met een IPv4- en IPv6-configuratie
  • Openbaar IPv6-IP-adres zodat de load balancer internetgerichte IPv6-connectiviteit heeft

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Button to launch Azure Cloud Shell.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Als u PowerShell lokaal wilt installeren en gebruiken, is voor dit artikel versie 6.9.0 of hoger van de Azure PowerShell-module vereist. Voer Get-Module -ListAvailable Az uit om te kijken welke versie is geïnstalleerd. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Als u PowerShell lokaal uitvoert, moet u ook Connect-AzAccount uitvoeren om verbinding te kunnen maken met Azure.

Vereisten

In dit artikel wordt ervan uitgegaan dat u een Standard Load Balancer hebt geïmplementeerd, zoals beschreven in quickstart: Een Standard Load Balancer maken - Azure PowerShell.

De resourcegroep ophalen

Voordat u uw virtuele dual-stack-netwerk kunt maken, moet u de resourcegroep ophalen met Get-AzResourceGroup.

$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroupSLB"

Een IPv6-IP-adres maken

Maak een openbaar IPv6-adres met New-AzPublicIpAddress voor uw Standard Load Balancer. In het volgende voorbeeld wordt een openbaar IPv6-IP-adres gemaakt met de naam PublicIP_v6 in de resourcegroep myResourceGroupSLB:

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

Front-end voor load balancer configureren

Haal de bestaande load balancer-configuratie op en voeg als volgt het nieuwe IPv6-IP-adres toe met behulp van Add-AzLoadBalancerFrontendIpConfig :

# 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

Back-endpool van load balancer configureren

Maak de back-endpool op de lokale kopie van de load balancer-configuratie en werk de actieve load balancer als volgt bij met de nieuwe configuratie van de back-endpool:

$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"

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

Regels voor load balancers configureren

Haal de bestaande front-end- en back-endpoolconfiguratie van de load balancer op en voeg vervolgens nieuwe taakverdelingsregels toe met behulp van 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

IPv6-adresbereiken toevoegen

Voeg als volgt IPv6-adresbereiken toe aan het virtuele netwerk en subnet dat als host fungeert voor de VM's:

#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

IPv6-configuratie toevoegen aan NIC

Configureer alle VM-NIC's met een IPv6-adres als volgt met behulp van Add-AzNetworkInterfaceIpConfig :

#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

Virtueel IPv6-netwerk met dubbele stack weergeven in Azure Portal

U kunt het virtuele IPv6-netwerk met dubbele stack als volgt weergeven in Azure Portal:

  1. Voer in de zoekbalk van de portal virtuele netwerken in en

  2. Selecteer myVNet in het venster Virtuele netwerken.

  3. Selecteer Verbinding maken apparaten onder Instellingen om de gekoppelde netwerkinterfaces weer te geven. Het virtuele netwerk met dubbele stack toont de drie NIC's met zowel IPv4- als IPv6-configuraties.

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

Resources opschonen

U kunt de opdracht Remove-AzResourceGroup gebruiken om de resourcegroep, de VM en alle gerelateerde resources te verwijderen wanneer u ze niet meer nodig hebt.

Remove-AzResourceGroup -Name MyAzureResourceGroupSLB

Volgende stappen

In dit artikel hebt u een bestaande Standard Load Balancer bijgewerkt met een IPv4-front-end-IP-configuratie naar een IPv4-configuratie (IPv4 en IPv6). U hebt ook IPv6-configuraties toegevoegd aan de NIC's van de VM's in de back-endpool en aan het virtuele netwerk waarop deze worden gehost. Zie Wat is IPv6 voor Azure Virtual Network voor meer informatie over IPv6-ondersteuning in virtuele Azure-netwerken?