Métodos de hash

Los métodos de equilibrio de carga basados en hashes 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 balanceo 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

Estos algoritmos de hash garantizan una interrupción mínima cuando los servicios se agregan o eliminan de la configuración de equilibrio de carga. La mayoría de ellos 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. Finalmente, reenvía la solicitud al servicio con el valor hash más alto. A medida que el dispositivo calcula un valor hash para cada solicitud y selecciona el servicio que procesará 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.

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

hashing-method-distribute-requests

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.

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

modelo hash

Nota: Si el dispositivo Citrix ADC no puede seleccionar un servicio mediante un método hash, el método predeterminado es el método de menor conexión para seleccionar un servicio para la solicitud entrante. Debe ajustar los grupos de servidores mediante la eliminación de servicios durante los períodos de tráfico bajo para permitir que las cachés se vuelvan a llenar sin afectar el rendimiento de la configuración de equilibrio de carga.

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 a 4096 bytes. Generalmente, si se usan URL largas donde solo un pequeño número de caracteres son diferentes, es una buena idea hacer que la longitud del hash sea lo más alta posible para tratar de 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. dispositivo selecciona Service-HTTP-1. Si Service-HTTP-1 está DOWN, el dispositivo selecciona Service-HTTP-2.

El siguiente diagrama ilustra este proceso.

Imagen 3. Cómo funciona el hash de URL

Hashing de URL

Si Service-HTTP-1 y Service-HTTP-2 están DOWN, el dispositivo envía solicitudes con el 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 UP, las solicitudes que generan la URL hash 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, aparecen cuadros de texto para establecer estos parámetros 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 direcciones IP de origen y 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 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 del 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 acerca de la creación de reflejos de conexión, consulte Failover 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 acerca del equilibrio de carga SIP, consulte Supervisión de servicios SIP.

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