Cómo funciona el equilibrio de carga

En una configuración básica de equilibrio de carga, los clientes envían sus solicitudes a la dirección IP de un servidor virtual configurado en el dispositivo Citrix ADC. El servidor virtual los distribuye a los servidores de aplicaciones con equilibrio de carga según un patrón preestablecido, denominado algoritmo de equilibrio de carga. En algunos casos, es posible que desee asignar al servidor virtual de equilibrio de carga una dirección comodín en lugar de una dirección IP específica. Para obtener instrucciones acerca de cómo especificar un puerto HTTP global en el dispositivo, consulte Puertos HTTP globales.

Conceptos básicos del equilibrio de carga

Una configuración de equilibrio de carga incluye un servidor virtual de equilibrio de carga y varios servidores de aplicaciones con equilibrio de carga. El servidor virtual recibe solicitudes de cliente entrantes, utiliza el algoritmo de equilibrio de carga para seleccionar un servidor de aplicaciones y reenvía las solicitudes al servidor de aplicaciones seleccionado. El siguiente dibujo conceptual ilustra una implementación típica de equilibrio de carga. Otra variación implica asignar un puerto HTTP global.

Imagen 1. Arquitectura de equilibrio de carga

lb-arquitectura

El servidor virtual de equilibrio de carga puede utilizar cualquiera de varios algoritmos (o métodos) para determinar cómo distribuir la carga entre los servidores con equilibrio de carga que administra. El método de equilibrio de carga predeterminado es el método de menor conexión, en el que el dispositivo Citrix ADC reenvía cada conexión de cliente entrante al servidor de aplicaciones con equilibrio de carga que tenga actualmente menos conexiones de usuario activas.

Las entidades que configura en una configuración típica de equilibrio de carga de Citrix ADC son:

  • Servidor virtual de equilibrio de carga. La combinación de dirección IP, puerto y protocolo a la que un cliente envía solicitudes de conexión para un sitio web o aplicación con equilibrio de carga determinado. Si la aplicación es accesible desde Internet, la dirección IP del servidor virtual (VIP) es una dirección IP pública. Si solo se puede acceder a la aplicación desde la red de área local (LAN) o la red de área amplia (WAN), el VIP suele ser una dirección IP privada (ICANN no enrutable).
  • Servicio. La combinación de direcciones IP, puerto y protocolo utilizada para enrutar las solicitudes a un servidor de aplicaciones con equilibrio de carga específico. Un servicio puede ser una representación lógica del propio servidor de aplicaciones o de una aplicación que se ejecuta en un servidor que hospeda varias aplicaciones. Después de crear un servicio, lo vincula a un servidor virtual de equilibrio de carga.
  • Objeto Server. Entidad virtual que permite asignar un nombre a un servidor físico en lugar de identificarlo por su dirección IP. Si crea un objeto de servidor, puede especificar su nombre en lugar de la dirección IP del servidor al crear un servicio. De lo contrario, debe especificar la dirección IP del servidor al crear un servicio y la dirección IP se convierte en el nombre del servidor.
  • Monitor. Entidad del dispositivo Citrix ADC que realiza un seguimiento de un servicio y garantiza que funciona correctamente. El monitor sondea periódicamente (o realiza una comprobación de estado) cada servicio al que se asigna. Si el servicio no responde dentro del tiempo especificado por el tiempo de espera y se produce un error en un número especificado de comprobaciones de estado, ese servicio se marca como DOWN. A continuación, el dispositivo Citrix ADC omite ese servicio al realizar el equilibrio de carga, hasta que se corrigen los problemas que causaron que el servicio dejara de responder.

El servidor virtual, los servicios y los servidores de aplicaciones con equilibrio de carga en una configuración de equilibrio de carga pueden utilizar direcciones IP de Protocolo de Internet versión 4 (IPv4) o Protocolo de Internet versión 6 (IPv6). Puede mezclar direcciones IPv4 e IPv6 en una configuración de equilibrio de carga única.

Para ver variaciones en la configuración de equilibrio de carga, consulte los siguientes casos de uso:

Descripción de la topología

