Citrix ADC

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

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

主动-被动部署需要:

  • 哈独立网络配置(inc)配置
  • 处于直接服务器返回(DSR)模式的Azure负载均衡器(ALB)

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

注意

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

示意图:主动-被动部署体系结构示例

Azure高可用性

在主动——被动部署中,铝青铜浮动公用IP (PIP)地址作为VIP地址添加在每个VPX节点中。在ha-inc配置中,vip地址是浮动的,而snip地址是实例特定的。

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

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

  • Citrix ADC VPX标准高可用性模板:此选项用于配置采用默认选项(网卡三个子网和六个)的ha对。
  • Windows PowerShell命令:此选项用于根据您的子网和网卡要求来配置高可用性对。

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

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

场景:HA-INC PowerShell部署

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

铝青铜 VPX1 VPX2
ALB与公用ip3 (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
- 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 = " multiip多国icbstorage "

$avSetName = " multi - 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. 创建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 "允许HTTP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 $rule2 = New-AzureRmNetworkSecurityRuleConfig -Name $rule2Name -Description "允许HTTPS" -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix *-DestinationPortRange 443 $rule3 = New-AzureRmNetworkSecurityRuleConfig -Name $rule3Name -Description "允许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(此参数值应根据您的需求而定)$mgmtSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $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|?{$_。名称-eq $subnetName} $subnetName="backEndSubnet" $subnet2=$vnet.Subnets|?{$_. subnets} $subnet2= "backEndSubnet"Name -eq $subnetName} $subnetName="mgmtSubnet" $subnet3=$vnet.Subnets|?{$_. subnet3= "mgmtSubnet"-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 Dynamic

为vpx1创建IP配置

$IpConfigName1 =" IPConfig1" $IPAddress=" 12.5.2.24" $IPConfig1=新- azurermnetworkinterfaceipconfig -Name $IpConfigName1 -子网$subnet3 - privateeipaddress $IPAddress - publicipp1 -主$IPConfigName3="IPConfig-3" $IPConfig3=新- azurermnetworkinterfaceipconfig -Name $IPConfig3 -子网$subnet1 - privateeipaddress $IPAddress -主$IPConfigName4 =" IPConfig-4" $IPAddress=" 12.5.3.24" $IPConfig4 =新- azurermnetworkinterfaceipconfig-Subnet $subnet2 -PrivateIpAddress $IPAddress -主子网

为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。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配置对象
  • 设置凭据、操作系统和映像
  • 添加网卡
  • 指定操作系统磁盘并创建vm

    $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 - credd $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 - credd $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地址,请键入以下命令:

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

创建Azure负载平衡(ALB)

此步骤包括以下子步骤:

  • 创建前端IP地址配置
  • 创建运行状况探测
  • 创建后端地址池
  • 创建负载平衡规则(http和ssl)
  • 使用前端IP配置,后端地址池和lb规则创建alb
  • 将IP地址配置与后端池相关联

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

    $healthProbe= new - azurermloadbalancerprobecconfig -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])

    磅=美元磅| Set-AzureRmLoadBalancer

    $nic2=$nic2 | Set-AzureRmNetworkInterface

    $nic5=$nic5 | Set-AzureRmNetworkInterface

成功部署了Citrix ADC VPX对后,登录每个VPX实例以配置HA-INC,剪断和VIP地址。

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

    add ha node 1 PeerNodeNSIP -inc启用

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

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

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

    add lb virtual server v1 HTTP FrontEndIPofALB 80

相关资源

在Azure上的主动-备用高可用性部署中配置GSLB

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