使用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,在发生故障转移时,它会自动移动到第二个节点。
图:主-被动式部署架构示例
主备部署时,在每个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命令完成以下步骤:
- 创建资源组、存储帐户和可用性集
- 创建网络安全组,并添加规则
- 创建一个虚拟网络和三个子网
- 创建公网IP地址
- 为VPX1创建IP配置
- 创建VPX2的IP配置
- 为VPX1创建网卡
- 为VPX2创建网卡
- 创建VPX1
- 创建VPX2
- 创建铝青铜
创建资源组、存储帐户和可用性集.
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地址。
输入以下命令添加HA节点。
add ha node 1 PeerNodeNSIP -inc Enabled
为VPX1 (NIC2)和VPX2 (NIC5)添加客户端网卡的私网IP地址作为SNIPs。
add nsip privateIPofNIC2 255.255.255.0 -type sip
add nsip privateIPofNIC5 255.255.255.0 -type sip
在ALB的前端IP地址(公网IP)为主节点上添加负载均衡虚拟服务器。
添加lb虚拟服务器v1 HTTP frontendipofalb80
相关资源: