Product Documentation

Equilibrio de carga con NetScaler

Jun 29, 2017

Configuración de un grupo de servidores StoreFront y del equilibrio de carga de NetScaler

Planificación de la implementación de StoreFront con equilibrio de carga

En este artículo se ofrecen instrucciones acerca de cómo implementar un grupo de servidores StoreFront que contengan como mínimo dos servidores 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 NetScaler para equilibrar la carga de solicitudes entrantes de Citrix Receiver o Citrix Receiver para Web entre todos los nodos de StoreFront del grupo de servidores. También ofrece información sobre cómo configurar el nuevo monitor de StoreFront para usarlo con un dispositivo NetScaler o un equilibrador de carga externo. 

Para ver ejemplos de configuración de equilibrio de carga, consulte los apartados “Caso 1” y “Caso 2” que se ofrecen a continuación.

Probados con el siguiente entorno

  • Cuatro nodos de StoreFront 3.0 de Windows Server 2012 R2 en un solo grupo de servidores.
  • Un equilibrador de carga NetScaler 10.5 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 Windows 8.1 con Fiddler 4.0 y Citrix Receiver para Windows 4.3 instalados.

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

Consulte la sección Planificación de 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 de NetScaler y en los nodos del grupo de servidores StoreFront.Esto simplifica la configuración y permite agregar más servidores StoreFront en el futuro, sin la necesidad de reemplazar el certificado.
  • Opción 2: Usar un certificado con nombres alternativos de sujeto (SAN) en el servidor virtual de equilibrio de carga de NetScaler y en los nodos del grupo de servidores StoreFront.Los nombres SAN adicionales que contenga el certificado que coincidan con todos los nombres de dominio completos (FQDN) de servidor StoreFront son opcionales aunque se recomiendan, ya que permiten una mayor flexibilidad en la implementación de StoreFront.Incluya un nombre SAN para la detección basada en correo electrónico como, por ejemplo, discoverReceiver.ejemplo.com.

Para obtener información sobre la configuración de la 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 de NetScaler y otro distinto en los nodos del grupo de servidores StoreFront. Ambos certificados deben incluir nombres alternativos de sujeto.

localized image
localized image

Creación de un certificado de servidor para el equilibrador de carga de NetScaler y todos los servidores StoreFront

Cómo importar un certificado emitido por una entidad de certificación de Windows a un dispositivo NetScaler mediante OpenSSL

  • WinSCP es una herramienta externa útil y gratuita para trasladar archivos desde una máquina con Windows a un sistema de archivos de NetScaler Gateway.Copie los certificados que quiere importar a la carpeta /nsconfig/ssl/ del sistema de archivos de NetScaler Gateway. 
  • Puede usar las herramientas de OpenSSL en NetScaler Gateway para extraer el certificado y la clave de un archivo PKCS12/PFX y, así, crear dos archivos X.509 CER y KEY independientes en formato PEM que puede utilizar NetScaler Gateway.
  1. Copie el archivo PFX a /nsconfig/ssl, en el dispositivo NetScaler Gateway o en VPX.
  2. Abra la interfaz de línea de comandos (CLI) de NetScaler.
  3. Escriba Shell para salir de la interfaz de línea de comandos de NetScaler y pasar al shell de FreeBSD.
  4. Para cambiar de directorio, use cd /nsconfig/ssl.
  5. Ejecute openssl pkcs12 -in .pfx -nokeys -out .cer y escriba la contraseña del archivo PFX cuando se le solicite.
  6. Ejecute openssl pkcs12 -in .pfx -nocerts -out .key y escriba la contraseña del archivo PFX cuando se le solicite. A continuación, establezca la frase de contraseña para la clave privada PEM 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 de NetScaler.

Configuración del certificado de servidor en NetScaler después de importarlo

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  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 de NetScaler, en /nsconfig/ssl/.
    • Seleccione, en la misma ubicación, el archivo .key que contiene la clave privada.
localized image

Creación de registros DNS para el equilibrador de carga del grupo de servidores 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 StoreFront mediante el equilibrador de carga de NetScaler.

Ejemplo: storefront.ejemplo.com representa la dirección IP virtual (VIP) del servidor virtual de equilibrio de carga.

Caso 1: Una conexión segura de extremo a extremo HTPPS 443 entre el cliente y el equilibrador de carga de NetScaler y también entre el equilibrador de carga y dos o más servidores StoreFront 3.0. 

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

Cómo agregar nodos de servidor StoreFront individuales al equilibrador de carga de NetScaler

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  2. Seleccione Traffic Management > Load Balancing > Servers > Add y agregue cada uno de los cuatro nodos de StoreFront cuyas cargas quiere equilibrar.

    Por ejemplo = 4 x 2012R2 nodos de StoreFront llamados 2012R2 A - D

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

Cómo definir un monitor de StoreFront para comprobar el estado de todos los nodos de StoreFront en el grupo de servidores

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  2. Seleccione Traffic Management > Load Balancing > Monitors > Add y agregue un nuevo monitor llamado StoreFront. A continuación, acepte todos los valores predeterminados.
  3. En el menú desplegable Type, seleccione StoreFront.
  4. Compruebe que la casilla Secure está marcada si se utilizan conexiones SSL entre el servidor virtual de equilibrio de carga y StoreFront; de lo contrario, deje esta opción desmarcada.
  5. Especifique el nombre de la tienda en la ficha de parámetros especiales.
  6. Marque la casilla de verificación Check Backend Services en la ficha de parámetros especiales.Esta opción permite supervisar los servicios que se ejecuten en el servidor StoreFront.Los servicios de StoreFront se supervisan por sondeo de un servicio Windows que se ejecuta en el servidor StoreFront, el cual devuelve el estado de todos los servicios de StoreFront en ejecución.
localized image

Cómo crear un grupo de servicios HTTPS 443 que contenga todos los servidores StoreFront

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

2. Configure el puerto SSL y adjudique a cada nodo un ID de servidor único al agregarlos.

localized image

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

localized image

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).

localized image

Cómo crear un servidor virtual de equilibrio de carga para el tráfico del usuario

1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.

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.

localized image

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 facilita identificar en Fiddler los rastros durante la depuración.

8. Establezca la persistencia de respaldo en None.

localized image

Caso 2: Terminación HTTPS; comunicación HTTPS 443 entre el cliente y el equilibrador de carga de NetScaler, y conexiones HTTP 80 entre el equilibrador de carga y los servidores StoreFront 3.0 detrás de él.  

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

Cómo agregar uno o varios servidores StoreFront al equilibrador de carga de NetScaler

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  2. Seleccione Traffic Management > Load Balancing > Servers > Add y agregue cada uno de los cuatro servidores de StoreFront cuyas cargas quiere equilibrar.

    Por ejemplo = 4 x 2012R2 servidores StoreFront llamados 2012R2 A - D

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

Cómo definir un monitor de StoreFront HTTP 8000 para comprobar el estado de todos los servidores StoreFront en el grupo de servidores

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  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. Seleccione StoreFront desde el menú desplegable Type.
  5. Especifique el nombre de la tienda en la ficha de parámetros especiales.
  6. Escriba 8000 en el puerto de destino, ya que coincide con la instancia de monitor predeterminada que se crea en cada servidor StoreFront.
  7. Marque la casilla Check Backend Services en la ficha de parámetros especiales.Esta opción permite supervisar los servicios que se ejecuten en el servidor StoreFront.Los servicios de StoreFront se supervisan por sondeo de un servicio Windows que se ejecuta en el servidor StoreFront, el cual devuelve el estado de todos los servicios de StoreFront en ejecución.

Cómo crear un grupo de servicios HTTP 80 que contenga todos los servidores StoreFront

  1. En el grupo de servicios, seleccione la opción de miembros en el lado derecho y agregue todos los nodos de servidor 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 al agregarlos.
  3. En la ficha Monitors, seleccione el monitor de StoreFront que ha creado anteriormente.

Creación de 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 usará la persistencia.

  5. Desde el menú del servidor virtual de equilibrio de carga, seleccione Persistence y establezca el método de persistencia en CookieInsert.
  6. Nombre de la cookie. Por ejemplo, NSC_SFPersistence, ya que esto facilita identificar en Fiddler los rastros durante la depuración.
  7. Establezca la persistencia de respaldo en None.
