Migreren van binnenkomende NAT-regels versie 1 naar versie 2

Een binnenkomende NAT-regel wordt gebruikt om verkeer van de front-end van een load balancer door te sturen naar een of meer exemplaren in de back-endpool. Deze regels bieden een 1:1-toewijzing tussen het frontend-IP-adres van de load balancer en de backend-instanties. Er zijn momenteel twee versies van inkomende NAT-regels, versie 1 en versie 2.

Belangrijk

Op 30 september 2027 wordt Inbound NAT-pools (de Azure-schaalvergrotingssets voor virtuele machines-specifieke functie van binnenkomende NAT-regels V1) buiten gebruik gesteld. Als u momenteel binnenkomende NAT-pools met Virtual Machine Scale Sets gebruikt, migreert u naar binnenkomende NAT-regels V2 vóór de buitengebruikstellingsdatum. V1-regels voor inkomende NAT voor afzonderlijke VM’s worden niet beïnvloed door deze uitfasering en hoeven niet te worden gemigreerd.

NAT-regel versie 1

Versie 1 van binnenkomende NAT-regels bevat twee verschillende functies:

  • Binnenkomende NAT-regels voor één VM : biedt toewijzing van 1:1 poorten tussen een front-end-IP/poort van een load balancer en een specifieke virtuele machine. Regels worden rechtstreeks toegepast op de netwerkinterfacekaart (NIC) van de virtuele machine. Deze worden niet buiten gebruik gesteld en hoeven niet te worden gemigreerd.

  • Inbound NAT-pools (alleen Virtual Machine Scale Sets) — dit is de verouderde benadering waarbij de frontendpoort van een Azure Load Balancer wordt toegewezen aan elk back-endexemplaar. Inkomende NAT-regels worden automatisch aangemaakt en verwijderd voor elk exemplaar in de Virtual Machine Scale Set wanneer de schaalset op- en afschaalt. NAT-pools worden gedefinieerd op de load balancer en waarnaar wordt verwezen door de Virtual Machine Scale Sets NIC-configuratie via de eigenschap loadBalancerInboundNatPools. Deze worden buiten gebruik gesteld op 30 september 2027 en moeten worden gemigreerd naar binnenkomende NAT-regels V2.

NAT-regel versie 2

Versie 2 van binnenkomende NAT-regels bieden dezelfde functieset als versie 1, met extra voordelen.

  • Vereenvoudigde implementatie-ervaring en geoptimaliseerde updates.
    • Inkomende NAT-regels richten zich nu op de back-endpool van de load balancer en vereisen geen verwijzing meer op de NIC van de virtuele machine. Voorheen op versie 1 moesten zowel de load balancer als de NIC van de virtuele machine worden bijgewerkt wanneer de binnenkomende NAT-regel werd gewijzigd. Versie 2 vereist slechts één aanroep van de configuratie van de load balancer, wat resulteert in geoptimaliseerde updates.
  • Haal eenvoudig de poorttoewijzing op van inkomende NAT-regels naar backend-instanties.
    • Met de oude oplossing moest de regel aan de NIC van de virtuele machine worden gekoppeld om de poorttoewijzing tussen een inkomende NAT-regel en een VM-exemplaar op te halen. Versie 2 voegt de poorttoewijzing tussen de regel en de back-endinstantie rechtstreeks toe aan de configuratie van de load balancer.

Hoe weet ik of ik versie 1 van binnenkomende NAT-regels gebruik?

De eenvoudigste manier om te bepalen of uw implementaties versie 1 van de functie gebruiken, is door de configuratie van de load balancer te controleren. Versie 1 NAT-regels hebben een Type-waarde van Azure Virtual Machine met een gedefinieerde Target virtuele machine-waarde.

Schermopname van configuratie van NAT-regel versie 1 in Azure portal.

Voor NAT-regels van versie 2 heeft Type de waarde Backendpool, met een gedefinieerde waarde voor Doel-backendpool.

Schermopname van de configuratie van NAT-regel versie 2 in Azure portal.

Als u programmatisch wilt bepalen of een implementatie gebruikmaakt van versie 1 van binnenkomende NAT-regels, controleert u de configuratie van de load balancer met behulp van de Azure CLI of PowerShell. Als een van beide eigenschappen backendIPConfiguration in de InboundNATRule configuratie is ingevuld, is de implementatie versie 1 van binnenkomende NAT-regels. Versie 2-regels hebben de backendAddressPool eigenschap in plaats van de backendIPConfiguration eigenschap.

Hoe weet ik of ik binnenkomende NAT-pools gebruik?

Controleren of voor uw load balancer binnenkomende NAT-pools zijn geconfigureerd:

az network lb inbound-nat-pool list -g MyResourceGroup --lb-name MyLoadBalancer

Als de bovenstaande opdrachten resultaten opleveren, gebruikt uw load balancer Inbound NAT-pools en moet deze load balancer worden gemigreerd.

Het belangrijkste verschil is de naam van de ARM-eigenschap: binnenkomende NAT-pools worden weergegeven onder de inboundNatPools eigenschap op de load balancer, terwijl binnenkomende NAT-regels onder de inboundNatRules eigenschap worden weergegeven. Als uw load balancer een niet-lege inboundNatPools matrix heeft, gebruikt deze binnenkomende NAT-pools en moet deze vóór 30 september 2027 worden gemigreerd naar V2.

Note

Als uw load balancer alleen afzonderlijke Inbound NAT-regels voor VM's heeft (Type = "Azure Virtual Machine") en geen Inbound NAT-pools, is geen migratie vereist. De Single VM V1-regels worden niet uitgefaseerd.

