Equilibrio de carga con dispositivos Citrix ADC

En este artículo se ofrecen instrucciones acerca de cómo implementar un grupo de servidores de StoreFront que contengan como mínimo dos servidores de StoreFront en toda la configuración activa de equilibrio de carga. En el artículo se ofrece información detallada acerca de cómo configurar un dispositivo Citrix ADC para equilibrar la carga de solicitudes entrantes de la aplicación Citrix Workspace y Citrix Receiver para Web entre los nodos de StoreFront del grupo de servidores. En este artículo también se muestra cómo configurar un monitor de StoreFront para usarlo con un dispositivo Citrix ADC.

Los ejemplos de esta sección se han probado en el siguiente entorno:

  • Cuatro nodos de StoreFront 3.x con Windows Server 2012 R2 en un solo grupo de servidores.
  • Un equilibrador de carga de un dispositivo Citrix ADC 12.1 configurado para el equilibrio de carga con el método de menor cantidad de conexiones Least Connection y el tipo de persistencia CookieInsert.
  • Un cliente de prueba con Windows 10 con la aplicación Citrix Workspace instalada.

Requisitos de certificado de servidor para la implementación con equilibrio de carga, si quiere utilizar HTTPS

Revise la sección Planificar el uso de la puerta de enlace y el servidor de certificados.

Tenga en cuenta las siguientes opciones antes de: adquirir un certificado de una entidad de certificación comercial o emitir uno de la entidad de certificación (CA) de la empresa.

  • Opción 1: Usar un certificado comodín *.ejemplo.com en el servidor virtual de equilibrio de carga del dispositivo Citrix ADC y en los nodos del grupo de servidores de StoreFront. Esto simplifica la configuración y permite agregar más servidores de StoreFront en el futuro, sin la necesidad de reemplazar el certificado.
  • Opción 2: Usar un certificado que incluya nombres alternativos de sujeto (SAN) en el servidor virtual de equilibrio de carga del dispositivo Citrix ADC y en los nodos del grupo de servidores de StoreFront. Los nombres SAN adicionales que contenga el certificado que coincidan con todos los nombres de dominio completos (FQDN) de servidor de StoreFront son opcionales aunque se recomiendan, ya que permiten una mayor flexibilidad en la implementación de StoreFront. Incluir un nombre SAN para la detección basada en correo electrónico como, por ejemplo, discoverReceiver.ejemplo.com.

Para obtener más información sobre la configuración de detección basada en correo electrónico, consulte http://blogs.citrix.com/2013/04/01/configuring-email-based-account-discovery-for-citrix-receiver/.

Nota:

Cuando no es posible exportar la clave privada asociada al certificado. Use dos certificados independientes: uno en el servidor virtual de equilibrio de carga del dispositivo Citrix ADC y otro distinto en los nodos del grupo de servidores de StoreFront. Ambos certificados deben incluir nombres alternativos de sujeto.

Imagen localizada

Imagen localizada

Crear un certificado de servidor para el equilibrador de carga del dispositivo Citrix ADC y todos los servidores de StoreFront

Importar un certificado emitido por una entidad de certificación Windows en un dispositivo Citrix ADC

  • WinSCP es una útil herramienta externa y gratuita para trasladar archivos de una máquina con Windows al sistema de archivos de un dispositivo Citrix ADC. Copie los certificados que quiere importar en la carpeta /nsconfig/ssl/ del sistema de archivos del dispositivo Citrix ADC.
  • También puede usar las herramientas de OpenSSL en el dispositivo Citrix ADC para extraer el certificado y la clave de un archivo PKCS12/PFX y así crear dos archivos X.509 separados (.CER y .KEY) en formato PEM que Citrix ADC puede utilizar.
  1. Copie el archivo PFX en /nsconfig/ssl, en el dispositivo Citrix ADC o en VPX.
  2. Abra la interfaz de línea de comandos (CLI) del dispositivo Citrix ADC.
  3. Escriba Shell para salir de la interfaz de línea de comandos del dispositivo Citrix ADC y pasar al shell de FreeBSD.
  4. Cambie el directorio con cd /nsconfig/ssl/.
  5. Ejecute openssl pkcs12 -in <imported cert file>.pfx -nokeys -out <certfilename>.cer e introduzca la contraseña de PFX cuando se le pida.
  6. Ejecute openssl pkcs12 -in <imported cert file>.pfx -nocerts -out <keyfilename>.key y escriba la contraseña del archivo PFX cuando se le solicite y, a continuación, establezca la frase de contraseña con formato PEM de clave privada para proteger el archivo KEY.
  7. Ejecute ls -al para comprobar que los archivos CER y KEY se han creado correctamente en /nsconfig/ssl/.
  8. Escriba Exit para volver a la interfaz de línea de comandos del dispositivo Citrix ADC.