localized image

Creación de 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 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 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 una alta disponibilidad en este servicio, cree un segundo servidor virtual en cada dispositivo NetScaler de la implementación. De esta manera, equilibrará la carga en el puerto TCP 808 proveniente de cada grupo de servidores 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. 

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

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  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 StoreFront que ha definido previamente en el apartado de servidores.
  5. En la ficha Monitors, seleccione el monitor de TCP.
localized image

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

  1. Inicie sesión en la interfaz gráfica de usuario de administración de NetScaler.
  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.
localized image

Pertenencia al grupo CitrixSubscriptionsSyncUsers

Para que el servidor 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 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.

localized image

Configuración del grupo de servidores StoreFront para el equilibrio de carga

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 NetScaler de equilibrio de carga.

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

localized image

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

4. 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.Debe usar un certificado que contenga el FQDN de equilibrio de carga como un nombre común (CN) o como nombre alternativo de sujeto (SAN).

Consulte Creación de un certificado SSL para el equilibrador de carga de NetScaler y los servidores StoreFront.

5. Cuando complete la configuración inicial de StoreFront, incorpore cada nodo (uno tras otro) al grupo de servidores mediante el nodo principal. 

6. Seleccione Grupo de servidores > Agregar servidor > Copie el código de autorización en el servidor que se une al grupo.

localized image

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

8. 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 Windows en los que se basa el funcionamiento correcto de StoreFront, use el servicio Windows de 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 StoreFront se determine de forma externa con la ayuda de otros componentes de Citrix como, por ejemplo, NetScaler.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 una implementación de StoreFront.

Para realizar cambios en el monitor predeterminado existente (como cambiar el protocolo y el puerto a HTTPS 443), utilice los siguientes tres 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 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 StoreFront.

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

https://:443/StoreFrontMonitor/GetSFServicesStatus

localized image

NetScaler Gateway y servidores virtuales de equilibrio de carga en el mismo dispositivo NetScaler

Si ha configurado el servidor virtual de NetScaler Gateway y el servidor virtual de equilibrio de carga en el mismo dispositivo NetScaler, 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 NetScaler Gateway. 

En este caso, StoreFront asume que el usuario final ya se ha autenticado en NetScaler Gateway, ya que StoreFront correlaciona la dirección IP de origen del usuario entrante con la dirección IP de subred (SNIP) de NetScaler Gateway. Por eso, StoreFront intenta usar el protocolo AGBasic para realizar la autenticación silenciosa de NetScaler 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, de modo que se use autenticación con nombre de usuario y contraseña en lugar de AGBasic.

Configuración de un NetScaler Gateway en el grupo de servidores StoreFront

localized image

Opciones de bucle invertido al equilibrar la carga de un grupo de servidores StoreFront mediante NetScaler

En versiones anteriores de StoreFront (como 2.6 o versiones anteriores), Citrix recomendaba modificar manualmente el archivo de hosts en cada servidor StoreFront para asignar el nombre de dominio completo (FQDN) del equilibrador de carga a la dirección de bucle o la dirección IP del servidor StoreFront concreto.Esto garantiza que Receiver para Web siempre se comunique con los servicios de StoreFront en el mismo servidor en una implementación con equilibrio de carga.Esto es necesario porque se crea una sesión HTTP durante el proceso de inicio de sesión explícito entre Receiver para Web y el servicio de autenticación, y Receiver para Web se comunica con los servicios de StoreFront usando el nombre FQDN base.Si este nombre se resolviera en el equilibrador de carga, el equilibrador podría enviar el tráfico a otro servidor StoreFront del grupo, lo que puede provocar un error de autenticación.Esto no circunvala el equilibrador de carga excepto cuando Receiver para Web intenta conectar con el servicio de StoreFront que reside en su mismo servidor. 

Puede definir opciones de bucle usando PowerShell.Si habilita el bucle invertido, ya no tendrá que crear entradas del archivo de host en cada servidor StoreFront del grupo de servidores. 

Ejemplo de archivo web.config de Receiver para Web:

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

En:

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 usar si se utiliza un equilibrador de carga con terminación SSL.

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 SSL.La comunicación entre el equilibrador de carga y los servidores 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".