NetScaler VPX 12-1
Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

Configurar una configuración de alta disponibilidad con varias direcciones IP y NIC mediante comandos de PowerShell

Puede implementar un par de instancias de Citrix ADC VPX con varias NIC en una configuración de alta disponibilidad (HA) activa-pasiva en Azure. Cada NIC puede contener varias direcciones IP.

Una implementación activo-pasiva requiere:

  • Configuración de red independiente de HA (INC)
  • El Azure Load Balancer (ALB) en modo Direct Server Return (DSR)

 Todo el tráfico pasa por el nodo principal. El nodo secundario permanece en modo de espera hasta que falla el nodo principal.

Nota:

Para que una implementación de alta disponibilidad de Citrix ADC VPX en la nube de Azure funcione, necesita una IP pública (PIP) flotante que se pueda mover entre los dos nodos de alta disponibilidad. Azure Load Balancer (ALB) proporciona ese PIP flotante, que se mueve automáticamente al segundo nodo en caso de una conmutación por error.

Diagrama: Ejemplo de una arquitectura de implementación activo-pasiva

imagen localizada

En una implementación activo-pasiva, las direcciones IP públicas flotantes (PIP) ALB se agregan como direcciones VIP en cada nodo VPX. En la configuración HA-INC, las direcciones VIP son flotantes y las direcciones SNIP son específicas de la instancia.

ALB supervisa cada instancia VPX mediante el envío de sondeos de estado cada 5 segundos y redirige el tráfico solo a esa instancia que envía una respuesta de sondeo de estado a intervalos regulares. Por lo tanto, en una configuración de HA, el nodo primario responde a sondeos de estado y secundario no. Si a la instancia principal le faltan dos sondeos de estado consecutivos, ALB no redirige el tráfico a esa instancia. En caso de conmutación por error, el nuevo primario comienza a responder a los sondeos de mantenimiento y el ALB redirige el tráfico hacia él. El tiempo de conmutación por error de alta disponibilidad VPX estándar es de tres segundos. El tiempo total de conmutación por error que puede tardar en el cambio de tráfico puede ser de 13 segundos como máximo.

Puede implementar un par VPX en la configuración de HA activa-pasiva de dos maneras mediante:

  • Plantilla de alta disponibilidad estándar de Citrix ADC VPX: Utilice esta opción para configurar un par de alta disponibilidad con la opción predeterminada de tres subredes y seis NIC.
  • Comandos de Windows PowerShell: utilice esta opción para configurar un par de HA de acuerdo con los requisitos de la subred y la NIC.

En este tema se describe cómo implementar un par VPX en la instalación de HA activo-pasiva mediante comandos de PowerShell. Si quiere utilizar la plantilla de alta disponibilidad estándar de Citrix ADC VPX, consulteConfiguración de una configuración de alta disponibilidad con varias direcciones IP y NIC.

Configuración de nodos HA-INC mediante Ccmmands de PowerShell

Caso: Implementación de PowerShell de HA-INC

En este caso, se implementa un par de Citrix ADC VPX mediante la topología indicada en la tabla. Cada instancia VPX contiene tres NIC, cada NIC se implementa en una subred diferente. A cada NIC se le asigna una configuración IP.

ALB VPX1 VPX2
ALB está asociado con IP pública 3 (pip3) La IP de administración se configura con IPConfig1, que incluye una IP pública (pip1) y una IP privada (12.5.2.24); nic1; Mgmtsubnet=12.5.2.0/24 La IP de administración se configura con IPConfig5, que incluye una IP pública (pip3) y una IP privada (12.5.2.26); nic4; Mgmtsubnet=12.5.2.0/24
Las reglas LB y el puerto configurados son HTTP (80), SSL (443), sonda de estado (9000) La IP del lado del cliente está configurada con IPConfig3, que incluye una IP privada (12.5.1.27); nic2; FrontenDSubet=12.5.1.0/24 La IP del lado del cliente está configurada con IPConfig7, que incluye una IP privada (12.5.1.28); nic5; FrontenDSubet=12.5.1.0/24
- La IP del lado del servidor está configurada con IPConfig4, que incluye una IP privada (12.5.3.24); nic3; backendSubnet=12.5.3.0/24 La IP del lado del servidor está configurada con IPConfig8, que incluye una IP privada (12.5.3.28); nic6; backendSubnet=12.5.3.0/24
- Las reglas y los puertos para NSG sonSSH (22), HTTP (80), HTTPS (443) -

Configuración de parámetros

En este escenario se utilizan los siguientes valores de parámetros:

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

Para completar la implementación, complete los pasos siguientes mediante comandos de PowerShell:

  1. Crear un grupo de recursos, una cuenta de almacenamiento y un conjunto de disponibilidad
  2. Crear un grupo de seguridad de red y agregar reglas
  3. Crear una red virtual y tres subredes
  4. Crear direcciones IP públicas
  5. Crear configuraciones IP para VPX1
  6. Crear configuraciones IP para VPX2
  7. Crear NIC para VPX1
  8. Crear NIC para VPX2
  9. Crear VPX1
  10. Crear VPX2
  11. Crear ALB

Cree un grupo de recursos, una cuenta de almacenamiento y un conjunto de disponibilidad.

  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

Cree un grupo de seguridad de red y agregue reglas.

  $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

Cree una red virtual y tres subredes.

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

Crear direcciones IP públicas.

  $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

Cree configuraciones IP para 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

Cree configuraciones IP para 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

Crear NIC para 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

Crear NIC para 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

Crear VPX1.

Este paso incluye los siguientes pasos secundarios:

  • Crear objeto de configuración de máquina virtual
  • Establecer credenciales, SO e imagen
  • Agregar NIC
  • Especificar el disco del sistema operativo y crear VM
$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

Crear 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

Para ver las direcciones IP privadas y públicas asignadas a las NIC, escriba los siguientes comandos:

  $nic1.IPConfig


  $nic2.IPConfig


  $nic3.IPConfig


  $nic4.IPConfig


  $nic5.IPConfig


  $nic6.IPConfig

Crear equilibrio de carga de Azure (ALB).

Este paso incluye los siguientes pasos secundarios:

  • Creación de una configuración de IP de frontend
  • Crear sonda de salud
  • Creación de un grupo de direcciones de back-end
  • Crear reglas de equilibrio de carga (HTTP y SSL)
  • Creación de ALB con configuración de IP de front-end, grupo de direcciones de back-end y regla LB
  • Asociar la configuración de IP con grupos de back-end
$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

Después de implementar correctamente el par Citrix ADC VPX, inicie sesión en cada instancia VPX para configurar HA-INC y las direcciones SNIP y VIP.

  1. Escriba el siguiente comando para agregar nodos HA.
add ha node 1 PeerNodeNSIP -inc Enabled
  1. Agregue direcciones IP privadas de NIC del lado del cliente como SNIP para VPX1 (NIC2) y VPX2 (NIC5)

    add nsip privateIPofNIC2 255.255.255.0 -type SNIP

    add nsip privateIPofNIC5 255.255.255.0 -type SNIP

3. Agregue un servidor virtual de equilibrio de carga en el nodo principal con la dirección IP de front-end (IP pública) de ALB.

  add lb vserver v1 HTTP FrontEndIPofALB 80

Recursos relacionados:

Configuración de GSLB en la implementación de HA activa en espera en Azure

La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.
Configurar una configuración de alta disponibilidad con varias direcciones IP y NIC mediante comandos de PowerShell