Citrix 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 Citrix ADC. 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 Citrix ADC proporciona los siguientes métodos de hash:

  • Método hash de URL
  • Método hash de dominio
  • Método hash IP de destino
  • Método hash IP de origen
  • Método hash IP de destino IP de origen
  • Método hash del puerto de origen IP de origen
  • Método hash 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 dirección 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, dependiendo del método hash configurado.

A continuación, el dispositivo Citrix ADC 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 Citrix ADC 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.

Ilustración 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.

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

Ilustración 2. Modelo de entidad para métodos de hash

Modelo hash

Nota

Si el dispositivo Citrix ADC 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 Citrix ADC utiliza el algoritmo PRAC patentado para proporcionar una distribución uniforme del tráfico.

  • Mesa de salto Hash de anillo asistido (JARH)

    El dispositivo Citrix ADC 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 hash de dominio
    • Método hash IP de destino
    • Método hash IP de origen
    • Método hash IP de destino IP de origen
    • Método hash del puerto de origen IP de origen
    • Método hash 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

Cuando configura el dispositivo Citrix ADC para que utilice el método hash de URL para equilibrar la carga de los servicios, para seleccionar un servicio, el dispositivo genera un valor hash de la URL HTTP presente en la solicitud entrante. Si el servicio seleccionado por el valor hash es DOWN, el algoritmo tiene un método para seleccionar otro servicio de la lista de servicios activos. El dispositivo almacena en caché el valor hash de la dirección URL y, cuando recibe solicitudes posteriores que utilizan la misma dirección URL, las reenvía al mismo servicio. Si el dispositivo no puede analizar una solicitud entrante, utiliza el método round robin para el equilibrio de carga en lugar del método hash URL.

Para generar el valor 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 dirección URL. Si la URL es inferior a 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 hash 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á activado, la solicitud se envía a 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 hash de dominio

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

Si configura el hash de nombres de dominio y una solicitud HTTP entrante no contiene un nombre de dominio, el dispositivo Citrix ADC utilizará de forma predeterminada el método round robin para esa solicitud.

El cálculo de valor hash utiliza la longitud del nombre o el valor de longitud hash, lo que sea más pequeño. De forma predeterminada, el dispositivo Citrix ADC calcula el valor 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 utilizar el método 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 se va a utilizar en el cálculo del valor hash, de modo que las solicitudes procedentes de redes diferentes pero 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 apropiado para su uso con la función de redirección de caché.

Para configurar el método hash IP de destino para un servidor de destino IPv4, establezca 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 utilizar el método 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 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 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 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 utilizar el método hash ID de llamada utiliza el valor hash del ID de llamada en el encabezado SIP para seleccionar un servicio. Por lo tanto, los paquetes para 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.