分享方式:


從輸入 NAT 規則第 1 版移轉至第 2 版

輸入 NAT 規則可用來將流量從負載平衡器前端轉送至後端集區中的單一或多個執行個體。 這些規則提供負載平衡器前端 IP 位址與後端執行個體之間的1:1對應。 目前有兩個版本的輸入 NAT 規則,第 1 版和第 2 版。

重要

在 2027 年 9 月 30 日,輸入 NAT 規則 v1 將停用。 如果您目前是使用輸入 NAT 規則 v1,請務必在停用日期之前升級至輸入 NAT 規則 v2。

NAT 規則第 1 版

第 1 版 是將 Azure Load Balancer 的前端埠指派給每個後端執行個體的舊版方法。 規則會套用至後端執行個體的網路介面卡 (NIC)。 針對 Microsoft Azure 虛擬機器擴展集 (VMSS) 執行個體,輸入 NAT 規則會自動建立/刪除,因為新的執行個體會相應增加/減少。 針對 VMSS 執行個體,請使用 Inbound NAT Pool 屬性來管理輸入 NAT 規則第 1 版。

NAT 規則第 2 版

輸入 NAT 規則第 2 版提供與第 1 版相同的功能集,並具有額外的優點。

  • 簡化的部署體驗和優化的更新。
    • 輸入 NAT 規則現在以負載平衡器的後端集區為目標,且不再需要虛擬機器 NIC 上的參考。 先前在第 1 版上,每當輸入 NAT 規則變更時,負載平衡器和虛擬機器的 NIC 都必須更新。 第 2 版只需要負載平衡器上設定的單一呼叫,就能產生優化的更新。
  • 輕鬆地擷取輸入 NAT 規則與後端執行個體之間的連接埠對應。
    • 透過舊版供應項目,若要擷取輸入 NAT 規則與虛擬機執行個體之間的連接埠對應,規則必須與虛擬機的 NIC 相互關聯。 第 2 版會將規則與後端執行個體之間的連接埠對應直接插入負載平衡器的設定中。

如何知道我使用的是第 1 版的輸入 NAT 規則?

若要識別您的部署是否使用第 1 版功能,最簡單的方式,就是檢查負載平衡器的設定。 如果 InboundNATRule 設定內已填入 InboundNATPool 屬性或 backendIPConfiguration 屬性,則部署即是輸入 NAT 規則的第 1 版。

如何從第 1 版移轉至第 2 版?

在移轉之前,請務必檢閱下列資訊:

  • 移轉至輸入 NAT 規則的第 2 版,會導致透過 NAT 規則的作用中流量停機。 透過負載平衡器規則輸出規則的流量在移轉過程中不會受到影響。
  • 規劃後端集區中的執行個體數目上限。 由於第 2 版是以負載平衡器後端集區為目標,因此必須配置足夠的連接埠數目供 NAT 規則的前端使用。
  • 每個後端執行個體都會在新的 NAT 規則中設定的連接埠上公開。
  • 如果多個 NAT 規則具有重疊的連接埠範圍,或具有相同的後端連接埠,則這些規則無法存在。
  • NAT 規則和負載平衡規則無法共用相同的後端連接埠。

手動移轉

必須執行下列三個步驟,才能移轉至輸入 NAT 規則的第 2 版

  1. 刪除負載平衡器設定上輸入 NAT 規則的第 1 版。
  2. 移除虛擬機器或虛擬機器擴展集設定上的 NAT 規則的參考。
    1. 所有虛擬機器擴展集執行個體都必須更新。
  3. 部署輸入 NAT 規則第 2 版。

虛擬機器

下列步驟可用來將虛擬機器的輸入 NAT 規則從第 1 版移轉至第 2 版。


az network lb inbound-nat-rule delete -g MyResourceGroup --lb-name MyLoadBalancer --name NATruleV1

az network nic ip-config inbound-nat-rule remove -g MyResourceGroup --nic-name MyNic -n MyIpConfig --inbound-nat-rule MyNatRule 

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

虛擬機器擴展集

下列步驟可用來將虛擬機器擴展集的輸入 NAT 規則從第 1 版移轉至第 2 版。 它會假設虛擬機器擴展集的升級模式設定為 [手動]。 如需詳細資訊,請參閱 Azure 中虛擬機器擴展集的協調流程模式


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

使用虛擬機器擴展集的自動化指令碼進行移轉

移轉流程將會重複使用現有的後端集區,其成員資格符合要移轉的 NAT 集區;如果找不到相符的後端集區,指令碼將結束 (不進行任何變更)。 或者,使用 -backendPoolReuseStrategy 參數,一律建立新的後端集區 (NoReuse),或在不存在相符的後端集區時建立新的後端集區 (OptionalFirstMatch)。 可以在移轉後更新後端集區和 NAT 規則關聯以符合您的喜好設定。

必要條件

開始移轉流程之前,請確定符合下列必要條件:

安裝 AzureLoadBalancerNATPoolMigration 模組

若要從 PowerShell 資源庫安裝 AzureLoadBalancerNATPoolMigration 模組,請執行以下命令:

# Install the AzureLoadBalancerNATPoolMigration module

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

將 NAT 集區升級至 NAT 規則

安裝 azureLoadBalancerNATPoolMigration 模組後,請使用下列步驟將您的 NAT 集區升級至 NAT 規則:

  1. 使用 Connect-AzAccount連線至 Azure。

  2. 針對 NAT 規則升級收集目標負載平衡器名稱,以及其資源群組名稱。

  3. 使用您的資源名稱執行移轉命令,以取代 <loadBalancerResourceGroupName><loadBalancerName>的預留位置:

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

下一步