ADC

Métodos de hash

Los métodos de equilibrio de carga basados en hash de cierta información de conexión o información de encabezado constituyen la mayoría de los métodos de equilibrio de carga del dispositivo NetScaler. Los hash son más cortos y más fáciles de usar que la información en la que se basan, al tiempo que conservan suficiente información para garantizar que no hay dos partes diferentes de información generan el mismo hash y, por lo tanto, se confunden entre sí.

Puede utilizar los métodos de equilibrio de carga de hash en un entorno donde una caché sirve una amplia gama de contenido de Internet o servidores de origen especificados. Las solicitudes de almacenamiento en caché reducen la latencia de solicitudes y respuestas y garantizan una mejor utilización de los recursos (CPU), lo que hace que el almacenamiento en caché sea popular en sitios web y servidores de aplicaciones muy utilizados. Dado que estos sitios también se benefician del equilibrio de carga, los métodos de equilibrio de carga hash son ampliamente útiles.

El dispositivo NetScaler proporciona los siguientes métodos de hash:

  • Método hash de URL
  • Método de hash de dominio
  • Método de hash de IP de destino
  • Método de hash de IP de origen
  • Método de hash de IP de destino IP de origen
  • Método de hash del puerto de origen IP de origen
  • Método de hash de ID de llamada
  • Método Token

La mayoría de los algoritmos hash calculan dos valores hash:

  • Un hash de la dirección IP y el puerto del servicio.
  • Un hash de la URL entrante, el nombre de dominio, la dirección IP de origen, la dirección IP de destino o las direcciones IP de origen y destino, según el método de hash configurado.

A continuación, el dispositivo NetScaler genera un nuevo valor hash mediante el uso de ambos valores hash. Por último, reenvía la solicitud al servicio con el mayor valor hash. A medida que el dispositivo calcula un valor hash para cada solicitud y selecciona el servicio que procesa la solicitud, rellena una caché. Las solicitudes posteriores con el mismo valor hash se envían al mismo servicio. El siguiente diagrama de flujo ilustra este proceso.

Nota

A partir de NetScaler versión 13.0 compilación 79.x, se admiten los algoritmos hash consistentes de Ring asistido (JARH) de Prime Re-Shuffled Assisted Ring Hash (JARH) y Jump table. Los algoritmos de hash coherentes garantizan una interrupción mínima cuando se agregan o eliminan servicios de la configuración del equilibrio de carga, o durante un evento de fallo de servicio en la configuración del equilibrio de carga. Para obtener más información, consulte Algoritmos hash coherentes.

Figura 1. Cómo distribuyen las solicitudes los métodos de hash

Cómo distribuye las solicitudes el método hash

Los métodos de hash se pueden aplicar a direcciones IPv4 e IPv6.

Supongamos un caso en el que tres servicios (Servicio-HTTP-1, Servicio-HTTP-2 y Servicio-HTTP-3) están enlazados a un servidor virtual, se configura cualquier método de hash y el valor del hash es Hash1. Cuando los servicios configurados estén activos, la solicitud se envía a Service-HTTP-1. Si Service-HTTP-1 está inactivo, el dispositivo NetScaler calcula el valor de hash del último registro del número de servicios. A continuación, el dispositivo selecciona el servicio con el valor de hash más alto, como Service-HTTP-2. El siguiente diagrama ilustra este proceso.

Figura 2. Modelo de entidad para métodos de hash

Modelo hash

Nota

Si el dispositivo NetScaler no selecciona un servicio mediante un método de hash, se establece por defecto el método de menor conexión para seleccionar un servicio para la solicitud entrante. Ajuste los grupos de servidores eliminando servicios durante períodos de poco tráfico para permitir que las memorias caché se rellenen sin afectar al rendimiento de la configuración del equilibrio de carga.

Algoritmos hash coherentes

Los algoritmos hash consistentes se utilizan para lograr una persistencia sin estado. Los métodos LB basados en hash utilizan uno de los tres algoritmos hash consistentes siguientes:

  • Protocolo de redirección de arreglos de caché (CARP)

    El algoritmo CARP se utiliza en las solicitudes HTTP de equilibrio de carga en varios servidores de caché proxy. Este algoritmo está habilitado de forma predeterminada.

  • CARP asistida de rebarajado Prime (PRAC)

    El dispositivo NetScaler utiliza el algoritmo PRAC patentado para proporcionar una distribución uniforme del tráfico.

  • Mesa de salto Hash de anillo asistido (JARH)

    El dispositivo NetScaler utiliza el algoritmo JARH patentado para proporcionar coherencia y distribución uniforme del tráfico. Este algoritmo utiliza huellas hash. Un mayor número de huellas proporciona una mejor distribución del tráfico. Sin embargo, aumentar el número de huellas también aumenta el uso de la memoria.

