ADC

Configurer une configuration haute disponibilité avec plusieurs adresses IP et cartes réseau à l’aide des commandes PowerShell

Vous pouvez déployer deux instances NetScaler VPX avec plusieurs cartes réseau dans une configuration de haute disponibilité (HA) active-passive sur Azure. Chaque carte réseau peut contenir plusieurs adresses IP.

Un déploiement actif-passif nécessite :

  • Configuration INC (Independent Network Configuration) de haute disponibilité
  • L’Azure Load Balancer (ALB) en mode Direct Server Return (DSR)

Tout le trafic passe par le nœud principal. Le nœud secondaire reste en mode veille jusqu’à ce que le nœud principal tombe en panne.

Remarque

Pour qu’un déploiement de haute disponibilité de NetScaler VPX sur un cloud Azure fonctionne, vous avez besoin d’une adresse IP publique flottante (PIP) qui peut être déplacée entre les deux nœuds de haute disponibilité. L’équilibrage de charge Azure (ALB) fournit ce PIP flottant, qui est déplacé automatiquement vers le deuxième nœud en cas de basculement.

Schéma : Exemple d’architecture de déploiement actif-passif

Haute disponibilité Azure

Dans un déploiement actif-passif, les adresses IP publiques flottantes (PIP) ALB sont ajoutées en tant qu’adresses VIP dans chaque nœud VPX. Dans la configuration HA-INC, les adresses VIP sont flottantes et les adresses SNIP sont spécifiques à l’instance.

ALB surveille chaque instance VPX en envoyant une sonde de santé toutes les 5 secondes et redirige le trafic vers cette instance uniquement qui envoie la réponse des sondes de santé à intervalles réguliers. Ainsi, dans une configuration HA, le nœud principal répond aux sondes d’intégrité et le nœud secondaire ne le fait pas. Si les instances principales manquent deux sondes de santé consécutives, ALB ne redirige pas le trafic vers cette instance. Lors du basculement, la nouvelle base commence à répondre aux sondes d’intégrité et l’ALB redirige le trafic vers elle. Le temps de basculement standard VPX haute disponibilité est de trois secondes. Le temps de basculement total que peut prendre la commutation du trafic peut être de 13 secondes au maximum.

Vous pouvez déployer une paire VPX dans une configuration HA active-passive de deux manières en utilisant :

  • Modèle de haute disponibilité standard NetScaler VPX : utilisez cette option pour configurer une paire HA avec l’option par défaut de trois sous-réseaux et six cartes réseau.
  • Commandes Windows PowerShell : utilisez cette option pour configurer une paire HA en fonction des exigences de votre sous-réseau et de votre carte réseau.

Cette rubrique décrit comment déployer une paire VPX dans une configuration HA active-passive à l’aide des commandes PowerShell. Si vous souhaitez utiliser le modèle NetScaler VPX Standard HA, reportez-vous à la section Configuration d’une configuration HA avec plusieurs adresses IPet cartes réseau.

Configurer les nœuds HA-INC à l’aide des commandes PowerShell

Scénario : déploiement PowerShell HA-INC

Dans ce scénario, vous déployez une paire NetScaler VPX en utilisant la topologie indiquée dans le tableau. Chaque instance VPX contient trois cartes réseau, chaque carte réseau étant déployée dans un sous-réseau différent. Une configuration IP est attribuée à chaque carte réseau.

ALB VPX1 VPX2
ALB est associé à l’adresse IP publique 3 (pip3) L’IP de gestion est configurée avec IPConfig1, qui inclut une adresse IP publique (pip1) et une adresse IP privée (12.5.2.24) ; nic1 ; Mgmtsubnet=12.5.2.0/24 L’IP de gestion est configurée avec IPConfig5, qui inclut une adresse IP publique (pip3) et une adresse IP privée (12.5.2.26) ; nic4 ; Mgmtsubnet=12.5.2.0/24
Les règles LB et le port configurés sont HTTP (80), SSL (443), Health Probe (9000) L’adresse IP côté client est configurée avec IPConfig3, qui inclut une adresse IP privée (12.5.1.27) ; nic2 ; FrontendSubet=12.5.1.0/24 L’adresse IP côté client est configurée avec IPConfig7, qui inclut une adresse IP privée (12.5.1.28) ; nic5 ; FrontendSubet=12.5.1.0/24
- L’adresse IP côté serveur est configurée avec IPConfig4, qui inclut une adresse IP privée (12.5.3.24) ; nic3 ; backendSubnet=12.5.3.0/24 L’adresse IP côté serveur est configurée avec IPConfig8, qui inclut une adresse IP privée (12.5.3.28) ; nic6 ; backendSubnet=12.5.3.0/24
- Les règles et les ports pour NSG sont SSH (22), HTTP (80), HTTPS (443) -

