使用 PowerShell 命令配置具有多个 IP 地址和 NIC 的高可用性设置

可以在 Azure 上的主动-被动高可用性 (HA) 设置中部署一对具有多个网卡的 Citrix ADC VPX 实例。每个 NIC 可以包含多个 IP 地址。

主动-被动部署需要:

  • HA 独立网络配置 (INC) 配置
  • Azure 负载平衡器 (ALB) 在直接服务器返回 (DSR) 模式下

所有流量都通过主节点。在主节点发生故障前,辅助节点一直处于备用模式。

注意

要使 Azure 云上的 Citrix ADC VPX 高可用性部署工作,您需要一个可以在两个高可用性节点之间移动的浮动公用 IP (PIP)。Azure 负载平衡器 (ALB) 提供浮动 PIP,在发生故障转移时,该浮动 PIP 会自动移动到第二个节点。

:主动-被动部署架构示例

本地化后的图片

在主动-被动部署中,ALB 浮动公用 IP (PIP) 地址被添加为每个 VPX 节点中的 VIP 地址。在 HA-INC 配置中,VIP 地址是浮动的,而 SNIP 地址是实例特定的。

ALB 通过每 5 秒发送一次运行状况探测来监视每个 VPX 实例,并将流量重定向到该实例,该实例仅定期发送运行状况探测响应。因此,在 HA 设置中,主节点响应运行状况探测,而辅助节点不响应。如果主实例错过两个连续的运行状况探测,则 ALB 不会将流量重定向至该实例。故障转移时,新的主服务器开始响应运行状况探测,ALB 会将流量重定向到该探测。标准 VPX 高可用性故障转移时间为三秒。切换流量可能需要的故障转移总时间最长为 13 秒。

您可以通过以下两种方式在主动-被动 HA 设置中部署 VPX 对:

  • Citrix ADC VPX 标准高可用性模板:使用此选项配置 HA 对,默认选项包括三个子网和六个网卡。
  • Windows PowerShell 命令:使用此选项可根据您的子网和网卡要求配置 HA 对。

本主题介绍如何使用 PowerShell 命令在主动-被动 HA 设置中部署 VPX 对。如果要使用 Citrix ADC VPX 标准 HA 模板,请参阅使用多个 IP 地址和网卡配置 HA 设置

使用 PowerShell Cccmmands 配置 HA-INC 节点

方案:HA-INC PowerShell 部署

在这种情况下,您可以使用表中给出的拓扑部署 Citrix ADC VPX 对。每个 VPX 实例包含三个网卡,每个网卡部署在不同的子网中。为每 个网卡分配一个 IP 配置。

ALB VPX1 VPX2
ALB 与公共 IP 3(pip3)相关联 管理 IP 是使用 IPConfig1 配置的,其中包括一个公用 IP(Pip1)和一个专用 IP(12.5.2.24); nic1; Mgmtsubnet=12.5.2.0/24 管理 IP 是使用 IPConfig5 配置的,其中包括一个公用 IP (pip3) 和一个专用 IP (12.5.2.26);nic4;Mgmtsubnet=12.5.2.0/24
配置的 LB 规则和端口有 HTTP (80)、SSL (443)、运行状况探测器 (9000) 客户端 IP 是使用 IPConfig3 配置的,其中包括一个专用 IP(12.5.1.27);nic2; FrontEndsubet=12.5.1.0/24 客户端 IP 是使用 IPConfig7 配置的,其中包括一个专用 IP (12.5.1.28);nic5;FrontEndsubet=12.5.1.0/24
- 服务器端 IP 是使用 IPConfig4 配置的,其中包括一个专用 IP (12.5.3.24); nic3;BackendSubnet=12.5.3.0/24 服务器端 IP 是使用 IPConfig8 配置的,其中包括一个专用 IP (12.5.3.28);nic6;BackendSubnet=12.5.3.0/24
- 核供应国集团的规则和端口 (22)、HTTP (80)、HTTPS (443) -

参数设置

在此方案中使用以下参数设置。

$ 本地名 =“东南亚”

$rgName = “MulitIP-MultiNIC-RG”

$nicName1= “VM1-NIC1”

$nicName2 = “VM1-NIC2”

$nicName3= “VM1-NIC3”

$nicName4 = “VM2-NIC1”

