使用 PowerShell 命令为 NetScaler VPX 独立实例配置多个 IP 地址
在 Azure 环境中,可以为 NetScaler VPX 虚拟设备部署多个 NIC。 每个 NIC 都可以有多个 IP 地址。 本节介绍如何使用 PowerShell 命令部署具有单个 NIC 和多个 IP 地址的 NetScaler VPX 实例。 您可以将同一脚本用于多 NIC 和多 IP 部署。
注意:
在本文档中,IP-Config 是指与单个 NIC 关联的一对 IP 地址(公用 IP 和专用 IP)。 有关更多信息,请参阅 Azure 术语 部分。
用例
在此用例中,一个 NIC 连接到虚拟网络 (VNET)。 该 NIC 与三个 IP 配置相关联,如下表中所示。
| IP 配置 | 关联到 | 
|---|---|
| IPConfig-1 | 静态公用 IP 地址;静态专用 IP 地址 | 
| IPConfig-2 | 静态公用 IP 地址;静态专用地址 | 
| IPConfig-3 | 静态专用 IP 地址 | 
注意:
IPConfig-3 不与任何公用 IP 地址相关联。
示意图:拓扑
以下是用例的直观表示。

注意:
在多 NIC、多 IP Azure NetScaler VPX 部署中,与主(第一个)网卡的主要(第一个)
IPConfig关联的专用 IP 地址会自动添加为设备的管理 NSIP 地址。 而与IPConfigs关联的其余专用 IP 地址,必须使用add ns ip命令作为 VIP 或 SNIP 添加到 VPX 实例中,具体取决于您的要求。
下面总结了为处于独立模式的 NetScaler VPX 虚拟设备配置多个 IP 地址所需的步骤:
- 创建资源组
 - 创建存储帐户
 - 创建可用性集
 - 创建网络服务组
 - 创建虚拟网络
 - 创建公用 IP 地址
 - 分配 IP 配置
 - 创建 NIC
 - 创建 NetScaler VPX 实例
 - 检查 NIC 配置
 - 检查 VPX 端配置
 
脚本
参数
下面是本文档中用例的示例参数设置。
  $locName="westcentralus"
  $rgName="Azure-MultiIP"
  $nicName1="VM1-NIC1"
  $vNetName="Azure-MultiIP-vnet"
  $vNetAddressRange="11.6.0.0/16"
  $frontEndSubnetName="frontEndSubnet"
  $frontEndSubnetRange="11.6.1.0/24"
  $prmStorageAccountName="multiipstorage"
  $avSetName="multiip-avSet"
  $vmSize="Standard\_DS4\_V2" (This parameter creates a VM with up to four NICs.)
<!--NeedCopy-->
注意:
VPX 实例的最低要求是 2 个 vCPU 和 2 GB RAM。
  $publisher="Citrix"
  $offer="netscalervpx110-6531" (You can use different offers.)
  $sku="netscalerbyol" (According to your offer, the SKU can be different.)
  $version="latest"
  $pubIPName1="PIP1"
  $pubIPName2="PIP2"
  $domName1="multiipvpx1"
  $domName2="multiipvpx2"
  $vmNamePrefix="VPXMultiIP"
  $osDiskSuffix="osmultiipalbdiskdb1"
  **Network Security Group (NSG)-related information**:
  $nsgName="NSG-MultiIP"
  $rule1Name="Inbound-HTTP"
  $rule2Name="Inbound-HTTPS"
  $rule3Name="Inbound-SSH"
  $IpConfigName1="IPConfig1"
  $IPConfigName2="IPConfig-2"
  $IPConfigName3="IPConfig-3"
<!--NeedCopy-->
1. 创建资源组
New-AzureRmResourceGroup -Name $rgName -Location $locName
2.创建存储帐户
$prmStorageAccount = New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
3. 创建可用性集
$avSet = New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $rgName -Location $locName
4.创建网络安全组
- 
    