En una configuración de equilibrio de carga, el servidor de equilibrio de carga se encuentra lógicamente entre el cliente y la granja de servidores, y administra el flujo de tráfico a los servidores de la granja de servidores. En el dispositivo Citrix ADC, los servidores de aplicaciones están representados por entidades virtuales denominadas servicios. El siguiente diagrama muestra la topología de una configuración básica de equilibrio de carga.

Imagen 2. Topología básica de equilibrio de carga

Imagen localizada

En el diagrama, el equilibrio de carga se utiliza para administrar el flujo de tráfico a los servidores. El servidor virtual selecciona el servicio y lo asigna para atender las solicitudes del cliente. Considere un caso en el que los servicios Service-HTTP-1 y Service-HTTP-2 se crean y vinculan al servidor virtual denominado VServer-LB-1. VServer-LB-1 reenvía la solicitud del cliente a Service-HTTP-1 o Servicio-HTTP-2. El dispositivo Citrix ADC utiliza el método de equilibrio de carga de conexión mínimo para seleccionar el servicio para cada solicitud. En la tabla siguiente se enumeran los nombres y valores de las entidades básicas que se deben configurar en el dispositivo.

Entidad Nombre Dirección IP Puerto Protocolo
Servidor virtual Vserver-LB-1 10.102.29.60 80 HTTP
Servicios Service-HTTP-1 10.102.29.5 80 HTTP
  Service-HTTP-2 10.102.29.6 80 HTTP
Monitores Predeterminado Ninguno Ninguno Ninguno

El siguiente diagrama muestra los valores de muestra de equilibrio de carga y los parámetros obligatorios que se describen en la tabla anterior.

Imagen 3. Modelo de entidad de equilibrio de carga

lb-entidad-modelo

Uso de comodines en lugar de direcciones IP y puertos

En algunos casos, es posible que necesite utilizar un comodín para la dirección IP o el puerto de un servidor virtual o para el puerto de un servicio. Los siguientes casos pueden requerir el uso de un comodín:

  • Si el dispositivo Citrix ADC está configurado como un paso transparente, el cual debe aceptar todo el tráfico que se le envíe independientemente de la IP o el puerto al que se envíe.
  • Si uno o más servicios escuchan en puertos que no son bien conocidos.
  • Si uno o más servicios, con el tiempo, cambie los puertos en los que escuchan.
  • Si alcanza el límite para el número de direcciones IP y puertos que puede configurar en un único dispositivo Citrix ADC.
  • Si desea crear servidores virtuales que escuchen todo el tráfico en una LAN virtual específica.

Cuando un servidor virtual o servicio configurado como comodín recibe tráfico, el dispositivo Citrix ADC determina la dirección IP real o el puerto y crea nuevos registros para el servicio y el servidor de aplicaciones con equilibrio de carga asociado. Estos registros creados dinámicamente se denominan registros de servidor y servicio aprendidos dinámicamente.

Por ejemplo, una configuración de equilibrio de carga del firewall puede utilizar comodines tanto para la dirección IP como para el puerto. Si vincula un servicio TCP comodín a este tipo de servidor virtual de equilibrio de carga, el servidor virtual recibe y procesa todo el tráfico TCP que no coincide con ningún otro servicio o servidor virtual.

En la siguiente tabla se describen algunos de los diferentes tipos de configuraciones de comodín y cuándo se debe utilizar cada una.

IP Puerto Protocolo Descripción
* * TCP Servidor virtual de comodín general que acepta el tráfico enviado a cualquier dirección IP y puerto del dispositivo Citrix ADC. Cuando se utiliza un servidor virtual comodín, el dispositivo aprende dinámicamente la IP y el puerto de cada servicio y crea los registros necesarios a medida que procesa el tráfico.
* * TCP Un servidor virtual de equilibrio de carga de firewall. Puede enlazar servicios de firewall a este servidor virtual y el dispositivo Citrix ADC pasa el tráfico a través del firewall al destino.
Dirección IP * TCP, UDP y CUALQUIER Servidor virtual que acepta todo el tráfico que se envía a la dirección IP especificada, independientemente del puerto. Debe vincular explícitamente a este tipo de servidor virtual los servicios a los que redirigirá el tráfico. No va a aprender dinámicamente.
      Nota: No se configuran servicios o servidores virtuales para un puerto HTTP global. En este caso, configure un puerto específico como un puerto HTTP global (por ejemplo, configure ns param -HttpPort 80). A continuación, el dispositivo acepta todo el tráfico que coincide con el número de puerto y lo procesa como tráfico HTTP. El dispositivo aprende dinámicamente y crea servicios para este tráfico.
