添加入站nat规则时,是否可以在Azure Powershell中设置目标VM?

时间:2019-05-29 15:20:04

标签: azure azure-powershell nat

在一个Azure RM负载平衡器中,我可以使用powershell创建一个nat规则FTP,但也想使用powershell设置目标虚拟机。我知道如何设置目标的唯一方法是在门户网站中。

我在负载均衡器中有两个VM。我尝试使用Add-AzLoadBalancerInboundNatRuleConfig,但没有看到目标VM的参数。

我的脚本: $ lb | Add-AzLoadBalancerInboundNatRuleConfig-名称$ EndpointName -FrontendIPConfiguration $ feip-协议“ Tcp” -FrontendPort $ i -BackendPort $ i

如果无法在Powershell中设置目标,那么除了门户网站之外还有哪些替代方案?

3 个答案:

答案 0 :(得分:1)

对于Load Balancer Nat规则,其描述如下:

  

标准负载均衡器后端池扩展到任何虚拟机   虚拟网络中的资源。它最多可以包含1000个后端   实例。 后端实例是IP配置,它是   NIC资源的属性。

因此,要为VM创建两个步骤:

  1. 在负载均衡器中创建nat规则,PowerShell命令为Add-AzLoadBalancerInboundNatRuleConfig,Azure CLI命令为az network lb inbound-nat-rule create
  2. 将nat规则与VM nic关联,PowerShell命令为Add-AzNetworkInterfaceIpConfig,Azure CLI命令为az network nic ip-config inbound-nat-rule add

您可以在门户中的一个步骤中添加Nat规则,但是您需要通过命令执行两个步骤。另外,您还需要注意,NSG规则对于允许流量进入端口也是必要的。

答案 1 :(得分:0)

Gary,我了解您所面临的问题,我还试图通过PS配置目标VM和网络IP配置(如果VM与两个NIC关联)。 但是,我无法执行此操作,因为Commandlet“ Add-AzLoadBalancerInboundNatRuleConfig”不随目标VM参数一起提供。

我能够获得FrontendIP和入站NAT规则。但是,设置与这些入站nat规则关联的目标VM和NIC是一项挑战。

“ Add-AzLoadBalancerInboundNatRuleConfig”在“ LB设置”部分中未显示入站nat规则。

下面的脚本将帮助您获取现有的目标VM名称和NIC。

$ lb = Get-AzLoadBalancer -ResourceGroupName $ rgname -Name $ lbname $ lbinboudnatrule = Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $ lb foreach($ lbinboudnatrule中的$ lbrule) { $ bip = $ lbrule.BackendIPConfiguration.Id -split'/subscriptions/---------------/Microsoft.Network/networkInterfaces/' $ info = $ bip -split'----------- / ipConfigurations /' $ wrapper =新对象PSObject-属性@ {NATRuleName = $ lbrule.Name; TargetVirtualMachine = $ info [1]; NetworkIPConfiguration = $ info [2]} $ wrapper | Export-csv-路径C:/Temp/lb.csv -Append -NoTypeInformation }

答案 2 :(得分:-1)

您需要在NSG上进行设置,以下是我为对RDP端口进行类似操作而创建的脚本的示例摘要。

Add-AzureRmNetworkSecurityRuleConfig -Name $ruleName -NetworkSecurityGroup $nsg -Access Allow -Description "Allowing RDP connection from current location" -DestinationAddressPrefix * -DestinationPortRange $port -Direction Inbound -Priority $priorityNew -Protocol * -SourceAddressPrefix $current_IP -SourcePortRange *
$hout = Set-AzureRmNetworkSecurityGroup -NetworkSecurityGroup $nsg