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

注意:
在多网卡、多 IP 的 Azure NetScaler VPX 部署中,与主(第一个)网卡的主(第一个)
IPConfig关联的私有 IP 地址会自动添加为设备的管理 NSIP 地址。与IPConfigs关联的其余私有 IP 地址必须根据您的要求,使用add ns ip命令在 VPX 实例中添加为 VIP 或 SNIP。
以下是在独立模式下为 NetScaler VPX 虚拟设备配置多个 IP 地址所需的步骤摘要:
- 进行资源组创建
- 创建存储帐户
- 创建可用性集
- 创建网络服务组
- 创建虚拟网络
- 创建公共 IP 地址
- 分配 IP 配置
- 创建网卡
- 创建 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 -Name $rule1Name -Description "Allow HTTP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80$rule2=New-AzureRmNetworkSecurityRuleConfig -Name $rule2Name -Description "Allow HTTPS" -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 443$rule3=New-AzureRmNetworkSecurityRuleConfig -Name $rule3Name -Description "Allow SSH" -Access Allow -Protocol Tcp -Direction Inbound -Priority 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.Subnets|?{$_.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 地址之前请考虑以下几点:
- IP配置-1 属于 VPX实例1 的 子网1。
- IPConfig-2 属于 VPX1 所拥有的子网 1。
- IPConfig-3 属于 VPX1 所拥有的子网 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. 创建 NIC
$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 "Type the name and password for VPX login."$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred$vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version -
添加网卡。
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary注意:
在多网卡 NetScaler VPX 部署中,一个网卡必须是主网卡。因此,在将该网卡添加到 NetScaler VPX 实例时,必须附加“-Primary”。
-
指定操作系统磁盘并创建虚拟机。
$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. 检查网卡配置
NetScaler VPX 实例启动后,您可以使用以下命令检查分配给 NetScaler VPX 网卡 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 地址。