Réglages des paramètres

Les paramètres suivants sont utilisés dans ce scénario.

$locName= « Asie du Sud-Est »

$rgname = « RG multi-tip-multinique-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 = « stockage multiipmultinicbstorage »

$avSetName = « Plusieurs AVSet »

$vmSize= “Standard_DS4_V2”

$publisher = « Citrix »

$offer = “netscalervpx-120”

$sku = « netscalerbyol »

$version=”dernière »

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

Pour terminer le déploiement, procédez comme suit à l’aide des commandes PowerShell :

  1. Création d’un groupe de ressources, d’un compte de stockage et d’un ensemble de disponibilité
  2. Création d’un groupe de sécurité réseau et ajout de règles
  3. Création d’un réseau virtuel et de trois sous-réseaux
  4. Création d’adresses IP publiques
  5. Création de configurations IP pour VPX1
  6. Création de configurations IP pour VPX2
  7. Création de cartes réseau pour VPX1
  8. Création de cartes réseau pour VPX2
  9. Créer VPX1
  10. Créer VPX2
  11. Créer un ALB

Créez un groupe de ressources, un compte de stockage et un jeu de disponibilité.

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

Créez un groupe de sécurité réseau et ajoutez des règles.

$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

Créez un réseau virtuel et trois sous-réseaux.

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

Créez des adresses IP publiques.

$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

Créez des configurations IP pour 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

Créez des configurations IP pour 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

Créez des cartes réseau pour 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

Créez des cartes réseau pour 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

Créez VPX1.

Cette étape comprend les sous-étapes suivantes :

  • Créer un objet de configuration de machine virtuelle
  • Définissez les informations d’identification, le système d’exploitation et l’image
  • Ajouter des cartes réseau
  • Spécifier le disque du système d’exploitation et créer une machine virtuelle

     $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
    

Créez 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--> ```

Pour afficher les adresses IP privées et publiques affectées aux cartes réseau, tapez les commandes suivantes :

```
$nic1.IPConfig


$nic2.IPConfig


$nic3.IPConfig


$nic4.IPConfig


$nic5.IPConfig


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

Créer un équilibrage de charge Azure (ALB).

Cette étape comprend les sous-étapes suivantes :

  • Création d’une configuration IP frontale
  • Créer une sonde de santé
  • Créer un pool d’adresses back-end
  • Créer des règles d’équilibrage de charge (HTTP et SSL)
  • Créer un ALB avec la configuration IP frontale, le pool d’adresses backend et la règle LB
  • Associer la configuration IP à des pools dorsaux

    $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

Une fois que vous avez déployé avec succès la paire NetScaler VPX, connectez-vous à chaque instance VPX pour configurer les adresses HA-INC, SNIP et VIP.

  1. Tapez la commande suivante pour ajouter des nœuds HA.

    add ha node 1 PeerNodeNSIP -inc Enabled

  2. Ajouter des adresses IP privées de cartes réseau côté client en tant que SNIP pour VPX1 (NIC2) et VPX2 (NIC5)

    add nsip privateIPofNIC2 255.255.255.0 -type SNIP add nsip privateIPofNIC5 255.255.255.0 -type SNIP

  3. Ajoutez un serveur virtuel d’équilibrage de charge sur le nœud principal avec l’adresse IP frontale (IP publique) d’ALB.

    add lb virtual server v1 HTTP FrontEndIPofALB 80

Ressources connexes :

Configuration de GSLB sur un déploiement HA actif de secours sur Azure

Configurer une configuration haute disponibilité avec plusieurs adresses IP et cartes réseau à l’aide des commandes PowerShell