$nicName5= “VM2-NIC2”

$nicName6 = “VM2-NIC3”

$vNet 名称 =“Azure 多 IP-ALB-虚拟网络”

虚拟网络地址范围 =“12.5.0.0/16”

$frontEndSubnetName= “frontEndSubnet”

$frontEndSubnetRange= “12.5.1.0/24”

$MGMT 子网名称 =“MGMT 子网”

美元计算机次级计算机 =“12.5.2.0/24”

$backEndSubnetName = “backEndSubnet”

$backEndSubnetRange = “12.5.3.0/24”

美元公司存储账户名称 =“多企业跨国公司存储”

$AVSet 名称 =“多个 AVSet”

$vmSize= “Standard_DS4_V2”

$publisher = “citrix”

$offer = “netscalervpx-120”

$sku =“净值倍值”

$version=”latest”

$pubIPName1=”VPX1MGMT”

$pubIPName2=”VPX2MGMT”

$pubIPName3=”ALBPIP”

$domName1=”vpx1dns”

$domName2=”vpx2dns”

$domName3=”vpxalbdns”

$vmNamePrefix=”VPXMultiIPALB”

$osDiskSuffix1=”osmultiipalbdiskdb1”

$osDiskSuffix2=”osmultiipalbdiskdb2”

$LB 名称 =“多项项目提供商”

$frontEndConfigName1= “FrontEndIP”

$backendPoolName1= “BackendPoolHttp”

$lbRuleName1= “LBRuleHttp”

美元健康丙氨酸 =“健康探针”

$nsgName=”NSG-MultiIP-ALB”

$rule1Name=”Inbound-HTTP”

$rule2Name=”Inbound-HTTPS”

$rule3Name=”Inbound-SSH”

要完成部署,请使用 PowerShell 命令完成以下步骤:

  1. 创建资源组、存储帐户和可用性集
  2. 创建网络安全组并添加规则
  3. 创建虚拟网络和三个子网
  4. 创建公用 IP 地址
  5. 为 VPX1 创建 IP 配置
  6. 为 VPX2 创建 IP 配置
  7. 为 VPX1 创建 NIC
  8. 为 VPX2 创建 NIC
  9. 创建 VPX1
  10. 创建 VPX2
  11. 创建 ALB

创建资源组、存储帐户和可用性集

New-AzureRmResourceGroup -Name $rgName -Location $locName


$prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName


$avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $rgName -Location $locName

创建网络安全组并添加规则

$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

创建一个虚拟网络和三个子网

$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange (this parameter value should be as per your requirement)


$MGMTT 子网 = 新的无线网络虚拟网络子网配置-名称 $MGMTM 子网名称-地址修复 $MGMTM 子网


$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $backEndSubnetName -AddressPrefix $backEndSubnetRange


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


$子网名称 = "前子网”


$subnet1=$vnet.Subnets|?{$_.Name -eq $subnetName}


$subnetName="backEndSubnet"


$subnet2=$vnet.Subnets|?{$_.Name -eq $subnetName}


$子网名称 = "MGMT子网”


$subnet3=$vnet.Subnets|?{$_.Name -eq $subnetName}

创建公用 IP 地址

$pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $rgName -DomainNameLabel $domName1 -Location $locName -AllocationMethod Dynamic


$pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $rgName -DomainNameLabel $domName2 -Location $locName -AllocationMethod Dynamic


$pip3=New-AzureRmPublicIpAddress -Name $pubIPName3 -ResourceGroupName $rgName -DomainNameLabel $domName3 -Location $locName -AllocationMethod Dynamic



创建 VPX1 的 IP 配置

$IpConfigName1 = "IPConfig1"


IP 地址 =“12.5.2.24”


$IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -Subnet $subnet3 -PrivateIpAddress $IPAddress -PublicIpAddress $pip1 -Primary


$IPConfigName3="IPConfig-3"


$IPAddress="12.5.1.27"


$IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -Subnet $subnet1 -PrivateIpAddress $IPAddress -Primary


$IPConfigName4 = "IPConfig-4"


IP 地址 =“12.5.3.24”


$IPConfig4 = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary

为 VPX2 创建 IP 配置

$IpConfigName5 = "IPConfig5"


$IPAddress="12.5.2.26"