Configurar el certificado de servidor en el dispositivo Citrix ADC después de importarlo

  1. Inicie sesión en la GUI de administración de dispositivos Citrix ADC.
  2. Seleccione Traffic Management > SSL > SSL Certificates y haga clic en Install.
  3. En la ventana Install Certificate, escriba el nombre del certificado y del par de claves privadas.
    • Seleccione el archivo de certificado .cer en el sistema de archivos del dispositivo Citrix ADC, en /nsconfig/ssl/.
    • Seleccione, en la misma ubicación, el archivo .key que contiene la clave privada.

Imagen localizada

Crear registros DNS para el equilibrador de carga del grupo de servidores de StoreFront

Cree un registro DNS A y un registro PTR para el nombre de dominio completo compartido seleccionado. Los clientes de la red usarán este nombre de dominio completo para acceder al grupo de servidores de StoreFront mediante el equilibrador de carga del dispositivo Citrix ADC.

Ejemplo: storefront.example.com recurre a la dirección IP virtual (VIP) del servidor virtual del equilibrio de carga.

Caso 1: Las conexiones HTTPS 443 seguras de extremo a extremo entre el cliente y el equilibrador de carga del dispositivo Citrix ADC, y entre el equilibrador de carga y varios servidores de StoreFront 3.x

En este caso, se usa un monitor de StoreFront modificado, a través del puerto 443.

Agregar nodos de servidor de StoreFront individuales al equilibrador de carga del dispositivo Citrix ADC

  1. Inicie sesión en la GUI de administración de dispositivos Citrix ADC.
  2. Seleccione Traffic Management > Load Balancing > Servers > Add y agregue cada uno de los cuatro nodos de StoreFront cuyas cargas quiere equilibrar.

    Ejemplo = 4 nodos de StoreFront 2012R2 denominados 2012R2-A, -B, -C y -D.

  3. Use una configuración de servidor basada en IP y especifique la dirección IP del servidor de cada nodo de StoreFront.

Imagen localizada

Definir un monitor de StoreFront para consultar el estado de todos los nodos de StoreFront en el grupo de servidores

  1. Inicie sesión en la GUI de administración de Citrix ADC.
  2. Seleccione Traffic Management > Load Balancing > Monitors > Add, agregue un nuevo monitor llamado StoreFront y acepte todos los parámetros predeterminados.
  3. En el menú desplegable Type, seleccione StoreFront.
  4. Si utiliza conexiones HTTPS entre el servidor virtual de equilibrio de carga y StoreFront, debe seleccionar la opción Secure; si no las utiliza, deje esta opción sin seleccionar.
  5. En la ficha Special Parameters, escriba el nombre del almacén en Store Name.
  6. En la ficha Special Parameters, seleccione la opción Check Backend Services. Esta opción permite la supervisión de los servicios que se ejecuten en el servidor de StoreFront. Los servicios de StoreFront se supervisan por sondeo de un servicio Windows que se ejecuta en el servidor de StoreFront, el cual devuelve el estado de los siguientes servicios:
    • W3SVC (IIS)
    • Servicio WAS (Windows Process Activation Service)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    Imagen localizada

Crear un grupo de servicios HTTPS 443 que contenga todos los servidores de StoreFront

  1. En el grupo de servicios, seleccione la opción Members en el lado derecho y agregue todos los nodos de servidor de StoreFront que ha definido previamente en el apartado de servidores.

  2. Configure el puerto TLS y adjudique a cada nodo un ID de servidor único a media que los agrega.

    Imagen localizada

  3. En la ficha Monitors, seleccione el monitor de StoreFront que ha creado anteriormente.

    Imagen localizada

  4. En la ficha Certificates, enlace el certificado de servidor que ha importado anteriormente.

  5. Enlace el certificado de CA usado para firmar el certificado de servidor que ha importado antes, así como cualquier otra entidad de certificación (CA) que pueda formar parte de la cadena de confianza de la infraestructura de clave pública (PKI).

    Imagen localizada

Crear un servidor virtual de equilibrio de carga para el tráfico del usuario

  1. Inicie sesión en la GUI de administración de dispositivos Citrix ADC.

  2. Seleccione Traffic Management > Load Balancing > Virtual Servers > Add para crear un nuevo servidor virtual.

  3. Seleccione un método de equilibrio de carga para el servidor virtual. Las opciones más comunes para el equilibrio de carga de StoreFront son round robin o least connection.

    Imagen localizada

  4. Vincule el grupo de servicios que ha creado anteriormente al servidor virtual de equilibrio de carga.

  5. Enlace el mismo certificado de servidor y de CA (que ya ha enlazado al grupo de servicio) al servidor virtual de equilibrio de carga.

  6. Desde el menú del servidor virtual de equilibrio de carga, seleccione la persistencia (Persistence) en el lado derecho y establezca el método de persistencia en COOKIEINSERT.

  7. Dé un nombre a la cookie. Por ejemplo, NSC_SFPersistence, ya que esto hace que sea fácil de identificar en las trazas de Fiddler durante la depuración.

  8. Establezca la persistencia de reserva en NONE.

Imagen localizada

Caso 2: Terminación HTTPS. Comunicación HTTPS 443 entre el cliente y el equilibrador de carga de Citrix ADC, y conexiones HTTP 80 entre el equilibrador de carga y los servidores de StoreFront 3.x detrás de él

En este caso, se usa el monitor predeterminado de StoreFront a través del puerto 8000.

Agregar servidores individuales de StoreFront al equilibrador de carga de Citrix ADC

  1. Inicie sesión en la GUI de administración de Citrix ADC.
  2. Seleccione Traffic Management > Load Balancing > Servers > Add y agregue cada uno de los cuatro nodos de StoreFront cuyas cargas quiere equilibrar. Ejemplo = 4 servidores de StoreFront 2012R2 denominados 2012R2-A, -B, -C y -D. 3.
  3. Use una configuración de servidor basada en IP y especifique la dirección IP del servidor de cada servidor de StoreFront.

Definir un monitor de StoreFront HTTP 8000 para consultar el estado de todos los servidores de StoreFront en el grupo de servidores

  1. Inicie sesión en la GUI de administración de Citrix ADC.
  2. Seleccione Traffic Management > Monitors > Add y agregue un nuevo monitor llamado StoreFront.
  3. Agregue un nombre para el nuevo monitor y acepte los valores predeterminados.
  4. En la lista Type, seleccione StoreFront.
  5. En la ficha Special Parameters, escriba el nombre del almacén en Store Name.
  6. Escriba 8000 en Destination Port. Esto coincide con la instancia de monitor predeterminada que se crea en cada servidor de StoreFront.
  7. En la ficha Special Parameters, seleccione la opción Check Backend Services. Esta opción permite la supervisión de los servicios que se ejecuten en el servidor de StoreFront. Los servicios de StoreFront se supervisan por sondeo de un servicio Windows que se ejecuta en el servidor de StoreFront, el cual devuelve el estado de todos los servicios de StoreFront en ejecución.

Crear un grupo de servicios HTTP 80 que contenga todos los servidores de StoreFront

  1. En el grupo de servicios, seleccione la opción Members en el lado derecho y agregue todos los nodos de servidor de StoreFront que ha definido previamente en el apartado de servidores.
  2. Establezca el puerto HTTP en 80 y adjudique a cada servidor un ID de servidor único a medida que lo agrega.
  3. En la ficha Monitors, seleccione el monitor de StoreFront que ha creado anteriormente.

