Konfigurieren Sie ein Hochverfügbarkeits-Setup mit mehreren IP-Adressen und NICs mithilfe von PowerShell-Befehlen
Sie können ein Paar NetScaler VPX-Instanzen mit mehreren NICs in einem aktiv-passiven Hochverfügbarkeits-Setup (HA) in Azure bereitstellen. Jede NIC kann mehrere IP-Adressen enthalten.
Eine aktiv-passive Bereitstellung erfordert:
- Eine HA Independent Network Configuration (INC)-Konfiguration
- Den Azure Load Balancer (ALB) im Direct Server Return (DSR)-Modus
Der gesamte Datenverkehr läuft über den primären Knoten. Der sekundäre Knoten bleibt im Standby-Modus, bis der primäre Knoten ausfällt.
Hinweis:
Damit eine NetScaler VPX-Hochverfügbarkeitsbereitstellung in einer Azure-Cloud funktioniert, benötigen Sie eine schwebende öffentliche IP (PIP), die zwischen den beiden Hochverfügbarkeitsknoten verschoben werden kann. Der Azure Load Balancer (ALB) stellt diese schwebende PIP bereit, die im Falle eines Failovers automatisch auf den zweiten Knoten verschoben wird.
Diagramm: Beispiel einer aktiv-passiven Bereitstellungsarchitektur

