入站 NAT 规则用于将流量从负载均衡器前端转发到后端池中的一个或多个实例。
有两种类型的入站 NAT 规则:
在本文中,你将了解如何添加和删除这两种类型的入站 NAT 规则。 你将了解如何在多实例入站 NAT 规则中更改前端端口分配。 可以从 Azure 门户、PowerShell 或 CLI 示例中进行选择。
如果没有 Azure 帐户,请在开始前创建一个免费帐户。
先决条件
- 订阅中的公共负载均衡器。 有关如何创建 Azure 负载均衡器的详细信息,请参阅快速入门:使用 Azure 门户创建公共负载均衡器以对 VM 进行负载均衡。 本文中示例的负载均衡器名称是 myLoadBalancer。
- 如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行Connect-AzAccount以创建与 Azure 的连接。
虚拟机的入站 NAT 规则 V1
选择此选项可以为单个 VM 配置规则。 有关说明,请选择 Azure 门户、PowerShell 或 CLI。
在此示例中,将创建一个入站 NAT 规则,用于将端口 500 转发到后端端口 443。
- 登录 Azure 门户。 
- 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。 
- 选择 myLoadBalancer 或你的负载均衡器。 
- 在负载均衡器页面中,选择“设置”中的“入站 NAT 规则”。 
- 在“入站 NAT 规则”中选择“+ 添加”来添加规则。 
- 在“添加入站 NAT 规则”中,输入或选择以下信息。 - 
- 
| 设置 | 值 |  - 
| 名称 | 输入 myInboundNATrule。 |  - 
| 类型 | 选择“Azure 虚拟机”。 |  - 
| 目标虚拟机 | 选择要将端口转发到的虚拟机。 在此示例中,它是 myVM1。 |  - 
| 网络 IP 配置 | 选择虚拟机的 IP 配置。 在此示例中,它是 ipconfig1(10.1.0.4)。 |  - 
| 前端 IP 地址 | 选择“myFrontend”。 |  - 
| 前端端口 | 输入 500。 |  - 
| 服务标记 | 保留默认值“自定义”。 |  - 
| 后端端口 | 输入 443。 |  - 
| 协议 | 选择“TCP”。 |  
 
- 将其余设置保留为默认值,然后选择“添加”。 
在此示例中,将创建一个入站 NAT 规则,用于将端口 500 转发到后端端口 443。
若要将配置保存到网络接口,请使用 Set-AzNetworkInterface。
## Place the load balancer information into a variable for later use. ##
$slb = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @slb
## Create the single virtual machine inbound NAT rule. ##
$rule = @{
    Name = 'myInboundNATrule'
    Protocol = 'Tcp'
    FrontendIpConfiguration = $lb.FrontendIpConfigurations[0]
    FrontendPort = '500'
    BackendPort = '443'
}
$lb | Add-AzLoadBalancerInboundNatRuleConfig @rule
$lb | Set-AzLoadBalancer
## Add the inbound NAT rule to a virtual machine 
$NatRule = @{                                                                                       
    Name = 'MyInboundNATrule'
    LoadBalancer = $lb
}
$NatRuleConfig = Get-AzLoadBalancerInboundNatRuleConfig @NatRule 
$NetworkInterface = @{                                                                                           
     ResourceGroupName = 'myResourceGroup'
     Name = 'MyNIC'
 }
 $NIC = Get-AzNetworkInterface @NetworkInterface
 
 $IPconfig = @{                                                                                       
    Name = 'Ipconfig'
    LoadBalancerInboundNatRule = $NatRuleConfig
}
$NIC | Set-AzNetworkInterfaceIpConfig @IPconfig
$NIC | Set-AzNetworkInterface  
在此示例中,将创建一个入站 NAT 规则,用于将端口 500 转发到后端端口 443。 然后,将入站 NAT 规则附加到 VM 的 NIC
    az network lb inbound-nat-rule create \
        --backend-port 443 \
        --lb-name myLoadBalancer \
        --name myInboundNATrule \
        --protocol Tcp \
        --resource-group myResourceGroup \
        --frontend-ip-name myFrontend \
        --frontend-port 500
    az network nic ip-config inbound-nat-rule add \
        --resource-group myResourceGroup \
        --nic-name MyNic \
        --ip-config-name MyIpConfig \
        --inbound-nat-rule MyNatRule \
        --lb-name myLoadBalancer
 
虚拟机和虚拟机规则集的入站 NAT 规则 V2
选择此选项可以配置一个规则,其中包含到虚拟机后端池的一系列端口。 有关说明,请选择 Azure 门户、PowerShell 或 CLI。
在此示例中,将创建一个入站 NAT 规则,用于将从端口 500 开始的一系列端口转发到后端端口 443。 后端池中的最大虚拟机数由后端池中的最大虚拟机数设置(值为 500)。 此设置将后端池限制为 500 个虚拟机。
- 登录 Azure 门户。 
- 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。 
- 选择 myLoadBalancer 或你的负载均衡器。 
- 在负载均衡器页面中,选择“设置”中的“入站 NAT 规则”。 
- 在“入站 NAT 规则”中选择“+ 添加”来添加规则。 
- 在“添加入站 NAT 规则”中,输入或选择以下信息。 - 
- 
| 设置 | 值 |  - 
| 名称 | 输入 myInboundNATrule。 |  - 
| 类型 | 选择“后端池”。 |  - 
| 目标后端池 | 选择你的后端池。 在此示例中,它是 myBackendPool。 |  - 
| 前端 IP 地址 | 选择前端 IP 地址。 在此示例中,它是 myFrontend。 |  - 
| 前端端口范围起始 | 输入 500。 |  - 
| 后端池中的最大虚拟机数 | 输入 500。 |  - 
| 后端端口 | 输入 443。 |  - 
| 协议 | 选择“TCP”。 |  
 
