你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

从入站 NAT 规则版本 1 迁移到版本 2

“入站 NAT 规则”用于将流量从负载均衡器前端转发到后端池中的一个或多个实例。 这些规则提供负载均衡器前端 IP 地址与后端实例之间的 1:1 映射。 当前有两个版本的入站 NAT 规则,版本 1 和版本 2。

NAT 规则版本 1

版本 1 是将 Azure 负载均衡器前端端口分配给每个后端实例的旧方法。 规则将应用于后端实例的网络接口卡 (NIC)。 对于 Azure 虚拟机规模集实例,当纵向扩展/缩减新实例时,会自动创建/删除入站 NAT 规则。

NAT 规则版本 2

入站 NAT 规则的版本 2 提供与版本 1 相同的功能集,并具有额外的优势。

  • 简化部署体验和优化更新。
    • 入站 NAT 规则现在面向负载均衡器的后端池,无需再引用虚拟机的 NIC。 以前在版本 1 上,每当入站 NAT 规则发生更改时,都需要更新负载均衡器和虚拟机的 NIC。 版本 2 只需要对负载均衡器的配置进行一次调用,就可以优化更新。
  • 轻松检索入站 NAT 规则和后端实例之间的端口映射。
    • 使用旧版产品/服务,若要检索入站 NAT 规则与虚拟机实例之间的端口映射,该规则需要与虚拟机的 NIC 相关联。 版本 2 将规则和后端实例之间的端口映射直接注入到负载均衡器的配置中。

如何知道我使用的是否是入站 NAT 规则版本 1?

要确定你的部署使用的是否是功能版本 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 

虚拟机规模集

以下步骤用于将虚拟机规模集的入站 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 

使用虚拟机规模集的自动化脚本进行迁移

先决条件

在开始迁移过程之前,请确保满足以下先决条件:

安装 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>
    
    

后续步骤