Bei einer aktiv-passiven Bereitstellung werden die schwebenden öffentlichen IP-Adressen (PIP) des ALB als VIP-Adressen in jedem VPX-Knoten hinzugefügt. In der HA-INC-Konfiguration sind die VIP-Adressen schwebend und die SNIP-Adressen instanzspezifisch.
Der ALB überwacht jede VPX-Instanz, indem er alle 5 Sekunden einen Health Probe sendet und leitet den Datenverkehr nur an die Instanz weiter, die regelmäßig auf Health Probes antwortet. In einem HA-Setup antwortet der primäre Knoten auf Health Probes, der sekundäre jedoch nicht. Wenn die primären Instanzen zwei aufeinanderfolgende Health Probes verpassen, leitet der ALB den Datenverkehr nicht an diese Instanz weiter. Beim Failover beginnt der neue primäre Knoten, auf Health Probes zu antworten, und der ALB leitet den Datenverkehr an ihn weiter. Die standardmäßige Failover-Zeit für VPX-Hochverfügbarkeit beträgt drei Sekunden. Die gesamte Failover-Zeit, die für die Datenverkehrsumschaltung benötigt werden kann, beträgt maximal 13 Sekunden.
Sie können ein VPX-Paar in einem aktiv-passiven HA-Setup auf zwei Arten bereitstellen, indem Sie Folgendes verwenden:
- NetScaler VPX Standard-Hochverfügbarkeitsvorlage: Verwenden Sie diese Option, um ein HA-Paar mit der Standardoption von drei Subnetzen und sechs NICs zu konfigurieren.
- Windows PowerShell-Befehle: Verwenden Sie diese Option, um ein HA-Paar entsprechend Ihren Subnetz- und NIC-Anforderungen zu konfigurieren.
Dieses Thema beschreibt, wie ein VPX-Paar in einem aktiv-passiven HA-Setup mithilfe von PowerShell-Befehlen bereitgestellt wird. Wenn Sie die NetScaler VPX Standard HA-Vorlage verwenden möchten, lesen Sie Konfigurieren eines HA-Setups mit mehreren IP-Adressen und NICs.
HA-INC-Knoten mithilfe von PowerShell-Befehlen konfigurieren
Szenario: HA-INC PowerShell-Bereitstellung
In diesem Szenario stellen Sie ein NetScaler VPX-Paar mithilfe der in der Tabelle angegebenen Topologie bereit. Jede VPX-Instanz enthält drei NICs, wobei jede NIC in einem anderen Subnetz bereitgestellt wird. Jeder NIC wird eine IP-Konfiguration zugewiesen.
| ALB | VPX1 | VPX2 |
|---|---|---|
| ALB ist mit öffentlicher IP 3 (pip3) verknüpft | Verwaltungs-IP ist mit IPConfig1 konfiguriert, die eine öffentliche IP (pip1) und eine private IP (12.5.2.24) enthält; nic1; Mgmtsubnet=12.5.2.0/24 | Verwaltungs-IP ist mit IPConfig5 konfiguriert, die eine öffentliche IP (pip3) und eine private IP (12.5.2.26) enthält;nic4;Mgmtsubnet=12.5.2.0/24 |
| LB-Regeln und konfigurierte Ports sind HTTP (80), SSL (443), Health Probe (9000) | Client-seitige IP ist mit IPConfig3 konfiguriert, die eine private IP (12.5.1.27) enthält;nic2; FrontEndsubet=12.5.1.0/24 | Client-seitige IP ist mit IPConfig7 konfiguriert, die eine private IP (12.5.1.28) enthält;nic5;FrontEndsubet=12.5.1.0/24 |
| - | Server-seitige IP ist mit IPConfig4 konfiguriert, die eine private IP (12.5.3.24) enthält; nic3;BackendSubnet=12.5.3.0/24 | Server-seitige IP ist mit IPConfig8 konfiguriert, die eine private IP (12.5.3.28) enthält;nic6;BackendSubnet=12.5.3.0/24 |
| - | Regeln und Ports für NSG sind SSH (22), HTTP (80), HTTPS (443) | - |
Parametereinstellungen
Die folgenden Parametereinstellungen werden in diesem Szenario verwendet:
$locName= "South east Asia"
$rgName = "MulitIP-MultiNIC-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 = "multiipmultinicbstorage"
$avSetName = "multiple-avSet"
$vmSize= "Standard\_DS4\_V2"
$publisher = "Citrix"
$offer = "netscalervpx-120"
$sku = "netscalerbyol"
$version="latest"
$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="Inbound-HTTP"
$rule2Name="Inbound-HTTPS"
$rule3Name="Inbound-SSH"
<!--NeedCopy-->
Um die Bereitstellung abzuschließen, führen Sie die folgenden Schritte mithilfe von PowerShell-Befehlen aus:
- Eine Ressourcengruppe, ein Speicherkonto und eine Verfügbarkeitsgruppe erstellen
- Eine Netzwerksicherheitsgruppe erstellen und Regeln hinzufügen
- Ein virtuelles Netzwerk und drei Subnetze erstellen
- Öffentliche IP-Adressen erstellen
- IP-Konfigurationen für VPX1 erstellen
- IP-Konfigurationen für VPX2 erstellen
- NICs für VPX1 erstellen
- NICs für VPX2 erstellen
- VPX1 erstellen
- VPX2 erstellen
- ALB erstellen
Eine Ressourcengruppe, ein Speicherkonto und eine Verfügbarkeitsgruppe erstellen.
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
Eine Netzwerksicherheitsgruppe erstellen und Regeln hinzufügen.
$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
Ein virtuelles Netzwerk und drei Subnetze erstellen.
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange (this parameter value should be as per your requirement)
$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|?{\$\_.Name -eq \$subnetName}
Öffentliche IP-Adressen erstellen.
$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
IP-Konfigurationen für VPX1 erstellen.
$IpConfigName1 = "IPConfig1"
$IPAddress = "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"
$IPAddress = "12.5.3.24"
$IPConfig4 = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary
IP-Konfigurationen für VPX2 erstellen.
$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
NICs für VPX1 erstellen.
$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
NICs für VPX2 erstellen.
$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 erstellen.
Dieser Schritt umfasst die folgenden Unterschritte:
- VM-Konfigurationsobjekt erstellen
- Anmeldeinformationen, Betriebssystem und Image festlegen
- NICs hinzufügen
-
Betriebssystemdatenträger angeben und VM erstellen
$suffixNumber = 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 erstellen.
```
$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
<!--NeedCopy--> ```
Um die den NICs zugewiesenen privaten und öffentlichen IP-Adressen anzuzeigen, geben Sie die folgenden Befehle ein:
```
$nic1.IPConfig
$nic2.IPConfig
$nic3.IPConfig
$nic4.IPConfig
$nic5.IPConfig
$nic6.IPConfig
<!--NeedCopy--> ```
Azure Load Balancer (ALB) erstellen.
Dieser Schritt umfasst die folgenden Unterschritte:
- Front-End-IP-Konfiguration erstellen
- Integritätstest erstellen
- Back-End-Adresspool erstellen
- Lastenausgleichsregeln erstellen (HTTP und SSL)
- ALB mit Front-End-IP-Konfiguration, Back-End-Adresspool und LB-Regel erstellen
-
IP-Konfiguration mit Back-End-Pools verknüpfen
$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 |Set-AzureRmLoadBalancer$nic2=$nic2 | Set-AzureRmNetworkInterface$nic5=$nic5 | Set-AzureRmNetworkInterface
Nachdem Sie das NetScaler VPX-Paar erfolgreich bereitgestellt haben, melden Sie sich bei jeder VPX-Instanz an, um HA-INC sowie SNIP- und VIP-Adressen zu konfigurieren.
-
Geben Sie den folgenden Befehl ein, um HA-Knoten hinzuzufügen.
add ha node 1 PeerNodeNSIP -inc Enabled -
Fügen Sie private IP-Adressen von clientseitigen NICs als SNIPs für VPX1 (NIC2) und VPX2 (NIC5) hinzu.
add nsip privateIPofNIC2 255.255.255.0 -type SNIPadd nsip privateIPofNIC5 255.255.255.0 -type SNIP -
Fügen Sie auf dem primären Knoten einen virtuellen Lastausgleichsserver mit der Front-End-IP-Adresse (öffentliche IP) des ALB hinzu.
add lb virtual server v1 HTTP FrontEndIPofALB 80
Verwandte Ressourcen:
Konfigurieren von GSLB für eine Active-Standby-HA-Bereitstellung in Azure