Citrix ADC

Personnaliser l’algorithme de hachage pour assurer la persistance sur les serveurs virtuels

L’appliance Citrix ADC utilise des algorithmes basés sur le hachage pour maintenir la persistance sur les serveurs virtuels. Par défaut, la méthode d’équilibrage de charge basée sur le hachage utilise une valeur de hachage de l’adresse IP et du numéro de port du service. Si un service est rendu disponible sur différents ports sur le même serveur, l’algorithme génère des valeurs de hachage différentes. Par conséquent, différents serveurs virtuels d’équilibrage de charge peuvent envoyer des demandes pour la même application à différents services, ce qui rompt la pseudo-persistance.

Comme alternative à l’utilisation du numéro de port pour générer la valeur de hachage, vous pouvez spécifier un identificateur de hachage unique pour chaque service. Pour un service, la même valeur d’identificateur de hachage doit être spécifiée sur tous les serveurs virtuels. Si un serveur physique sert plus d’un type d’application, chaque type d’application doit avoir un identifiant de hachage unique.

L’algorithme de calcul de la valeur de hachage pour un service fonctionne comme suit :

  • Par défaut, un paramètre global spécifie l’utilisation du numéro de port dans un calcul de hachage.
  • Si vous configurez un identificateur de hachage pour un service, il est utilisé et le numéro de port ne l’est pas, quel que soit le paramètre global.
  • Si vous ne configurez pas d’identificateur de hachage, mais modifiez la valeur par défaut du paramètre global afin qu’il ne spécifie pas l’utilisation du numéro de port, la valeur de hachage est basée uniquement sur l’adresse IP du service.
  • Si vous ne configurez pas d’identificateur de hachage ou ne modifiez pas la valeur par défaut du paramètre global pour utiliser le numéro de port, la valeur de hachage est basée sur l’adresse IP et le numéro de port du service.

Vous pouvez également spécifier des identificateurs de hachage lors de l’utilisation de l’interface de ligne de commande pour lier des services à un groupe de services. Dans l’utilitaire de configuration, vous pouvez ouvrir un groupe de services et ajouter des identifiants de hachage sous l’onglet Membres.

Pour modifier le paramètre global use-port-number à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set lb parameter -usePortForHashLb (YES NON)

Exemple :

> set lb parameter -usePortForHashLb NO
 Done
>show lb parameter
Global LB parameters:
        Persistence Cookie HttpOnly Flag: DISABLED
        Use port for hash LB: NO
 Done

Pour modifier le paramètre global use-port-number à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Configurer les paramètres d’équilibrage de charge.
  2. Sélectionnez ou désactivez Utiliser le port pour les méthodes LB basées sur hachage.

Pour créer un nouveau service et spécifier un identifiant de hachage pour un service à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour définir l’ID de hachage et vérifiez le paramètre :

add service < name > (< ip > < serverName >) < serviceType > < port > -hashId < positive_integer >
show service <name>

Exemple :

> add service flbkng 10.101.10.1 http 80 -hashId 12345
 Done
>show service flbkng
        flbkng (10.101.10.1:80) - HTTP
        State: DOWN
        Last state change was at Thu Nov  4 10:14:52 2010
        Time since last state change: 0 days, 00:00:15.990
        Server Name: 10.101.10.1
        Server ID : 0   Monitor Threshold : 0

        Down state flush: ENABLED
        Hash Id: 12345

1)      Monitor Name: tcp-default
                State: DOWN     Weight: 1

 Done

Pour spécifier un identificateur de hachage pour un service existant à l’aide de l’interface de ligne de commande

Tapez la commande set service, le nom du service et -hashid suivi de la valeur ID.

Pour spécifier un identifiant de hachage lors de l’ajout d’un membre de groupe de services

Pour spécifier un identifiant de hachage pour chaque membre à ajouter au groupe et vérifier le paramètre, à l’invite de commandes, tapez les commandes suivantes (Veillez à spécifier un Hashid unique pour chaque membre. ) :

bind servicegroup <serviceGroupName> <memberName> <port> -hashId <positive_integer>

show servicegroup <serviceGroupName>

Exemple :

 bind servicegroup http_svc_group 10.102.27.153 80 -hashId 2222222

>show servicegroup SRV
        SRV - HTTP
        State: ENABLED  Monitor Threshold : 0
        …

        1)         1.1.1.1:80   State: DOWN     Server Name: 1.1.1.1    Server ID: 123  Weight: 1
        Hash Id: 32211

                Monitor Name: tcp-default       State: DOWN
        …

        2)         2.2.2.2:80   State: DOWN     Server Name: 2.2.2.2    Server ID: 123  Weight: 1
        Hash Id: 12345

                Monitor Name: tcp-default       State: DOWN
        …
Done

Pour spécifier un identifiant de hachage pour un service à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Services.
  2. Créez un nouveau service ou ouvrez un service existant et spécifiez l’ID de hachage.

Pour spécifier un identificateur de hachage pour un membre de groupe de services déjà configuré à l’aide de l’interface graphique graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Groupes de services.
  2. Ouvrez un membre et tapez un ID de hachage unique.