Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten über PowerShell-Befehle
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.
Für eine aktiv-passive Bereitstellung sind folgende Voraussetzungen erforderlich:
- Eine HA Independent Network Configuration (INC) Konfiguration
- Der Azure Load Balancer (ALB) im Direct Server Return (DSR) -Modus
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 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
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:
- 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. Wenn Sie die NetScaler VPX Standard-HA-Vorlage verwenden möchten, lesen Sie 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 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:
- Erstellen einer Ressourcengruppe, eines Speicherkontos und eines Verfügbarkeitssatzes
- Erstellen einer Netzwerksicherheitsgruppe und Hinzufügen von Regeln
- Erstellen eines virtuellen Netzwerks und drei Subnetze
- Öffentliche IP-Adressen erstellen
- Erstellen von IP-Konfigurationen für VPX1
- Erstellen von IP-Konfigurationen für VPX2
- Erstellen von Netzwerkkarten für VPX1
- Erstellen von Netzwerkkarten für VPX2
- VPX1 erstellen
- VPX2 erstellen
- 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
- Erstellen eines Integritätstests
- 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.
-
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 Netzwerkkarten als SNIPs für VPX1 (NIC2) und VPX2 (NIC5) hinzu
füge nsip privateIPofNIC2 255.255.255.0 hinzu -Typ SNIP
füge nsip privateIPofNIC5 255.255.255.0 hinzu -Typ SNIP
-
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