Migreren van binnenkomende NAT-pools naar versie 2

Voordat u gaat migreren, is het belangrijk om de volgende informatie te bekijken:

  • Migreren naar versie 2 van binnenkomende NAT-regels veroorzaakt downtime voor actief verkeer dat via de NAT-regels stroomt. Verkeer dat door load balancer-regels of uitgaande regels stroomt, wordt niet beïnvloed tijdens het migratieproces.
  • Bepaal het maximumaantal instanties in een back-endpool. Aangezien versie 2 is gericht op de back-endpool van de load balancer, moet een voldoende aantal poorten worden toegewezen voor de front-end van de NAT-regel.
  • Elke backend-instantie is beschikbaar via de poort die in de nieuwe NAT-regel is geconfigureerd.
  • Meerdere NAT-regels kunnen niet bestaan als ze een overlappend poortbereik hebben of dezelfde back-endpoort hebben.
  • NAT-regels en taakverdelingsregels kunnen niet dezelfde back-endpoort delen.

Handmatige migratie

De volgende drie stappen migreren inkomende NAT-pools naar versie 2 van de inkomende NAT-regels. Een enkele VM Inbound NAT-regel V1 vereist deze stappen niet.

  1. Verwijder de Inbound NAT Pool in de configuratie van de load balancer.
  2. Verwijder de loadBalancerInboundNatPools-referentie uit de configuratie van de netwerkinterface van de schaalset voor virtuele machines.
    • Werk alle instanties van de Virtual Machine scale set bij.
  3. Rol versie 2 van Inbound NAT-regels uit tegen de backendpool van de load balancer.

Set voor het schalen van virtuele machines

Belangrijk

Dit is het vereiste migratiepad voor de buitengebruikstelling van binnenkomende NAT-pools. Alle implementaties van virtuele-machineschaalsets die gebruikmaken van binnenkomende NAT-pools, moeten deze migratie vóór 30 september 2027 voltooien.

De volgende stappen worden gebruikt om te migreren van versie 1 naar versie 2 van binnenkomende NAT-regels voor een virtuele-machineschaalset. Hierbij wordt ervan uitgegaan dat de upgrademodus van de virtuele-machineschaalset is ingesteld op Handmatig. Zie Indelingsmodi voor Virtual Machine Scale Sets in Azure voor meer informatie


az network lb inbound-nat-pool delete  -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatPool  

az vmss update -g MyResourceGroup -n MyVMScaleSet --remove virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].loadBalancerInboundNatPools  

az vmss update-instances --instance-ids '*' --resource-group MyResourceGroup --name MyVMScaleSet 

az network lb inbound-nat-rule create -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatRule --protocol Tcp --frontend-port-range-start 201 --frontend-port-range-end 500 --backend-port 22 --backend-address-pool MybackendPool

De migratie controleren

Nadat je een van de procedures hebt voltooid, bevestig dan alle drie de uitkomsten:

  • De load balancer heeft geen inkomende NAT Pools meer. az network lb inbound-nat-pool list -g MyResourceGroup --lb-name MyLoadBalancer geeft een leeg resultaat terug, of $slb.InboundNatPools is leeg in PowerShell.
  • De nieuwe regel van versie 2 richt zich op de beoogde backendpool. Bevestig dat de regel in Azure Portal een waarde voor Target backend pool weergeeft, of dat backendAddressPool is ingevuld in de regelconfiguratie.
  • De verwachte poorttoewijzingen zijn aanwezig. Open in het Azure-portaal de nieuwe inkomende NAT-regel en bekijk de sectie Port mapping voor elke backend-instantie.

Migratie met automatiseringsscript voor Virtual Machine Scale Set

Het migratieproces hergebruikt bestaande back-endpools met lidmaatschap dat overeenkomt met de NAT-pools die moeten worden gemigreerd; Als er geen overeenkomende back-endpool wordt gevonden, wordt het script afgesloten (zonder wijzigingen aan te brengen). U kunt ook de -backendPoolReuseStrategy parameter gebruiken om altijd nieuwe back-endpools (NoReuse) te maken of een nieuwe back-endpool te maken als er geen overeenkomende pool bestaat (OptionalFirstMatch). Back-endpools en NAT-regelkoppelingen kunnen na de migratie worden bijgewerkt zodat deze overeenkomen met uw voorkeur.

Prerequisites

Voordat u begint met het migratieproces, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan:

AzureLoadBalancerNATPoolMigration De module installeren

Installeer met de volgende opdracht de module AzureLoadBalancerNATPoolMigration uit de PowerShell Gallery:

# Install the AzureLoadBalancerNATPoolMigration module

Install-Module -Name AzureLoadBalancerNATPoolMigration -Scope CurrentUser -Repository PSGallery -Force 

NAT-pools converteren naar NAT-regels

Wanneer de module is geïnstalleerd, voert u een azureLoadBalancerNATPoolMigration upgrade uit van uw NAT-pools naar NAT-regels met de volgende stappen:

  1. Maak verbinding met Azure met Connect-AzAccount.

  2. Verzamel de naam van de doelload balancer voor de upgrade van de NAT-regels en de naam van de resourcegroep.

  3. Voer de migratieopdracht uit door uw resourcenamen te vervangen door de tijdelijke aanduidingen van <loadBalancerResourceGroupName> en <loadBalancerName>:

    # Run the migration command 
    
    Start-AzNATPoolMigration -ResourceGroupName <loadBalancerResourceGroupName> -LoadBalancerName <loadBalancerName>
    
    

Volgende stappen