Crear un servidor virtual de equilibrio de carga de terminación HTTPS para el tráfico de usuarios

  1. Seleccione Traffic Management > Load Balancing > Virtual Servers > Add para crear un nuevo servidor virtual.
  2. Seleccione un método de equilibrio de carga para el servidor virtual. Las opciones más comunes para el equilibrio de carga de StoreFront son round robin o least connection.

  3. Vincule el grupo de servicios que ha creado anteriormente al servidor virtual de equilibrio de carga.

  4. Enlace el mismo certificado de servidor y de CA (que ya ha enlazado al grupo de servicio) al servidor virtual de equilibrio de carga.

    Nota:

    Si no se permite que el cliente almacene la cookie HTTP, las solicitudes subsiguientes no contienen la cookie HTTP y no se usa la persistencia.

  5. Desde el menú del servidor virtual de equilibrio de carga, seleccione la persistencia (Persistence) en el lado derecho y establezca el método de persistencia en COOKIEINSERT.

  6. Dé un nombre a la cookie. Por ejemplo, NSC_SFPersistence, ya que esto hace que sea fácil de identificar en las trazas de Fiddler durante la depuración.
  7. Establezca la persistencia de reserva en NONE.

Crear un servidor virtual de equilibrio de carga para la sincronización de suscripciones entre grupos de servidores

Entre los aspectos a tener en cuanta antes de crear un servidor virtual de equilibrio de carga, se incluyen los siguientes:

  • Opción 1: Crear un servidor virtual único: para equilibrar la carga solamente del tráfico de usuarios. Esto es todo lo que se necesita si se realizan únicamente inicios ICA de aplicaciones y escritorios publicados (todo lo que se precisa obligatoriamente y en condiciones normales).
  • Opción 2: Crear un par de servidores virtuales: uno para equilibrar la carga del tráfico de usuarios para realizar inicios ICA de aplicaciones y escritorios publicados, y otro para equilibrar la carga de las operaciones de sincronización de los datos de suscripción (opción necesaria solo cuando se propaguen datos de suscripción entre dos o más grupos de servidores de StoreFront con carga equilibrada que formen parte de una implementación a gran escala que contenga múltiples sitios).

Si una implementación a gran escala de múltiples sitios consta de dos o más grupos de servidores de StoreFront que se encuentran en zonas geográficas distintas, puede replicar los datos de suscripción entre ellos mediante una estrategia de extracción que siga una programación periódica. La replicación de datos de suscripción de StoreFront utiliza el puerto TCP 808, por lo que utilizar un servidor virtual existente de equilibrio de carga en el puerto HTTP 80 o HTTPS 443 da error. Para ofrecer una alta disponibilidad en este servicio, cree un segundo servidor virtual en cada dispositivo Citrix ADC de la implementación. De esta manera, equilibrará la carga en el puerto TCP 808 proveniente de cada grupo de servidores de StoreFront. Cuando configure la programación de la replicación, especifique la dirección de un grupo de servidores que coincida con la dirección IP del servidor virtual de sincronización de suscripciones. Compruebe que la dirección del grupo de servidores es el nombre de dominio completo (FQDN) del equilibrador de carga para el grupo de servidores en esa ubicación.

Configurar un grupo de servicios para la sincronización de suscripciones

  1. Inicie sesión en la GUI de administración de dispositivos Citrix ADC.
  2. Seleccione Traffic Management > Service Groups > Add y agregue un nuevo grupo de servicios.
  3. Cambie el protocolo a TCP.
  4. En el grupo de servicios, seleccione la opción Members en el lado derecho y agregue todos los nodos de servidor de StoreFront que ha definido previamente en el apartado de servidores.
  5. En la ficha Monitors, seleccione el monitor de TCP.

Imagen localizada

Crear un servidor virtual de equilibrio de carga para la sincronización de suscripciones entre grupos de servidores

  1. Inicie sesión en la GUI de administración de dispositivos Citrix ADC.
  2. Seleccione Traffic Management > Service Groups > Add y agregue un nuevo grupo de servicios.
  3. Establezca el método de equilibrio de carga en round robin.
  4. Cambie el protocolo a TCP.
  5. Escriba 808 (no 443) como número de puerto.

Imagen localizada

Pertenencia al grupo CitrixSubscriptionsSyncUsers

