Cómo funciona el equilibrio de carga
En una configuracion basica de equilibrio de carga, los clientes envían sus solicitudes a la dirección IP de un servidor virtual configurado en el dispositivo NetScaler. 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. A veces, puede 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, consultePuertos 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 las solicitudes de los clientes 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 consiste en asignar un puerto HTTP global.
Figura 1. Arquitectura de equilibrio de carga
El servidor virtual de equilibrio de carga puede utilizar varios algoritmos (o métodos) para determinar cómo distribuir la carga entre los servidores equilibrados 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 NetScaler 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 se configuran en una configuración típica de equilibrio de carga de NetScaler son:
- Servidor virtual de equilibrio de carga.La combinación de dirección IP, puerto y protocolo a la que un cliente envía las solicitudes de conexión para un sitio web o una 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 LAN o la WAN, el VIP suele ser una dirección IP privada (ICANN no enrutable).
- Servicio.La combinación de dirección IP, puerto y protocolo que se utiliza 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 aloja varias aplicaciones. Tras crear un servicio, lo vincula a un servidor virtual de equilibrio de carga.
- Objeto de servidor.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 pasará a ser el nombre del servidor.
- Monitorear.Entidad del dispositivo NetScaler que rastrea un servicio y garantiza que funcione correctamente. El monitor examina periódicamente (o realiza una comprobación de estado de) cada servicio al que se asigna. Si el servicio no responde dentro del tiempo especificado en el tiempo de espera y fallan un número específico de comprobaciones de estado, ese servicio se marcará como INACTIVO. A continuación, el dispositivo NetScaler omite ese servicio al realizar el equilibrio de carga, hasta que se solucionen los problemas que hacían que el servicio dejara de responder.
El servidor virtual, los servicios y los servidores de aplicaciones con equilibrio de carga de una configuración de equilibrio de carga pueden utilizar direcciones IP del Protocolo de Internet versión 4 (IPv4) o del Protocolo de Internet versión 6 (IPv6). Puede combinar direcciones IPv4 e IPv6 en una única configuración de equilibrio de carga.
Para ver las variaciones en la configuración del equilibrio de carga, consulte los siguientes casos de uso:
- Configuración del equilibrio de carga en el modo Direct Server Return
- Configuración de servidores LINUX en modo DSR
- Configuración del modo DSR al usar TOS
- Configuración del equilibrio de carga en modo DSR mediante IP sobre IP
- Configuración del equilibrio de carga en modo de brazo único
- Configuración del equilibrio de carga en el modo en línea
- Equilibrio de carga de los servidores del sistema de detección de intrusos
- Servidores de protocolo de escritorio remoto de equilibrio de carga
Comprender la topología
En una configuración de equilibrio de carga, el servidor de equilibrio de carga se ubica de forma lógica 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 NetScaler, 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.
Figura 2. Topología básica de equilibrio de carga
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 de los clientes. Considere un caso en el que los servicios Service-HTTP-1 y Service-HTTP-2 se crean y enlazan al servidor virtual denominado vServer-LB-1. vServer-LB-1 reenvía la solicitud del cliente a Service-HTTP-1 o Service-HTTP-2. El dispositivo NetScaler utiliza el método de equilibrio de carga de menor conexión para seleccionar el servicio para cada solicitud. La siguiente tabla muestra los nombres y valores de las entidades básicas que se deben configurar en el dispositivo.
Entidad | Name | 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 | Valor predeterminado | Nada | Nada | Nada |
El siguiente diagrama muestra los valores de muestra del equilibrio de carga y los parámetros obligatorios que se describen en la tabla anterior.
Ilustración 3. Modelo de entidad de equilibrio de carga
Uso de comodines en lugar de direcciones IP y puertos
En ocasiones, es posible que tenga que utilizar un comodín para la dirección IP o el puerto de un servidor virtual o para el puerto de un servicio. Los casos siguientes podrían requerir el uso de un comodín:
- Si el dispositivo NetScaler 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 se conocen bien.
- Si uno o más servicios, con el tiempo, cambian los puertos en los que escuchan.
- Si alcanza el límite de direcciones IP y puertos que puede configurar en un único dispositivo NetScaler.
- Si quiere crear servidores virtuales que escuchen todo el tráfico en una LAN virtual específica.
Cuando联合国servidor虚拟o servicio configuradocon comodín recibe tráfico, el dispositivo NetScaler determina la dirección IP o el puerto reales y crea registros para el servicio y el servidor de aplicaciones equilibrado 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 de firewall puede usar caracteres comodín 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 tabla siguiente se describen algunos de los distintos tipos de configuraciones comodín y cuándo debe utilizarse 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 NetScaler. Al utilizar 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 vincular los servicios de firewall a este servidor virtual y el dispositivo NetScaler transfiere el tráfico a través del firewall al destino. |
Dirección IP | * | TCP, UDP y ANY | 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 los aprende dinámicamente. |
Nota: No se configuran servicios o servidores virtuales para un puerto HTTP global. En este caso, configura un puerto específico como puerto HTTP global (por ejemplo, establece ns param -HttpPort 80). A continuación, el dispositivo acepta todo el tráfico que coincida con el número de puerto y lo procesa como tráfico HTTP. El dispositivo aprende y crea servicios de forma dinámica para este tráfico. | |||
* | port | SSL, SSL_TCP | Un servidor virtual que acepta todo el tráfico enviado a cualquier dirección IP de un puerto específico. Se utiliza para la descarga global de SSL transparente. 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 conocer dinámicamente la IP del servicio que debe utilizar. Si no se especifica —cleartext, el dispositivo NetScaler utiliza SSL de extremo a extremo. |
* | port | No aplicable | Todos los demás servidores virtuales que pueden aceptar tráfico al puerto. No vincula servicios a estos servidores virtuales. El dispositivo NetScaler los aprende dinámicamente. |
Nota: Si ha configurado el dispositivo NetScaler como un paso 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 perimetral. “
El dispositivo NetScaler intenta localizar servidores y servicios virtuales al intentar primero una coincidencia exacta. Si no encuentra ninguno, continúa buscando una coincidencia basándose en caracteres comodín, en el siguiente orden:
- Dirección IP específica y número de puerto específico
- Dirección IP específica y un 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 según el protocolo utilizado en la solicitud, en el siguiente orden:
- HTTP
- TCP
- CUALQUIERA
Configuración de puertos HTTP globales
No se configuran servicios ni servidores virtuales para un puerto HTTP global. En su lugar, configura un puerto específico mediante el comando set ns param. Tras configurar este puerto, el dispositivo NetScaler acepta todo el tráfico que coincida con el número de puerto y lo procesa como tráfico HTTP, aprendiendo y creando servicios de forma dinámica 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 con un solo espacio en blanco. Si ya se han especificado uno o más puertos como puertos HTTP globales y desea añadir uno o más puertos sin eliminar los puertos que están configurados actualmente, debe especificar todos los números de puerto, actuales y nuevos, en el comando. Antes de añadir 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 la línea de comandos, escriba los siguientes comandos para configurar un puerto HTTP global y comprobar la configuración:
set ns param –httpPort show ns param
Ejemplo 1: Configuración de un puerto como puerto HTTP global
En este ejemplo, el puerto 80 se configura como 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 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
- Vaya aSistema > Configuración > Cambiar parámetros HTTPy, a continuación, agregue un número de puerto HTTP.