添加规则。 对于任何提供流量的端口,您必须向网络安全组中添加规则。
$rule1=New-AzureRmNetworkSecurityRuleConfig -名称 $rule1Name -描述“允许 HTTP” -访问允许 -协议 Tcp -方向入站 -优先级 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80$rule2=New-AzureRmNetworkSecurityRuleConfig -名称 $rule2Name -描述“允许 HTTPS” -访问允许 -协议 Tcp -方向入站 -优先级 110 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 443$rule3=New-AzureRmNetworkSecurityRuleConfig -名称 $rule3Name -描述“允许 SSH” -访问允许 -协议 Tcp -方向入站 -优先级 120 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22 - 
    
创建网络安全组对象。
$nsg=New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $locName -Name $nsgName -SecurityRules $rule1,$rule2,$rule3 
5.创建虚拟网络
- 
    
添加子网。
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange - 
    
添加虚拟网络对象。
$vnet=New-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vNetAddressRange -Subnet $frontendSubnet - 
    
检索子网。
$subnetName="frontEndSubnet"$subnet1=$vnet.子网|?{$_.Name -eq $subnetName} 
6. 创建公网 IP 地址
$pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $rgName -DomainNameLabel $domName1 -Location $locName -AllocationMethod Static $pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $rgName -DomainNameLabel $domName2 -Location $locName -AllocationMethod Static
注意:
在使用前先检查域名的可用性。
IP 地址分配方法可以是动态的,也可以是静态的。
7. 分配 IP 配置
在此用例中,请在分配 IP 地址之前考虑以下几点:
- IPConfig-1 属于 VPX1 的 subnet1。
 - IPConfig-2 属于 VPX1 的 subnet 1。
 - IPConfig-3 属于 VPX1 的 subnet 1。
 
注意:
为 NIC 分配多个 IP 配置时,必须将一个配置分配为主配置。
  $IPAddress1="11.6.1.27"
  $IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -Subnet $subnet1 -PrivateIpAddress $IPAddress1 -PublicIpAddress $pip1 –Primary
  $IPAddress2="11.6.1.28"
  $IPConfig2=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName2 -Subnet $subnet1 -PrivateIpAddress $IPAddress2 -PublicIpAddress $pip2
  $IPAddress3="11.6.1.29"
  $IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -Subnet $subnet1 -PrivateIpAddress $IPAddress3 -Primary
使用满足您的子网要求的有效 IP 地址,并检查其可用性。
8.创建网卡
$nic1=New-AzureRmNetworkInterface -Name $nicName1 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig1,$IpConfig2,$IPConfig3 -NetworkSecurityGroupId $nsg.Id
9.创建 NetScaler VPX 实例
- 
    
初始化变量。
$suffixNumber = 1$vmName = $vmNamePrefix + $suffixNumber - 
    
创建 VM 配置对象。
$vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id - 
    
设置凭据、操作系统和映像.
$cred=Get-Credential -Message “输入 VPX 登录的名称和密码。”$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred$vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version - 
    
添加 NIC。
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary注意:
在多 NIC VPX 部署中,一个 NIC 必须为主 NIC。 因此,向 VPX 实例添加 NIC 时,必须附加“-Primary”。
 - 
    
指定操作系统磁盘并创建 VM。
$osDiskName=$vmName + "-" + $osDiskSuffix1$osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd"$vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImageSet-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $skuNew-AzureRMVM -VM $vmConfig -ResourceGroupName $rgName -Location $locName 
10.检查网卡配置
VPX 实例启动后,您可以使用以下命令检查分配给 VPX NIC 的 IPConfigs 的 IP 地址。
$nic.IPConfig
11.检查VPX端配置
当 NetScaler VPX 实例启动时,将与主网卡的主 IPconfig 关联的专用 IP 地址添加为 NSIP 地址。 其余专用 IP 地址必须添加为 VIP 或 SNIP 地址,具体取决于您的要求。 使用的命令如下。
add nsip <Private IPAddress><netmask> -type VIP/SNIP
您现在已为处于独立模式的 NetScaler VPX 实例配置多个 IP 地址。