ADC

Hochverfügbarkeitssetup mit mehreren IP-Adressen und NICs über PowerShell-Befehle konfigurieren

Sie können ein Paar von NetScaler VPX -Instanzen mit mehreren Netzwerkkarten in einem aktiv-passiven Hochverfügbarkeitssetup in Azure bereitstellen. Jede NIC kann mehrere IP-Adressen enthalten.

Eine Aktiv-Passiv-Bereitstellung erfordert:

  • Eine HA Independent Network Configuration (INC) Konfiguration
  • Der Azure Load Balancer (ALB) im Direct Server Return (DSR) -Modus

Der gesamte Verkehr läuft über den primären Knoten. Der sekundäre Knoten bleibt im Standbymodus, bis der primäre Knoten ausfällt.

Hinweis

Damit eine NetScaler VPX Hochverfügbarkeitsbereitstellung in einer Azure-Cloud funktioniert, benötigen Sie eine Floating Public IP (PIP), die zwischen den beiden Hochverfügbarkeitsknoten verschoben werden kann. Der Azure Load Balancer (ALB) stellt dieses schwebende PIP bereit, das im Falle eines Failovers automatisch auf den zweiten Knoten verschoben wird.

Diagramm: Beispiel einer aktiv-passiven Bereitstellungsarchitektur

Azure-Hochverfügbarkeit

In einer aktiven und passiven Bereitstellung werden die ALB Floating Public IP (PIP) Adressen als VIP-Adressen in jedem VPX-Knoten hinzugefügt. In der HA-INC-Konfiguration sind die VIP-Adressen unverankert und SNIP-Adressen sind Instanzenpezifisch.

ALB überwacht jede VPX-Instanz, indem es alle 5 Sekunden den Integritäts-Sonde sendet, und leitet den Datenverkehr nur an diese Instanz um, die die Reaktion der Integritätssonden in regelmäßigen Intervallen sendet. In einem HA-Setup reagiert der primäre Knoten auf Gesundheitssonden und sekundäre nicht. Wenn die primären Instanzen zwei aufeinanderfolgende Gesundheitssonden verpassen, leitet ALB den Datenverkehr nicht zu dieser Instanz um. Beim Failover reagiert die neue primäre Instanz auf Integritätstests und der ALB leitet den Datenverkehr an ihn weiter. Die standardmäßige VPX-Hochverfügbarkeits-Failover-Zeit beträgt drei Sekunden. Die gesamte Failover-Zeit, die für den Traffic Switching in Anspruch nehmen kann, kann maximal 13 Sekunden betragen.

Sie können ein VPX-Paar in einem aktiv/passiven HA-Setup auf zwei Arten bereitstellen, indem Sie Folgendes verwenden:

  • NetScaler VPX Standard-Vorlage für hohe Verfügbarkeit: 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.

In diesem Thema wird beschrieben, wie ein VPX-Paar in aktiv-passiven HA-Setup mithilfe von PowerShell Befehlen bereitgestellt wird. Informationen zur Verwendung der NetScaler VPX Standard HA-Vorlage finden Sie unter Konfigurieren eines HA-Setups mit mehreren IP-Adressen und NICs.

Konfigurieren Sie HA-INC-Knoten mit PowerShell-Befehlen

Szenario: HA-INC PowerShell Bereitstellung

In diesem Szenario stellen Sie ein NetScaler VPX-Paar bereit, indem Sie die in der Tabelle angegebene Topologie verwenden. Jede VPX-Instanz enthält drei NICs, wobei jede NIC in einem anderen Subnetz bereitgestellt wird. Jeder NIC ist eine IP-Konfiguration zugewiesen.

ALB VPX1 VPX2
ALB ist mit öffentlicher IP 3 (pip3) verknüpft Die Management-IP ist mit ipConfig1 konfiguriert, was eine öffentliche IP (pip1) und eine private IP (12.5.2.24) beinhaltet; nic1; Mgmtsubnet=12.5.2.0/24 Die Management-IP ist mit IPConfig5 konfiguriert, was eine öffentliche IP (pip3) und eine private IP (12.5.2.26) beinhaltet; nic4; Mgmtsubnet=12.5.2.0/24
LB-Regeln und der konfigurierte Port sind HTTP (80), SSL (443), Health Probe (9000) Die clientseitige IP wird mit IPConfig3 konfiguriert, was eine private IP beinhaltet (12.5.1.27); nic2; FrontendSubT=12.5.1.0/24 Die clientseitige IP wird mit IPConfig7 konfiguriert, was eine private IP beinhaltet (12.5.1.28); nic5; FrontendSubT=12.5.1.0/24
- Die serverseitige IP wird mit IPConfig4 konfiguriert, was eine private IP beinhaltet (12.5.3.24); nic3; BackendSubnet=12.5.3.0/24 Die serverseitige IP wird mit IPConfig8 konfiguriert, was eine private IP beinhaltet (12.5.3.28); nic6; BackendSubnet=12.5.3.0/24
- Regeln und Ports für NSG sind SSH (22), HTTP (80), HTTPS (443) -

Parameter-Einstellungen

Die folgenden Parametereinstellungen werden in diesem Szenario verwendet.

$locName= „Südostasien“

