Citrix ADC

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

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

主-被动式部署需要:

  • HA Independent Network Configuration (INC)配置
  • Azure负载平衡器(ALB)在直接服务器返回(DSR)模式

所有流量都通过主节点。备用节点保持备用状态,直到主节点故障。

请注意

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

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

Azure高可用性

主备部署时,在每个VPX节点上添加ALB的PIP地址作为VIP地址。在HA-INC配置中,VIP地址为浮动地址,SNIP地址为实例指定地址。

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

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

  • Citrix ADC VPX标准高可用性模板:默认配置3个子网、6个网卡的HA pair。
  • Windows PowerShell命令:根据子网和网卡需求配置HA对。

介绍如何使用PowerShell命令在主备HA环境中部署VPX对。如果需要使用Citrix ADC VPX Standard HA模板,请参考配置HA(多IP多网卡

使用PowerShell命令配置HA-INC节点

场景:HA-INC PowerShell部署

在这个场景中,您使用表中给出的拓扑来部署Citrix ADC VPX对。每个VPX实例包含三个网卡,每个网卡部署在不同的子网中。每个网卡分配一个IP配置。

铝青铜 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);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
- NSG的规则和端口为SSH(22)、HTTP(80)、HTTPS(443)。 -

参数设置

本场景中使用的参数设置如下。

$locName= "东南亚"

$rgName = " multi - multi - rg "

美元nicName1 = " VM1-NIC1 "

$nicName2 = " VM1-NIC2 "

美元nicName3 = " VM1-NIC3 "

$nicName4 = " VM2-NIC1 "

美元nicName5 = " VM2-NIC2 "

$nicName6 = " VM2-NIC3 "

$vNetName = " Azure-MultiIP-ALB-vnet "

美元vNetAddressRange = " 12.5.0.0/16 "

美元frontEndSubnetName = " frontEndSubnet "

美元frontEndSubnetRange = " 12.5.1.0/24 "

美元mgmtSubnetName = " mgmtSubnet "

美元mgmtSubnetRange = " 12.5.2.0/24 "

$backEndSubnetName = " backEndSubnet "

$backEndSubnetRange = " 12.5.3.0/24 "

$prmStorageAccountName = " multiipmultiicicbstorage "

$avSetName = " multiple-avSet "

美元vmSize = " Standard_DS4_V2 "

$publisher = " Citrix "

$offer = " netscalervpx-120 "

$sku = " netscalerbyol "

最新美元version = " "

美元pubIPName1 = " VPX1MGMT "

美元pubIPName2 = " VPX2MGMT "

美元pubIPName3 = " ALBPIP "

美元domName1 = " vpx1dns "

美元domName2 = " vpx2dns "

美元domName3 = " vpxalbdns "

美元vmNamePrefix = " VPXMultiIPALB "

美元osDiskSuffix1 = " osmultiipalbdiskdb1 "

美元osDiskSuffix2 = " osmultiipalbdiskdb2 "

美元lbName = " MultiIPALB "

美元frontEndConfigName1 = " FrontEndIP "

美元backendPoolName1 = " BackendPoolHttp "

美元lbRuleName1 = " LBRuleHttp "

美元healthProbeName = " HealthProbe "

美元nsgName = " NSG-MultiIP-ALB "

$ rule1Name =“入站http”

美元rule2Name = " Inbound-HTTPS "

美元rule3Name = " Inbound-SSH "

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

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

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

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“允许HTTP”-Access允许-Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 $rule2 = New-AzureRmNetworkSecurityRuleConfig -Name $rule2Name -Description“允许HTTPS”-Access允许-Protocol Tcp -Direction Inbound -Priority 110 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix *-DestinationPortRange 443 $rule3 = New-AzureRmNetworkSecurityRuleConfig -Name $rule3Name -Description "Allow SSH" -Access - permit -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(此参数值应根据您的要求)$mgmtSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $mgmtSubnetName -AddressPrefix $mgmtSubnetRange $backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $backEndSubnetName -AddressPrefix $backEndSubnetRange $vnet =New-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $rgName -Location $locName -AddressPrefix . $$vNetAddressRange -Subnet $frontendSubnet,$backendSubnet, $mgmtSubnet $subnetName =" frontendSubnet " $subnet1=$vnet.Subnets|?{$_。Name -eq $subnetName} $subnetName="backEndSubnet" $subnet2=$vnet.Subnets|?{$_. .Name -eq $subnetName} $subnetName="mgmtSubnet" $subnet3=$vnet.Subnets|?名称-eq $subnetName}

