ADC

使用 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 地址所需的步骤:

  1. 创建资源组
  2. 创建存储帐户
  3. 创建可用性集
  4. 创建网络服务组
  5. 创建虚拟网络
  6. 创建公用 IP 地址
  7. 分配 IP 配置
  8. 创建 NIC
  9. 创建 NetScaler VPX 实例
  10. 检查 NIC 配置
  11. 检查 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. 创建网络安全组

  1. 添加规则。对于任何提供流量的端口,您必须向网络安全组中添加规则。

    $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

  2. 创建网络安全组对象。

    $nsg=New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $locName -Name $nsgName -SecurityRules $rule1,$rule2,$rule3

5. 创建虚拟网络

  1. 添加子网。

    $frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange

  2. 添加虚拟网络对象。

    $vnet=New-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vNetAddressRange -Subnet $frontendSubnet

  3. 检索子网。

    $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 地址之前考虑以下几点:

  • 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. 创建 NIC

$nic1=New-AzureRmNetworkInterface -Name $nicName1 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig1,$IpConfig2,$IPConfig3 -NetworkSecurityGroupId $nsg.Id

9. 创建 NetScaler VPX 实例

  1. 初始化变量。

    $suffixNumber = 1 $vmName = $vmNamePrefix + $suffixNumber

  2. 创建 VM 配置对象。

    $vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id

  3. 设置凭据、操作系统和映像。

    $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

  4. 添加 NIC。

    $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary

    注意

    在多 NIC VPX 部署中,一个 NIC 必须为主 NIC。因此,向 VPX 实例添加 NIC 时,必须附加“-Primary”。

  5. 指定操作系统磁盘并创建 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. 检查 NIC 配置

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 地址。

使用 PowerShell 命令为 NetScaler VPX 独立实例配置多个 IP 地址