Para que el servidor de StoreFront A en la Ubicación A solicite y extraiga datos de suscripción del servidor B en otra ubicación, el servidor A debe ser miembro del grupo de seguridad local CitrixSubscriptionsSyncUsers del servidor B. El grupo local CitrixSubscriptionsSyncUsers contiene una lista de control de acceso de todos los servidores de StoreFront remotos autorizados a extraer datos de suscripción de un servidor determinado. Para una sincronización bidireccional de suscripciones (es decir, que el servidor B extraiga datos de suscripción del servidor A), el servidor B también debe ser miembro del grupo de seguridad CitrixSubscriptionsSyncUsers en el servidor A.

Imagen localizada

Caso 1: Configurar el grupo de servidores de StoreFront mediante HTTPS entre Citrix ADC y StoreFront

  1. Importe en cada nodo de StoreFront existente del grupo de servidores el mismo certificado y la misma clave privada que se implementaron en el servidor virtual de equilibrio de carga del dispositivo Citrix ADC.

  2. Cree un enlace HTTPS en IIS en cada nodo de StoreFront y, a continuación, vincúlelo al certificado importado anteriormente.

    Imagen localizada

  3. Si utiliza HTTPS entre el equilibrador de carga de Citrix ADC y StoreFront, debe usar un certificado que contenga el FQDN de equilibrio de carga como un nombre común (CN) o como un nombre alternativo de sujeto (SAN).

    Consulte Crear un certificado de servidor para el equilibrador de carga del dispositivo Citrix ADC y los servidores de StoreFront.

Caso 2: Configurar el grupo de servidores de StoreFront mediante HTTP entre Citrix ADC y StoreFront

  1. Quite el enlace HTTPS en IIS de cada nodo de StoreFront si ya existe.
  2. El enlace HTTP debe estar presente en IIS y configurado para usar el puerto 80.
  3. Configure los parámetros de bucle invertido en Receiver para Web como OnUsingHTTP y puerto 80. Este paso es esencial para garantizar que la detección de clientes entre la aplicación Citrix Workspace nativa y Receiver para Web se realice correctamente.

    Parámetros avanzados.

Pasos comunes a los casos 1 y 2

  1. Instale StoreFront en cada nodo del grupo de servidores.

  2. Durante la instalación de StoreFront, establezca la URL base del host en el nodo principal que será el nombre de dominio completo (FQDN) compartido que utilizarán todos los miembros del grupo de servidores. Esto debe ser siempre https://storefrontlb.domain.com tanto para el caso 1 como para el caso 2, y debe coincidir con el FQDN del servidor virtual de equilibrio de carga de Citrix ADC.

    Consulte la Crear un certificado de servidor para el equilibrador de carga del dispositivo Citrix ADC y los servidores de StoreFront.

  3. Una vez que haya completado la configuración inicial de StoreFront, incorpore cada nodo (uno a uno) al grupo de servidores mediante el nodo principal.

  4. Seleccione Server Group > Add Server > Copy the Authorization Code en el servidor que se une al grupo.

    Imagen localizada

  5. Propague la configuración desde el nodo principal a todos los demás nodos del grupo de servidores.

  6. Pruebe el grupo de servidores con carga equilibrada mediante un cliente que pueda contactar y resolver el nombre de dominio completo (FQDN) compartido del equilibrador de carga.

Citrix Service Monitor

Para habilitar la supervisión externa del estado de ejecución de los servicios de Windows en los que se basa StoreFront para el funcionamiento correcto, utilice el servicio Windows Citrix Service Monitor. Este servicio no tiene otras dependencias de servicio, y puede supervisar y notificar errores de otros servicios importantes de StoreFront. El monitor permite que el estado relativo de las implementaciones de servidores de StoreFront se determine de forma externa con la ayuda de otros componentes de Citrix como, por ejemplo, un dispositivo Citrix ADC. Un software de terceros puede consumir la respuesta XML del monitor de StoreFront para supervisar el estado de los servicios esenciales de StoreFront.

Una vez implementado StoreFront, se crea un monitor predeterminado que usa HTTP y el puerto 8000.

Nota:

Solo puede existir una instancia de monitor en cada implementación de StoreFront.

Para realizar cambios en el monitor predeterminado existente (como cambiar el protocolo y el puerto a HTTPS 443), utilice los cmdlets de PowerShell para ver o cambiar la configuración de la URL del servicio de monitor de StoreFront.