$IPConfig5=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName5 -Subnet $subnet3 -PrivateIpAddress $IPAddress -PublicIpAddress $pip2 -Primary


$IPConfigName7="IPConfig-7"


$IPAddress="12.5.1.28"


$IPConfig7=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName7 -Subnet $subnet1 -PrivateIpAddress $IPAddress -Primary


$IPConfigName8="IPConfig-8"


$IPAddress="12.5.3.28"


$IPConfig8=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName8 -Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary

为 VPX1 创建网卡。

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


$nic2=New-AzureRmNetworkInterface -Name $nicName2 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig3 -NetworkSecurityGroupId $nsg.Id


$nic3=New-AzureRmNetworkInterface -Name $nicName3 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig4 -NetworkSecurityGroupId $nsg.Id

为 VPX2 创建网卡。

$nic4=New-AzureRmNetworkInterface -Name $nicName4 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig5 -NetworkSecurityGroupId $nsg.Id


$nic5=New-AzureRmNetworkInterface -Name $nicName5 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig7 -NetworkSecurityGroupId $nsg.Id


$nic6=New-AzureRmNetworkInterface -Name $nicName6 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig8 -NetworkSecurityGroupId $nsg.Id

创建 VPX1

此步骤包括以下子步骤:

  • 创建 VM 配置对象
  • 设置凭据、操作系统和映像
  • 添加 NIC
  • 指定操作系统磁盘并创建 VM

    `` 美元后缀数 = 1

    $vmName=$vmNamePrefix + $suffixNumber

    $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

    $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic2.Id

    $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic3.Id

    $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 ```

创建 VPX2

```
$suffixNumber=2


$vmName=$vmNamePrefix + $suffixNumber


$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 $nic4.Id -Primary


$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic5.Id


$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic6.Id


$osDiskName=$vmName + "-" + $osDiskSuffix2


$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
```

要查看分配给 NIC 的专用和公用 IP 地址,请键入以下命令:

```
$nic1.IPConfig


$nic2.IPConfig


$nic3.IPConfig


$nic4.IPConfig


$nic5.IPConfig


$nic6.IPConfig
```

创建 Azure 负载平衡 (ALB)

此步骤包括以下子步骤:

  • 创建前端 IP 配置
  • 创建运行状况探测
  • 创建后端地址池
  • 创建负载平衡规则(HTTP 和 SSL)
  • 使用前端 IP 配置、后端地址池和 LB 规则创建 ALB
  • 将 IP 配置与后端池相关联

    ``` $frontEndIP1=New-AzureRmLoadBalancerFrontendIpConfig -Name $frontEndConfigName1 -PublicIpAddress $pip3

    $healthProbe=New-AzureRmLoadBalancerProbeConfig -Name $healthProbeName -Protocol Tcp -Port 9000 –IntervalInSeconds 5 -ProbeCount 2

    $beAddressPool1=New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $backendPoolName1

    $lbRule1=New-AzureRmLoadBalancerRuleConfig -Name $lbRuleName1 -FrontendIpConfiguration $frontEndIP1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP

    $lb=New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -FrontendIpConfiguration $frontEndIP1 -LoadBalancingRule $lbRule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe

    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0])

    $nic5.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0])

    $lb=$lb 设置方位负载平衡器
    $nic2=$nic2 Set-AzureRmNetworkInterface

    $nic5=$nic5 | Set-AzureRmNetworkInterface ```

成功部署 Citrix ADC VPX 对后,请登录到每个 VPX 实例以配置 HA-INC、SNIP 和 VIP 地址。

  1. 键入以下命令以添加 HA 节点。

    add ha node 1 PeerNodeNSIP -inc Enabled

  2. 将客户端网卡的专用 IP 地址添加为 VPX1 (NIC2) 和 VPX2 (NIC5) 的剪辑

    add nsip privateIPofNIC2 255.255.255.0 -type SNIP add nsip privateIPofNIC5 255.255.255.0 -type SNIP

  3. 在具有 ALB 前端 IP 地址(公用 IP)的主节点上添加负载平衡虚拟服务器。

add lb vserver v1 HTTP FrontEndIPofALB 80

相关资源

在 Azure 上的主动备用 HA 部署上配置 GSLB

使用 PowerShell 命令配置具有多个 IP 地址和 NIC 的高可用性设置