使用 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”(此参数会创建最多具有 4 个 NIC 的 VM。)
注意: 一个 VPX 实例的最低要求是 2 个 vCPU 和 2 GB RAM。
$publisher=”Citrix”
$offer=”netscalervpx110-6531”(您可以使用不同的 offer。)
$sku=”netscalerbyol”(根据您的 offer,SKU 可以不同。)
$version=”latest”
$pubIPName1=”PIP1”
$pubIPName2=”PIP2”
$domName1=”multiipvpx1”
$domName2=”multiipvpx2”
$vmNamePrefix=”VPXMultiIP”
$osDiskSuffix=”osmultiipalbdiskdb1”
网络安全组 (NSG) 相关的信息:
$nsgName=”NSG-MultiIP”
$rule1Name=”Inbound-HTTP”
$rule2Name=”Inbound-HTTPS”
$rule3Name=”Inbound-SSH”
$IpConfigName1=”IPConfig1”
$IPConfigName2=”IPConfig-2”
$IPConfigName3=”IPConfig-3”
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 NetScaler VPX 部署中,一个 NIC 必须是主 NIC。 因此,将该 NIC 添加到 NetScaler VPX 实例时必须附加“-Primary”。
-
指定操作系统磁盘并创建 VM。
$osDiskName=$vmName + "-" + $osDiskSuffix1
$osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd"
$vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage
Set-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $sku
New-AzureRMVM -VM $vmConfig -ResourceGroupName $rgName -Location $locName
10.检查网卡配置
NetScaler VPX 实例启动后,您可以使用以下命令检查分配给 NetScaler 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 地址。