Quite el monitor de servicios (Service Monitor) predeterminado y reemplácelo por uno que use HTTPS y el puerto 443

  1. Abra el entorno Integrated Scripting Environment (ISE) de PowerShell en el servidor de StoreFront principal y ejecute los comandos siguientes para cambiar el monitor predeterminado a HTTPS 443.

    $ServiceUrl = "https://localhost:443/StorefrontMonitor"
    Set-STFServiceMonitor -ServiceUrl $ServiceUrl
    Get-STFServiceMonitor
    
  2. Una vez completada la operación, propague los cambios a los demás servidores del grupo de servidores de StoreFront.

  3. Para realizar una prueba rápida en el nuevo monitor, introduzca la URL siguiente en el explorador web presente en el servidor de StoreFront, o en cualquier otra máquina con acceso de red al servidor de StoreFront. El explorador debería devolver un resumen XML del estado de cada servicio de StoreFront.

    https://<loadbalancingFQDN>:443/StoreFrontMonitor/GetSFServicesStatus

    Imagen localizada

Citrix Gateway y servidores virtuales de equilibrio de carga en el mismo dispositivo Citrix ADC

Si ha configurado el servidor virtual de Citrix Gateway y el servidor virtual de equilibrio de carga en el mismo dispositivo Citrix ADC, los usuarios del dominio interno pueden tener problemas al intentar acceder directamente a la URL base del host StoreFront con carga equilibrada en lugar de pasar por el servidor virtual de Citrix Gateway.

En este caso, StoreFront asume que el usuario final ya se ha autenticado en el dispositivo Citrix Gateway, ya que StoreFront correlaciona la dirección IP de origen del usuario entrante con la dirección IP de subred (SNIP) de Citrix Gateway. Por eso, StoreFront intenta usar el protocolo AGBasic para realizar la autenticación silenciosa de Citrix Gateway, en lugar de solicitar realmente al usuario que inicie sesión con sus credenciales de dominio. Para evitar este problema, omita la dirección SNIP como se muestra más abajo o introduzca una dirección IP virtual, de modo que se use la autenticación con nombre de usuario y contraseña en lugar del protocolo de inicio de sesión AGBasic.

Configurar un dispositivo Citrix Gateway en el grupo de servidores de StoreFront

Configuración general de Gateway.

Introduzca la dirección VIP de Citrix Gateway VIP en el campo de dirección IP del servidor virtual. NO utilice la dirección SNIP para Citrix Gateway si el servidor virtual de equilibrio de carga reside en el mismo dispositivo Citrix ADC.

Configuración de la autenticación de Gateway.

Opciones de bucle invertido al equilibrar la carga de un grupo de servidores de StoreFront mediante un dispositivo Citrix ADC

Puede definir opciones de bucle con PowerShell.

Ejemplo de archivo web.config de Receiver para Web

<communication attempts="2" timeout="00:01:00" loopback="On" loopbackPortUsingHttp="80">

Ejemplo de comando de PowerShell

& "c:\program files\Citrix\receiver storefront\scripts\ImportModules.ps1"
Set-DSLoopback -SiteId 1 -VirtualPath "/Citrix/StoreWeb" -Loopback "OnUsingHttp" -LoopbackPortUsingHttp 81

El parámetro -Loopback puede tomar tres valores posibles:

Valor Contexto
On: Cambia el host de la URL a 127.0.0.1. El esquema y el puerto (si se especificó) no se modifican. No se puede utilizar si se utiliza el equilibrador de carga de terminación de TLS.
OnUsingHttp: Cambia el host a 127.0.0.1, el esquema a HTTP y modifica el valor del puerto configurado en el atributo loopbackPortUsingHttp. Úselo solo cuando el equilibrador de carga tiene terminación TLS. La comunicación entre el equilibrador de carga y los servidores de StoreFront se establece por HTTP. Puede configurar explícitamente el puerto HTTP mediante el atributo -loopbackPortUsingHttp.
Off: La URL de la solicitud no se modifica. Úsela para la solución de problemas. Las herramientas como Fiddler no pueden capturar el tráfico entre Receiver para Web y servicios de StoreFront si el bucle invertido está establecido en On.