NetScaler VPX 14.1

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

Azure Hochverfügbarkeit

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.

ALB überwacht jede VPX-Instanz, indem es alle 5 Sekunden eine Integritätsprüfung sendet und den Datenverkehr nur an die Instanz umleitet, die regelmäßig auf Integritätsprüfungen antwortet. In einem HA-Setup antwortet der primäre Knoten auf Integritätsprüfungen, der sekundäre jedoch nicht. Wenn die primären Instanzen zwei aufeinanderfolgende Integritätsprüfungen verpassen, leitet ALB den Datenverkehr nicht an diese Instanz um. Beim Failover beginnt der neue primäre Knoten, auf Integritätsprüfungen zu antworten, und der ALB leitet den Datenverkehr an ihn um. Die standardmäßige VPX-Hochverfügbarkeits-Failoverzeit beträgt drei Sekunden. Die gesamte Failoverzeit, 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 gemäß 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 Management-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 Management-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
Konfigurierte LB-Regeln und Ports sind HTTP (80), SSL (443), Health-Probe (9000) Clientseitige IP ist mit IPConfig3 konfiguriert, die eine private IP (12.5.1.27) enthält;nic2; FrontEndsubet=12.5.1.0/24 Clientseitige IP ist mit IPConfig7 konfiguriert, die eine private IP (12.5.1.28) enthält;nic5;FrontEndsubet=12.5.1.0/24
- Serverseitige IP ist mit IPConfig4 konfiguriert, die eine private IP (12.5.3.24) enthält; nic3;BackendSubnet=12.5.3.0/24 Serverseitige 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:

  1. Erstellen Sie eine Ressourcengruppe, ein Speicherkonto und eine Verfügbarkeitsgruppe
  2. Erstellen Sie eine Netzwerksicherheitsgruppe und fügen Sie Regeln hinzu
  3. Erstellen Sie ein virtuelles Netzwerk und drei Subnetze
  4. Erstellen Sie öffentliche IP-Adressen
  5. Erstellen Sie IP-Konfigurationen für VPX1
  6. Erstellen Sie IP-Konfigurationen für VPX2
  7. Erstellen Sie NICs für VPX1
  8. NICs für VPX2 erstellen
  9. VPX1 erstellen
  10. VPX2 erstellen
  11. 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
  • OS-Datenträ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 Back-End-Pools zuordnen

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

  1. Geben Sie den folgenden Befehl ein, um HA-Knoten hinzuzufügen.

    add ha node 1 PeerNodeNSIP -inc Enabled

  2. 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 SNIP add nsip privateIPofNIC5 255.255.255.0 -type SNIP

  3. Fügen Sie einen Lastenausgleichs-Virtual-Server auf dem primären Knoten mit der Front-End-IP-Adresse (öffentliche IP) von ALB hinzu.

    add lb virtual server v1 HTTP FrontEndIPofALB 80

Verwandte Ressourcen:

Konfigurieren von GSLB in einer Active-Standby HA-Bereitstellung in Azure

Konfigurieren Sie ein Hochverfügbarkeits-Setup mit mehreren IP-Adressen und NICs mithilfe von PowerShell-Befehlen