创建公网IP地址

$pip1= new - azurermpublicicipaddress -Name $pubIPName1 -ResourceGroupName $rgName -DomainNameLabel $domName1 -Location $locName -AllocationMethod Dynamic $pip2= new - azurermpublicicipaddress -Name $pubIPName2 -ResourceGroupName $rgName -DomainNameLabel $domName2 -Location $locName -AllocationMethod Dynamic $pip3= new - azurermpublicicipaddress -Name $pubIPName3 -ResourceGroupName $rgName -DomainNameLabel $domName3 -Location $locName -AllocationMethod动态

为VPX1创建IP配置

$IpConfigName1 =" IPConfig1" $IPAddress=" 12.5.2.24" $IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IpConfigName1 -Subnet $subnet3 -PrivateIpAddress $IPAddress - publicicipaddress $pip1 -Primary $IPConfigName3="IPConfig-3" $IPAddress="12.5.1.27" $IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -Subnet $subnet1 -PrivateIpAddress $IPAddress -Primary $IPConfigName4 =" IPConfig-4" $IPAddress=" 12.5.3.24" $IPConfig4 =New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 =" IPConfig-4" $IPAddress=" 12.5.3.24-Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary

创建VPX2的IP配置

IpConfigName5 =“IPConfig5 IPAddress美元= " 12.5.2.26”IPConfig5 = New-AzureRmNetworkInterfaceIpConfig - name IpConfigName5美元美元子网subnet3 -PrivateIpAddress IPAddress -PublicIpAddress pip2美元主要IPConfigName7 =“IPConfig-7 IPAddress美元=“12.5.1.28 IPConfig7 = New-AzureRmNetworkInterfaceIpConfig - name IPConfigName7美元美元子网subnet1 -PrivateIpAddress IPAddress主要IPConfigName8美元=“IPConfig-8 IPAddress美元=“12.5.3.28”IPConfig8 = New-AzureRmNetworkInterfaceIpConfig - name IPConfigName8美元子网$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. netId$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

该步骤包括以下子步骤:

  • 创建虚拟机配置对象
  • 设置凭据、操作系统和镜像
  • 添加网卡
  • 指定操作系统磁盘并创建虚拟机

    $suffixNumber = 1 $vmName=$vmNamePrefix + $suffixNumber $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 $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 "输入VPX登录的名称和密码"$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  ```

查看分配给网卡的私有IP地址和公网IP地址,输入以下命令:

“‘nic1美元。IPConfig nic2美元。IPConfig nic3美元。IPConfig nic4美元。IPConfig nic5美元。IPConfig nic6美元。IPConfig < !--NeedCopy--> ```

创建Azure负载平衡(ALB)

该步骤包括以下子步骤:

  • 创建前端IP配置
  • 创建健康探测器
  • 创建后端地址池
  • 创建负载平衡规则(HTTP和SSL)
  • 创建ALB,配置前端IP配置、后端地址池和LB规则
  • 关联IP配置与后端池

    $frontEndIP1=New-AzureRmLoadBalancerFrontendIpConfig -Name $frontEndConfigName1 - publicicipaddress $pip3 . $

    $healthProbe= new - azurermloadbalancerprobecconfig -Name $healthProbeName -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount

    $beAddressPool1=New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $backendPoolName1

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

    $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])

    磅=美元磅| Set-AzureRmLoadBalancer

    $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. 为VPX1 (NIC2)和VPX2 (NIC5)添加客户端网卡的私网IP地址作为SNIPs。

    add nsip privateIPofNIC2 255.255.255.0 -type sipadd nsip privateIPofNIC5 255.255.255.0 -type sip

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

    添加lb虚拟服务器v1 HTTP frontendipofalb80

相关资源

在Azure主备HA部署中配置GSLB

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