Para elegir el algoritmo de hash coherente mediante CLI

set lb parameter [-lbHashAlgorithm [DEFAULT|JARH|PRAC] [-lbHashFingers <positive_integer>]
<!--NeedCopy-->

Ejemplo:

set lb parameter -lbHashAlgorithm JARH -lbHashFingers 10
<!--NeedCopy-->

ARGUMENTOS:

  • LBHashAlgorithm: especifique el algoritmo de hash que se utilizará para los siguientes métodos de equilibrio de carga basados en hash:

    • Método hash de URL
    • Método de hash de dominio
    • Método de hash de IP de destino
    • Método de hash de IP de origen
    • Método de hash de IP de destino IP de origen
    • Método de hash del puerto de origen IP de origen
    • Método de hash de ID de llamada
    • Método Token

    Valores posibles: DEFAULT, PRAC, JARH Valor predeterminado: DEFAULT

  • lbHashFingers: Especifique el número de huellas que se utilizarán en los algoritmos PRAC y JARH para métodos LB basados en hash. El aumento del número de huellas proporciona una mejor distribución del tráfico a expensas de la memoria adicional.

    Valor predeterminado: 256 Valor mínimo: 1 Valor máximo: 1024

Para elegir el algoritmo de hash coherente mediante GUI

  1. Vaya a Gestión de tráfico > Equilibrio de carga > Cambiar parámetros de Equilibrio de carga.
  2. En el panel Configurar parámetros de equilibrio de carga, introduzca los valores adecuados para los siguientes campos en función de sus requisitos:

    • Huellas hash LB
    • En el campo Algoritmo hash LB, elija el algoritmo hash coherente en el menú desplegable.

    Algoritmos hash LB

El método hash de URL

Al configurar el dispositivo NetScaler para utilizar el método de hash de URL para equilibrar la carga de los servicios y seleccionar un servicio, el dispositivo genera un valor de hash de la URL HTTP presente en la solicitud entrante. Si el servicio seleccionado por el valor del hash está INACTIVO, el algoritmo tiene un método para seleccionar otro servicio de la lista de servicios activos. El dispositivo almacena en caché el valor cifrado de la URL y, cuando recibe solicitudes posteriores que utilizan la misma URL, las reenvía al mismo servicio. Si el dispositivo no puede analizar una solicitud entrante, utiliza el método de distribución por turnos para equilibrar la carga en lugar del método de hash de URL.

Para generar el valor de hash, el dispositivo utiliza un algoritmo específico y considera una parte de la URL. De forma predeterminada, el dispositivo considera los primeros 80 bytes de la URL. Si la URL tiene menos de 80 bytes, se utiliza la URL completa. Puede especificar una longitud diferente. La longitud del hash puede ser de 1 byte a 4096 bytes. En general, si se utilizan URL largas donde solo unos pocos caracteres son diferentes, es recomendable que la longitud del hash sea lo más alta posible para intentar garantizar una distribución de carga más uniforme.

Considere un caso en el que tres servicios, Service-HTTP-1, Service-HTTP-2 y Service-HTTP-3, están enlazados a un servidor virtual, y el método de equilibrio de carga configurado en el servidor virtual es el método hash de URL. El servidor virtual recibe una solicitud y el valor hash de la URL es U1. El dispositivo selecciona Service-HTTP-1. Si Service-HTTP-1 está DOWN, el dispositivo selecciona Service-HTTP-2.

El siguiente diagrama ilustra este proceso.

Ilustración 3. Cómo funciona el hashing de URL

Hashing de URL

Si tanto Service-HTTP-1 como Service-HTTP-2 están CAÍDOS, el dispositivo envía solicitudes con valor hash U1 a Service-HTTP-3.

Si Service-HTTP-1 y Service-HTTP-2 están inactivas, las solicitudes que generan la URL hash se envían a Service-HTTP-3. Si estos servicios están en UP, las solicitudes que generan la URL hash 1 se distribuyen de la siguiente manera:

  • Si Service-HTTP-2 está activado, la solicitud se envía a Service-HTTP-2.
  • Si el Service-HTTP-1 está activo, la solicitud se envía al Service-HTTP-1.
  • Si Service-HTTP-1 y Service-HTTP-2 están activas al mismo tiempo, la solicitud se envía a Service-HTTP-1.

Para configurar el método hash de URL, consulte Configuración de un método de equilibrio de carga que no incluye una directiva. Seleccione el método de equilibrio de carga como URL Hash y establezca la longitud del hash en el número de bytes que se utilizarán para generar el valor hash.

El método Domain Hash

Un servidor virtual de equilibrio de carga configurado para usar el método de hash de dominio usa el valor hash del nombre de dominio en la solicitud HTTP para seleccionar un servicio. El nombre de dominio se toma de la URL entrante o del encabezado Host de la solicitud HTTP. Si el nombre de dominio aparece tanto en la URL como en el encabezado Host, el dispositivo da preferencia a la URL.

Si configura el hash de nombres de dominio y una solicitud HTTP entrante no contiene ningún nombre de dominio, el dispositivo NetScaler utilizará de forma predeterminada el método de todos contra todos para esa solicitud.

El cálculo del valor de hash utiliza la longitud del nombre o el valor de la longitud del hash, lo que sea menor. De forma predeterminada, el dispositivo NetScaler calcula el valor de hash a partir de los primeros 80 bytes del nombre de dominio. Para especificar un número diferente de bytes en el nombre de dominio al calcular el valor hash, puede establecer el parámetro hashLength (Hash Length en la utilidad de configuración) en un valor de 1 a 4096 (bytes).

Para configurar el método hash de dominio, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

Método Hash IP de destino

Un servidor virtual de equilibrio de carga configurado para usar el método de hash IP de destino utiliza el valor hash de la dirección IP de destino para seleccionar un servidor. Puede enmascarar la dirección IP de destino para especificar qué parte de ella usar en el cálculo del valor hash, de modo que las solicitudes que provienen de diferentes redes pero que están destinadas a la misma subred se dirijan al mismo servidor. Este método admite servidores de destino basados en IPv4 e IPv6.

Este método de equilibrio de carga es adecuado para su uso con la función de redirección de caché.

Para configurar el método de hash IP de destino para un servidor de destino IPv4, defina el parámetro NetMask. Para configurar este método para un servidor de destino IPv6, utilice el parámetro v6NetMasklen. En la utilidad de configuración, los cuadros de texto para configurar estos parámetros aparecen al seleccionar el método Hash IP de destino.

Para configurar el método hash IP de destino, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

Método Hash IP de origen

Un servidor virtual de equilibrio de carga configurado para usar el método de hash IP de origen utiliza el valor hash de la dirección IPv4 o IPv6 del cliente para seleccionar un servicio. Para dirigir todas las solicitudes de direcciones IP de origen que pertenecen a una red determinada a un servidor de destino específico, debe enmascarar la dirección IP de origen. Para las direcciones IPv4, utilice el parámetro NetMask. Para direcciones IPv6, utilice el parámetro V6NetMaskLength.

Para configurar el método hash IP de origen, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

Método Hash IP de destino IP de origen

Un servidor virtual de equilibrio de carga configurado para utilizar el método hash IP de destino IP de origen utiliza el valor hash de las direcciones IP de origen y destino (IPv4 o IPv6) para seleccionar un servicio. El hash es simétrico. El valor hash es el mismo independientemente del orden de las IP de origen y de destino. Esto garantiza que todos los paquetes que fluyen desde un cliente concreto al mismo destino se dirijan al mismo servidor.

Para dirigir todas las solicitudes que pertenecen a una red determinada a un servidor de destino específico, debe enmascarar la dirección IP de origen. Para las direcciones IPv4, utilice el parámetro NetMask. Para direcciones IPv6, utilice el parámetro V6NetMaskLength.

Para configurar el método hash IP de destino de IP de origen, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

Método Hash del puerto de origen IP de origen

Un servidor virtual de equilibrio de carga configurado para utilizar el método hash del puerto de origen IP de origen utiliza el valor hash de la IP de origen (IPv4 o IPv6) y el puerto de origen para seleccionar un servicio. Esto garantiza que todos los paquetes de una conexión determinada se dirijan al mismo servicio.

Este método se utiliza en la duplicación de conexiones y el equilibrio de carga del firewall. Para obtener más información sobre el reflejo de conexiones, consulte Conmutación por error de conexión.

Para dirigir todas las solicitudes que pertenecen a una red determinada a un servidor de destino específico, debe enmascarar la dirección IP de origen. Para las direcciones IPv4, utilice el parámetro NetMask. Para direcciones IPv6, utilice el parámetro V6NetMaskLength.

Para configurar el método hash del puerto de origen IP de origen, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

El método Hash ID de llamada

Un servidor virtual de equilibrio de carga configurado para usar el método hash del ID de llamada usa el valor hash del ID de llamada en el encabezado SIP para seleccionar un servicio. Por lo tanto, los paquetes de una sesión SIP determinada siempre se dirigen al mismo servidor proxy.

Este método es aplicable al equilibrio de carga SIP. Para obtener más información sobre el equilibrio de carga SIP, consulte Supervisión de los servicios SIP.

Para configurar el método hash de ID de llamada, consulte Configuración de un método de equilibrio de carga que no incluye una directiva.

Métodos de hash