$rgName = „Mehrstufiges Multi-RG“

$nicName1= “VM1-NIC1”

$nicName2 = “VM1-NIC2”

$nicName3= “VM1-NIC3”

$nicName4 = “VM2-NIC1”

$nicName5= “VM2-NIC2”

$nicName6 = “VM2-NIC3”

$vNetName = „Azure-MultiIP-Alben-VNET“

$vNetAddressRange= „12.5.0.0/16”

$frontendSubnetName = „Frontend-Subnetz“

$frontendSubnetRange= „12.5.1.0/24”

$mgmtSubnetName = „MGMT-Subnetz“

$mgmtSubnetRange= „12.5.2.0/24”

$backendSubnetName = „BackendSubnetz“

$backendSubnetRange = „12.5.3.0/24”

$prmStorageAccountName = „multiipmultinicbstorage“

$avSetName = „Mehrere AVSets“

$vmSize= “Standard_DS4_V2”

$Publisher = “Citrix”

$offer = “netscalervpx-120”

$sku = „netscalerbyl“

$version=”latest”

$pubIPName1=”VPX1MGMT”

$pubIPName2=”VPX2MGMT”

$pubIPName3=”ALBPIP”

$domName1=”vpx1dns”

$domName2=”vpx2dns”

$domName3=”vpxalbdns”

$vmNamePrefix=”vpxMultiIPAlb“

$osDiskSuffix1=”osmultiipalbdiskdb1”

$osDiskSuffix2=”osmultiipalbdiskdb2”

$lbName = „Mehrere IPAlb“

$frontendConfigName1 = „Frontend-IP“

$backendPoolName1 = „BackendpoolHTTP“

$lbRuleName1 = „LbRuleHttp“

$healthProbename = „HealthProbe“

$nsgName=”NSG-MultiIP-Alb“

$rule1Name=”Inbound-HTTP”

$rule2Name=”Inbound-HTTPS”

$rule3Name=”Inbound-SSH”

Führen Sie die folgenden Schritte mithilfe von PowerShell-Befehlen durch, um die Bereitstellung abzuschließen:

  1. Erstellen Sie eine Ressourcengruppe, ein Speicherkonto und einen Verfügbarkeitssatz
  2. Erstellen Sie eine Netzwerksicherheitsgruppe und fügen Sie Regeln hinzu
  3. Erstellen Sie ein virtuelles Netzwerk und drei Subnetze
  4. Öffentliche IP-Adressen erstellen
  5. IP-Konfigurationen für VPX1 erstellen
  6. IP-Konfigurationen für VPX2 erstellen
  7. Netzwerkkarten für VPX1 erstellen
  8. Netzwerkkarten für VPX2 erstellen
  9. VPX1 erstellen
  10. VPX2 erstellen
  11. ALB erstellen

Erstellen Sie eine Ressourcengruppe, ein Speicherkonto und ein Verfügbarkeitsset.

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

Erstellen Sie eine Netzwerksicherheitsgruppe und fügen Sie Regeln hinzu.

$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

Erstellen Sie ein virtuelles Netzwerk und drei Subnetze.

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

Erstellen Sie öffentliche IP-Adressen.

$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

Erstellen Sie IP-Konfigurationen für VPX1.

$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

Erstellen Sie IP-Konfigurationen für VPX2.

$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

Erstellen Sie Netzwerkkarten für 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

Erstellen Sie Netzwerkkarten für 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

Erstellen Sie VPX1.

Dieser Schritt umfasst die folgenden Teilschritte:

  • VM-Konfigurationsobjekt erstellen
  • Anmeldeinformationen, Betriebssystem und Image festlegen
  • Netzwerkkarten hinzufügen
  • Festlegen des Betriebssystemdatenträgers und Erstellen eines virtuellen Rechners

     $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
    

Erstellen Sie VPX2.

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

Geben Sie die folgenden Befehle ein, um private und öffentliche IP-Adressen anzuzeigen, die den Netzwerkkarten zugewiesen sind:

```
$nic1.IPConfig


$nic2.IPConfig


$nic3.IPConfig


$nic4.IPConfig


$nic5.IPConfig


$nic6.IPConfig
<!--NeedCopy--> ```

Erstellen Sie Azure-Lastenausgleich (ALB).

Dieser Schritt umfasst die folgenden Teilschritte:

  • Frontend-IP-Konfiguration erstellen
  • Integritätstest erstellen
  • Back-End-Adresspool erstellen
  • Erstellen von Lastenausgleichsregeln (HTTP und SSL)
  • Erstellen Sie ALB mit Front-End-IP-Konfiguration, Back-End-Adresspool und LB-Regel
  • Verknüpfen Sie IP-Konfiguration mit Back-End-Pools

    $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 Netzwerkkarten 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 virtuellen Lastenausgleichsserver auf dem primären Knoten mit Front-End-IP-Adresse (öffentliche IP) von ALB hinzu.

    add lb virtual server v1 HTTP FrontEndIPofALB 80

Verwandte Ressourcen:

Konfigurieren von GSLB in der aktiven Standby-HA-Bereitstellung in Azure

Hochverfügbarkeitssetup mit mehreren IP-Adressen und NICs über PowerShell-Befehle konfigurieren