* port SSL, SSL_TCP Servidor virtual que acepta todo el tráfico enviado a cualquier dirección IP en un puerto específico. Se utiliza para la descarga de SSL transparente global. Todo el procesamiento SSL, HTTP y TCP que normalmente se realiza para un servicio del mismo tipo de protocolo se aplica al tráfico que se dirige a este puerto específico. El dispositivo utiliza el puerto para aprender dinámicamente la IP del servicio que debe utilizar. Si no se especifica —cleartext, el dispositivo Citrix ADC utiliza SSL de extremo a extremo.
* port No corresponde Todos los demás servidores virtuales que pueden aceptar tráfico al puerto. No se vinculan servicios a estos servidores virtuales; el dispositivo Citrix ADC los aprende dinámicamente.

Nota: Si ha configurado su dispositivo Citrix ADC como una transferencia transparente que utiliza puertos globales (comodín), puede que desee activar el modo Edge. Para obtener más información, consulte “Configuración del modo de borde”.

El dispositivo Citrix ADC intenta localizar servidores y servicios virtuales al intentar primero una coincidencia exacta. Si no se encuentra ninguno, continúa buscando una coincidencia basada en comodines, en el siguiente orden:

  1. Dirección IP específica y número de puerto específico
  2. Dirección IP específica y puerto * (comodín)
    • (comodín) dirección IP y un puerto específico
    • (comodín) dirección IP y un puerto * (comodín)

Si el dispositivo no puede seleccionar un servidor virtual por dirección IP o número de puerto, busca un servidor virtual basándose en el protocolo utilizado en la solicitud, en el siguiente orden:

  1. HTTP
  2. TCP
  3. CUALQUIER

Configuración de puertos HTTP globales

No se configuran servicios o servidores virtuales para un puerto HTTP global. En su lugar, se configura un puerto específico mediante el comando set ns param. Después de configurar este puerto, el dispositivo Citrix ADC acepta todo el tráfico que coincida con el número de puerto y lo procesa como tráfico HTTP, aprendiendo dinámicamente y creando servicios para ese tráfico.

Puede configurar más de un número de puerto como puerto HTTP global. Si especifica más de un número de puerto en un solo comando set ns param, separe los números de puerto por un solo espacio en blanco. Si ya se han especificado uno o más puertos como puertos HTTP globales y desea agregar uno o más puertos sin quitar los puertos que están configurados actualmente, debe especificar todos los números de puerto, actuales y nuevos, en el comando. Antes de agregar números de puerto, utilice el comando show ns param para ver los puertos que están configurados actualmente.

Para configurar un puerto HTTP global mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba los siguientes comandos para configurar un puerto HTTP global y compruebe la configuración:

set ns param –httpPort <port>

show ns param

Ejemplo 1: Configuración de un puerto como puerto HTTP global

En este ejemplo, el puerto 80 está configurado como un puerto HTTP global.

set ns param -httpPort 80
Done
show ns param
         Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
        ...
        ...

Ejemplo 2: Agregar puertos cuando uno o más puertos HTTP globales ya están configurados**

En este ejemplo, el puerto 8888 se agrega a la lista global de puertos HTTP. El puerto 80 ya está configurado como un puerto HTTP global.

> show ns param
        Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576
        ...
        ...
 Done
> set ns param -httpPort 80 8888
 Done
>  show ns param

        Global configuration settings:
                          HTTP port(s): 80,8888
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576

        ...
        ...
 Done
>

Para configurar un puerto HTTP global mediante la utilidad de configuración

  1. Vaya a Sistema > Configuración > Cambiar parámetros HTTP y, a continuación, agregue un número de puerto HTTP.