- 将其余字段保留默认设置,然后选择“添加”。 
在此示例中,将创建一个入站 NAT 规则,用于将从端口 500 开始的一系列端口转发到后端端口 443。 后端池中的最大虚拟机数由 -FrontendPortRangeEnd 参数设置(值为 1000)。 此设置将后端池限制为 500 个虚拟机。
## Place the load balancer information into a variable for later use. ##
$slb = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @slb
## Create the multiple virtual machines inbound NAT rule. ##
$rule = @{
    Name = 'myInboundNATrule'
    Protocol = 'Tcp'
    BackendPort = '443'
    FrontendIpConfiguration = $lb.FrontendIpConfigurations[0]
    FrontendPortRangeStart = '500'
    FrontendPortRangeEnd = '1000'
    BackendAddressPool = $lb.BackendAddressPools[0]
}
$lb | Add-AzLoadBalancerInboundNatRuleConfig @rule
$lb | Set-AzLoadBalancer
在此示例中,将创建一个入站 NAT 规则,用于将从端口 500 开始的一系列端口转发到后端端口 443。 后端池中的最大虚拟机数由 --frontend-port-range-end 参数设置(值为 1000)。 此设置将后端池限制为 500 个虚拟机。
    az network lb inbound-nat-rule create \
        --backend-port 443 \
        --lb-name myLoadBalancer \
        --name myInboundNATrule \
        --protocol Tcp \
        --resource-group myResourceGroup \
        --backend-pool-name myBackendPool \
        --frontend-ip-name myFrontend \
        --frontend-port-range-end 1000 \
        --frontend-port-range-start 500
        
 
更改多 VM 规则的前端端口分配
若要在多实例规则中容纳更多后端池虚拟机,请在入站 NAT 规则中更改前端端口分配。 在此示例中,将后端池中的最大虚拟机数从 500 更改为 1000。 此设置将后端池中的最大虚拟机数增加到 1000。
- 登录 Azure 门户。 
- 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。 
- 选择 myLoadBalancer 或你的负载均衡器。 
- 在负载均衡器页面中,选择“设置”中的“入站 NAT 规则”。 
- 选择要更改的入站 NAT 规则。 在此示例中,它是 myInboundNATrule。 
- 在入站 NAT 规则的属性中,将后端池中的最大虚拟机数中的值更改为 1000。 
- 选择“保存”。 
若要在多实例规则中容纳更多后端池虚拟机,请在入站 NAT 规则中更改前端端口分配。 在此示例中,将 -FrontendPortRangeEnd 参数更改为 1500。 此设置将后端池中的最大虚拟机数增加到 1000。
## Place the load balancer information into a variable for later use. ##
$slb = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @slb
## Set the new port allocation
$rule = @{
    Name = 'myInboundNATrule'
    Protocol = 'Tcp'
    BackendPort = '443'
    FrontendIpConfiguration = $lb.FrontendIpConfigurations[0]
    FrontendPortRangeStart = '500'
    FrontendPortRangeEnd = '1500'
    BackendAddressPool = $lb.BackendAddressPools[0]
}
$lb | Set-AzLoadBalancerInboundNatRuleConfig @rule
若要容纳后端池中的更多虚拟机,请在入站 NAT 规则中更改前端端口分配。 在此示例中,将 --frontend-port-range-end 参数更改为 1500。 此设置将后端池中的最大虚拟机数增加到 1000
    az network lb inbound-nat-rule update \
        --frontend-port-range-end 1500 \
        --lb-name myLoadBalancer \
        --name myInboundNATrule \
        --resource-group myResourceGroup
        
 
查看端口映射
可使用 Azure 门户查看后端池中虚拟机的端口映射。
- 登录 Azure 门户。 
- 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。 
- 选择 myLoadBalancer 或你的负载均衡器。 
- 在负载均衡器页面中,选择“设置”中的“入站 NAT 规则”。 
- 选择 myInboundNATrule 或你的入站 NAT 规则。 
- 滚动到入站 NAT 规则属性页的“端口映射”部分。 
删除入站 NAT 规则
在此示例中,将删除入站 NAT 规则。
- 登录 Azure 门户。 
- 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。 
- 选择 myLoadBalancer 或你的负载均衡器。 
- 在负载均衡器页面中,选择“设置”中的“入站 NAT 规则”。 
- 选择要删除的规则旁边的三个点。 
- 选择“删除”。 
在此示例中,将删除入站 NAT 规则。
## Place the load balancer information into a variable for later use. ##
$slb = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @slb
## Remove the inbound NAT rule
$lb | Remove-AzLoadBalancerInboundNatRuleConfig -Name 'myInboundNATrule'
$lb | Set-AzLoadBalancer
在此示例中,将删除入站 NAT 规则。
    az network lb inbound-nat-rule delete \
        --lb-name myLoadBalancer \
        --name myInboundNATrule \
        --resource-group myResourceGroup
 
后续步骤
本文介绍了如何使用 Azure 门户、PowerShell 和 CLI 来管理Azure 负载均衡器的入站 NAT 规则。
有关 Azure 负载均衡器的详细信息,请参阅: