Citrix ADC

Méthodes de hachage

Les méthodes d’équilibrage de charge basées sur des hachages de certaines informations de connexion ou d’en-tête constituent la plupart des méthodes d’équilibrage de charge de l’appliance Citrix ADC. Les hachages sont plus courts et plus faciles à utiliser que les informations sur lesquelles ils sont basés, tout en conservant suffisamment d’informations pour s’assurer qu’aucun élément d’information différent ne génère le même hachage et sont donc confondus les uns avec les autres.

Vous pouvez utiliser les méthodes d’équilibrage de charge de hachage dans un environnement où un cache sert une large gamme de contenu provenant d’Internet ou de serveurs d’origine spécifiés. La mise en cache des demandes réduit la latence des demandes et des réponses et garantit une meilleure utilisation des ressources (CPU), rendant la mise en cache populaire sur les sites Web et serveurs d’applications très utilisés. Comme ces sites bénéficient également de l’équilibrage de charge, les méthodes d’équilibrage de charge de hachage sont largement utiles.

L’appliance Citrix ADC fournit les méthodes de hachage suivantes :

  • Méthode de hachage d’URL
  • Méthode de hachage de domaine
  • Méthode de hachage IP de destination
  • Méthode de hachage IP source
  • Méthode de hachage IP de destination IP source
  • Méthode de hachage du port source IP source
  • Méthode de hachage d’ID d’appel
  • Méthode de jeton

La plupart des algorithmes de hachage calculent deux valeurs de hachage :

  • Un hachage de l’adresse IP et du port du service.
  • Hash de l’URL entrante, du nom de domaine, de l’adresse IP source, de l’adresse IP de destination ou des adresses IP source et destination, selon la méthode de hachage configurée.

L’appliance Citrix ADC génère ensuite une nouvelle valeur de hachage en utilisant ces deux valeurs de hachage. Enfin, il transmet la demande au service ayant la valeur de hachage la plus élevée. Lorsque l’appliance calcule une valeur de hachage pour chaque demande et sélectionne le service qui traite la demande, il remplit un cache. Les requêtes suivantes avec la même valeur de hachage sont envoyées au même service. L’organigramme suivant illustre ce processus.

Remarque

À partir de Citrix ADC version 13.0 build 79.x, les algorithmes de hachage cohérents CARP (PRAC) et Jump Table Assisted Ring Hash (JARH) sont pris en charge. Les algorithmes de hachage cohérents garantissent une interruption minimale lorsque des services sont ajoutés ou supprimés de votre configuration d’équilibrage de charge, ou lors d’un événement de clapet de service dans la configuration d’équilibrage de charge. Pour plus de détails, voir Algorithmes de hachage cohérents.

Figure 1. Comment les méthodes de hachage distribuent les demandes

Comment la méthode de hachage distribue les demandes

Les méthodes de hachage peuvent être appliquées aux adresses IPv4 et IPv6.

Considérons un scénario dans lequel trois services (Service-HTTP-1, Service-HTTP-2 et Service-HTTP-3) sont liés à un serveur virtuel, toute méthode de hachage est configurée et la valeur de hachage est Hash1. Lorsque les services configurés sont UP, la demande est envoyée à Service-HTTP-1. Si Service-HTTP-1 est en panne, l’appliance Citrix ADC calcule la valeur de hachage du dernier journal du nombre de services. L’appliance sélectionne ensuite le service ayant la valeur de hachage la plus élevée, tel que Service-HTTP-2. Le diagramme suivant illustre ce processus.

Figure 2. Modèle d’entité pour les méthodes de hachage

Modèle Hash

Remarque

Si l’appliance Citrix ADC ne parvient pas à sélectionner un service à l’aide d’une méthode de hachage, la méthode de connexion la plus faible est par défaut pour sélectionner un service pour la demande entrante. Ajustez les pools de serveurs en supprimant les services pendant les périodes de faible trafic pour permettre aux caches de se repeupler sans affecter les performances de votre configuration d’équilibrage de charge.

Algorithmes de hachage cohérents

Les algorithmes de hachage cohérents sont utilisés pour obtenir une persistance sans état. Les méthodes LB basées sur le hachage utilisent l’un des trois algorithmes de hachage cohérents suivants :

  • Cache Array Routing Protocol (CARP)

    L’algorithme CARP est utilisé dans l’équilibrage de charge des requêtes HTTP sur plusieurs serveurs de cache proxy. Cet algorithme est activé par défaut.

  • Prime Re-Shuffled Assisted CARP (PRAC)

    L’appliance Citrix ADC utilise l’algorithme PRAC propriétaire pour fournir une distribution uniforme du trafic.

  • Jump table Assisted Ring Hash (JARH)

    L’appliance Citrix ADC utilise l’algorithme JARH propriétaire pour assurer la cohérence et la distribution uniforme du trafic. Cet algorithme utilise des doigts de hachage. Un nombre plus élevé de doigts permet une meilleure répartition du trafic. Cependant, l’augmentation du nombre de doigts augmente également l’utilisation de la mémoire.

Pour choisir l’algorithme de hachage cohérent à l’aide de l’interface de ligne de commande

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

Exemple :

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

ARGUMENTS :

  • lbHashAlgorithm-Spécifiez l’algorithme de hachage à utiliser pour les méthodes d’équilibrage de charge basées sur le hachage suivantes :

    • Méthode de hachage d’URL
    • Méthode de hachage de domaine
    • Méthode de hachage IP de destination
    • Méthode de hachage IP source
    • Méthode de hachage IP de destination IP source
    • Méthode de hachage du port source IP source
    • Méthode de hachage d’ID d’appel
    • Méthode de jeton

    Valeurs possibles : DEFAULT, PRAC, JARH Valeur par défaut : DEFAULT

  • LBHashFingers-Spécifiez le nombre de doigts à utiliser dans les algorithmes PRAC et JARH pour les méthodes LB basées sur le hachage. L’augmentation du nombre de doigts permet une meilleure répartition du trafic au détriment de la mémoire supplémentaire.

    Valeur par défaut : 256 Valeur minimale : 1 Valeur maximale : 1024

Pour choisir l’algorithme de hachage cohérent à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Modifier les paramètres d’équilibrage de charge.
  2. Dans le volet Configurer les paramètres d’équilibrage de charge, entrez les valeurs appropriées pour les champs suivants en fonction de vos besoins :

    • doigts de hachage LB
    • Dans le champ Algorithme de hachage LB, choisissez l’algorithme de hachage cohérent dans le menu déroulant.

    Algorithmes de hachage LB

La méthode de hachage de l’URL

Lorsque vous configurez l’appliance Citrix ADC pour qu’elle utilise la méthode de hachage URL pour équilibrer la charge des services, pour sélectionner un service, l’appliance génère une valeur de hachage de l’URL HTTP présente dans la demande entrante. Si le service sélectionné par la valeur de hachage est DOWN, l’algorithme dispose d’une méthode pour sélectionner un autre service dans la liste des services actifs. L’appliance met en cache la valeur hachée de l’URL et, lorsqu’elle reçoit des demandes ultérieures qui utilisent la même URL, elle les transmet au même service. Si l’appliance ne peut pas analyser une requête entrante, elle utilise la méthode round robin pour l’équilibrage de la charge au lieu de la méthode de hachage URL.

Pour générer la valeur de hachage, l’appliance utilise un algorithme spécifique et considère une partie de l’URL. Par défaut, l’appliance prend en compte les 80 premiers octets de l’URL. Si l’URL est inférieure à 80 octets, l’URL complète est utilisée. Vous pouvez spécifier une longueur différente. La longueur de hachage peut aller de 1 octet à 4096 octets. En règle générale, si des URL longues sont utilisées lorsque seuls quelques caractères sont différents, il est judicieux de rendre la longueur de hachage la plus élevée possible afin d’assurer une répartition plus uniforme de la charge.

Considérons un scénario dans lequel trois services, Service-HTTP-1, Service-HTTP-2 et Service-HTTP-3, sont liés à un serveur virtuel, et la méthode d’équilibrage de charge configurée sur le serveur virtuel est la méthode de hachage URL. Le serveur virtuel reçoit une demande et la valeur de hachage de l’URL est U1. L’appliance sélectionne Service-HTTP-1. Si Service-HTTP-1 est DOWN, l’appliance sélectionne Service-HTTP-2.

Le diagramme suivant illustre ce processus.

Figure 3. Fonctionnement du hachage d’URL

Hachage d'URL

Si Service-HTTP-1 et Service-HTTP-2 sont tous deux en panne, l’appliance envoie les demandes avec la valeur de hachage U1 à Service-HTTP-3.

Si Service-HTTP-1 et Service-HTTP-2 sont en panne, les requêtes qui génèrent l’URL1 de hachage sont envoyées à Service-HTTP-3. Si ces services sont UP, les demandes qui génèrent l’URL de hachage 1 sont distribuées de la manière suivante :

  • Si le Service-HTTP-2 est en service, la demande est envoyée à Service-HTTP-2.
  • Si le Service-HTTP-1 est en service, la demande est envoyée à Service-HTTP-1.
  • Si Service-HTTP-1 et Service-HTTP-2 sont mis en service en même temps, la demande est envoyée à Service-HTTP-1.

Pour configurer la méthode de hachage d’URL, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie. Sélectionnez la méthode d’équilibrage de charge en tant qu’URL Hash et définissez la longueur de hachage sur le nombre d’octets à utiliser pour générer la valeur de hachage.

La méthode de hachage du domaine

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage de domaine utilise la valeur hachée du nom de domaine dans la requête HTTP pour sélectionner un service. Le nom de domaine provient soit de l’URL entrante, soit de l’en-tête Host de la requête HTTP. Si le nom de domaine apparaît à la fois dans l’URL et dans l’en-tête Host, l’appliance donne la préférence à l’URL.

Si vous configurez le hachage de nom de domaine et qu’une requête HTTP entrante ne contient pas de nom de domaine, l’appliance Citrix ADC utilise par défaut la méthode round robin pour cette requête.

Le calcul de la valeur de hachage utilise la longueur de nom ou la valeur de longueur de hachage, la valeur la plus petite étant retenue. Par défaut, l’appliance Citrix ADC calcule la valeur de hachage à partir des 80 premiers octets du nom de domaine. Pour spécifier un nombre différent d’octets dans le nom de domaine lors du calcul de la valeur de hachage, vous pouvez définir le paramètre hashLength (longueur de hachage dans l’utilitaire de configuration) sur une valeur comprise entre 1 et 4096 (octets).

Pour configurer la méthode de hachage de domaine, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.

Méthode de hachage IP de destination

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage IP de destination utilise la valeur hachée de l’adresse IP de destination pour sélectionner un serveur. Vous pouvez masquer l’adresse IP de destination pour spécifier la partie de celle-ci à utiliser dans le calcul de la valeur de hachage, de sorte que les requêtes provenant de réseaux différents mais destinées au même sous-réseau soient toutes dirigées vers le même serveur. Cette méthode prend en charge les serveurs de destination IPv4 et IPv6.

Cette méthode d’équilibrage de charge est appropriée pour une utilisation avec la fonction de redirection du cache.

Pour configurer la méthode de hachage IP de destination pour un serveur de destination IPv4, définissez le paramètre NetMask. Pour configurer cette méthode pour un serveur de destination IPv6, vous utilisez le paramètre V6NetMasklen. Dans l’utilitaire de configuration, les zones de texte permettant de définir ces paramètres apparaissent lorsque vous sélectionnez la méthode de hachage IP de destination.

Pour configurer la méthode de hachage IP de destination, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.

La méthode de hachage IP source

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage IP source utilise la valeur hachée de l’adresse IPv4 ou IPv6 client pour sélectionner un service. Pour diriger toutes les demandes provenant d’adresses IP source appartenant à un réseau particulier vers un serveur de destination spécifique, vous devez masquer l’adresse IP source. Pour les adresses IPv4, utilisez le paramètre netMask. Pour les adresses IPv6, utilisez le paramètre V6NetMaskLength.

Pour configurer la méthode de hachage IP source, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.

Méthode de hachage IP de destination IP source

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage IP de destination IP source utilise la valeur hachée des adresses IP source et destination (IPv4 ou IPv6) pour sélectionner un service. Le hachage est symétrique. La valeur de hachage est la même quel que soit l’ordre des adresses IP source et de destination. Cela garantit que tous les paquets circulant d’un client particulier vers la même destination sont dirigés vers le même serveur.

Pour diriger toutes les demandes appartenant à un réseau particulier vers un serveur de destination spécifique, vous devez masquer l’adresse IP source. Pour les adresses IPv4, utilisez le paramètre netMask. Pour les adresses IPv6, utilisez le paramètre V6NetMaskLength.

Pour configurer la méthode de hachage IP de destination IP source, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.

Méthode de hachage du port source IP source

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage du port source IP source utilise la valeur de hachage de l’IP source (IPv4 ou IPv6) et du port source pour sélectionner un service. Cela garantit que tous les paquets d’une connexion particulière sont dirigés vers le même service.

Cette méthode est utilisée dans la mise en miroir des connexions et l’équilibrage de charge du pare-feu. Pour plus d’informations sur la mise en miroir des connexions, voir Basculement de connexion.

Pour diriger toutes les demandes appartenant à un réseau particulier vers un serveur de destination spécifique, vous devez masquer l’adresse IP source. Pour les adresses IPv4, utilisez le paramètre netMask. Pour les adresses IPv6, utilisez le paramètre V6NetMaskLength.

Pour configurer la méthode de hachage du port source IP source source, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.

La méthode de hachage de l’ID d’appel

Un serveur virtuel d’équilibrage de charge configuré pour utiliser la méthode de hachage de l’ID d’appel utilise la valeur de hachage de l’ID d’appel dans l’en-tête SIP pour sélectionner un service. Les paquets d’une session SIP particulière sont donc toujours dirigés vers le même serveur proxy.

Cette méthode est applicable à l’équilibrage de charge SIP. Pour plus d’informations sur l’équilibrage de charge SIP, voir Surveillance des services SIP.

Pour configurer la méthode de hachage de l’ID d’appel, reportez-vous à la section Configuration d’une méthode d’équilibrage de charge qui n’inclut pas de stratégie.