ADC

Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten über PowerShell-Befehle

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

Für eine aktiv-passive Bereitstellung sind folgende Voraussetzungen erforderlich:

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

Der gesamte Datenverkehr geht durch den primären Knoten. Der sekundäre Knoten bleibt im Standbymodus, bis der primäre Knoten ausfällt.

Hinweis:

Damit eine Citrix ADC 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 Failoverzeit, die für die Umschaltung des Datenverkehrs benötigt wird, kann maximal 13 Sekunden betragen.

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

  • Citrix ADC VPX Standard Hochverfügbarkeitsvorlage: Verwenden Sie diese Option, um ein HA-Paar mit der Standardoption von drei Subnetzen und sechs Netzwerkkarten 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 Citrix ADC 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 Citrix ADC VPX Paar mithilfe der in der Tabelle angegebenen Topologie bereit. Jede VPX-Instanz enthält drei Netzwerkkarten, wobei jede Netzwerkkarte in einem anderen Subnetz bereitgestellt wird. Jeder NIC wird eine IP-Konfiguration zugewiesen.

ALB VPX1 VPX2
ALB ist mit öffentlicher IP 3 (pip3) verbunden 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
LB-Regeln und Port konfiguriert sind HTTP (80), SSL (443), Health Probe (9000) Clientseitige IP ist mit IPConfig3 konfiguriert, die eine private IP (12.5.1.27); nic2; frontendSubet=12.5.1.0/24 enthält 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); nic3; BackendSubnet=12.5.3.0/24 enthält 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”

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

  1. Erstellen einer Ressourcengruppe, eines Speicherkontos und eines Verfügbarkeitssatzes
  2. Erstellen einer Netzwerksicherheitsgruppe und Hinzufügen von Regeln
  3. Erstellen eines virtuellen Netzwerks und drei Subnetze
  4. Öffentliche IP-Adressen erstellen
  5. Erstellen von IP-Konfigurationen für VPX1
  6. Erstellen von IP-Konfigurationen für VPX2
  7. Erstellen von Netzwerkkarten für VPX1
  8. Erstellen von Netzwerkkarten für VPX2
  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
  • Festlegen der Anmeldeinformationen, des Betriebssystems und des Images
  • 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 Citrix ADC 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

Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten über PowerShell-Befehle