ADC

Paramètres de persistance

Vous devez configurer la persistance sur un serveur virtuel si vous souhaitez conserver les états des connexions sur les serveurs représentés par ce serveur virtuel (par exemple, les connexions utilisées dans le commerce électronique). L’appliance utilise ensuite la méthode d’équilibrage de charge configurée pour la sélection initiale d’un serveur, mais transmet à ce même serveur toutes les demandes ultérieures du même client.

Si la persistance est configurée, elle remplace les méthodes d’équilibrage de charge une fois le serveur sélectionné. Si la persistance configurée s’applique à un service en panne, l’appliance utilise les méthodes d’équilibrage de charge pour sélectionner un nouveau service, et le nouveau service devient persistant pour les demandes ultérieures du client. Si le service sélectionné est hors service, il continue de traiter les demandes en attente mais n’accepte pas les nouvelles demandes ou connexions. Une fois la période d’arrêt écoulée, les connexions existantes sont fermées. Le tableau suivant répertorie les types de persistance que vous pouvez configurer.

Type de persistance Connexions persistantes
IP source, ID de session SSL, règle, DESTIP, SRCIPDESTIP 250K*
CookieInsert, URL passive, ID de serveur personnalisé Limite de mémoire. Dans le cas de CookieInsert, si le délai d’expiration n’est pas égal à 0, n’importe quel nombre de connexions est autorisé jusqu’à ce que la mémoire soit limitée.

Le * tableau précédent fait référence aux éléments suivants :

250 000 sessions par cœur sont la valeur par défaut par moteur de paquets. Pour configurer 1 million d’entrées de session par moteur de paquets, exécutez la commande suivante :

set lb parameter -sessionsthreshold <1000000*number of PE>

Pour un système 3 PE, exécutez la commande suivante :

set lb parameter -sessionsthreshold 3000000

Tableau 1 Limitation du nombre de connexions persistantes simultanées

Si la persistance configurée ne peut pas être maintenue en raison d’un manque de ressources sur une appliance, les méthodes d’équilibrage de charge sont utilisées pour la sélection du serveur. La persistance est maintenue pendant une période configurée, en fonction du type de persistance. Certains types de persistance sont spécifiques à certains serveurs virtuels. Le tableau suivant montre la relation.

Type de persistance Header 1 HTTP HTTPS TCP UDP/IP SSL_Bridge
IP source OUI OUI OUI OUI OUI
CookieInsert OUI OUI NON NON NON
ID de session SSL NON OUI NON NON OUI
URL passive OUI OUI NON NON NON
ID de serveur personnalisé OUI OUI NON NON NON
Rule OUI OUI NON NON NON
SRCIPDESTIP S/O S/O OUI OUI S/O
DESTIP S/O S/O OUI OUI S/O

Tableau 2. Types de persistance disponibles pour chaque type de serveur virtuel

Vous pouvez également spécifier la persistance d’un groupe de serveurs virtuels. Lorsque vous activez la persistance sur le groupe, les demandes des clients sont dirigées vers le même serveur sélectionné, quel que soit le serveur virtuel du groupe qui reçoit la demande du client. Lorsque le temps configuré pour la persistance est écoulé, n’importe quel serveur virtuel du groupe peut être sélectionné pour les demandes des clients entrants.

Deux types de persistance couramment utilisés sont la persistance basée sur les cookies et la persistance basée sur les ID de serveur dans les URL.

Configurer la persistance en fonction des cookies

Lorsque vous activez la persistance basée sur les cookies, l’appliance NetScaler ajoute un cookie HTTP dans le champ d’ en-tête Set-Cookie de la réponse HTTP. Le cookie contient des informations sur le service auquel les demandes HTTP doivent être envoyées. Le client enregistre le cookie et l’inclut dans toutes les demandes ultérieures, et l’ADC l’utilise pour sélectionner le service pour ces demandes. Vous pouvez utiliser ce type de persistance sur des serveurs virtuels de type HTTP ou HTTPS.

The NetScaler appliance inserts the cookie <NSC_XXXX>= <ServiceIP> <ServicePort>

où :

  • <<NSC_XXXX> est l’ID du serveur virtuel dérivé du nom du serveur virtuel.
  • <<ServiceIP> est la valeur hexadécimale de l’adresse IP du service.
  • <<ServicePort> est la valeur hexadécimale du port du service.

Si l’option useEncryptedPersistenceCookie est activée, l’ADC chiffre ServiceIP et ServicePort à l’aide de l’algorithme de hachage SHA2 lorsqu’il insère un cookie et déchiffre lorsqu’il reçoit un cookie.

Remarque : si le client n’est pas autorisé à stocker le cookie HTTP, les requêtes suivantes n’ont pas le cookie HTTP et la persistance n’est pas respectée.

Par défaut, l’appliance ADC envoie le cookie HTTP version 0, conformément à la spécification Netscape. Il peut également envoyer la version 1, conformément à la RFC 2109.

Vous pouvez configurer une valeur de délai d’expiration pour la persistance basée sur les cookies HTTP. Tenez compte de ce qui suit :

  • Si la version 0 du cookie HTTP est utilisée, l’appliance NetScaler insère le temps universel coordonné (GMT) absolu de l’expiration du cookie (l’attribut expires du cookie HTTP), calculé comme la somme de l’heure GMT actuelle sur une appliance ADC et de la valeur du délai d’expiration.
  • Si un cookie HTTP version 1 est utilisé, l’appliance ADC insère un délai d’expiration relatif (attribut Max-Age du cookie HTTP). Dans ce cas, le logiciel client calcule le délai d’expiration réel.

Remarque : La plupart des logiciels clients actuellement installés (navigateurs Microsoft Internet Explorer et Netscape) comprennent la version 0 du cookie HTTP ; cependant, certains proxies HTTP comprennent la version 1 du cookie HTTP.

Si vous définissez la valeur du délai d’expiration sur 0, l’appliance ADC ne spécifie pas le délai d’expiration, quelle que soit la version du cookie HTTP utilisée. Le délai d’expiration dépend alors du logiciel client, et ces cookies ne sont pas valides si ce logiciel est arrêté. Ce type de persistance ne consomme aucune ressource système. Par conséquent, il peut accueillir un nombre illimité de clients persistants.

Un administrateur peut modifier la version du cookie HTTP.

À l’invite de commandes, tapez ;

set ns param [-cookieversion ( 0 | 1 )]
<!--NeedCopy-->

Exemple :

set ns param -cookieversion 1
<!--NeedCopy-->
  1. Accédez à Système > Paramètres.
  2. Dans le volet d’informations, cliquez sur Modifier les paramètres HTTP.
  3. Dans la boîte de dialogue Configurer les paramètres HTTP, sous Cookie, sélectionnez Version 0 ou Version 1.

Remarque : Pour plus d’informations sur les paramètres, voir Configurer la persistance en fonction des cookies.

Pour configurer la persistance basée sur les cookies à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour configurer la persistance en fonction des cookies et vérifier la configuration :

set lb vserver <name> -persistenceType COOKIEINSERT

show lb vserver <name>
<!--NeedCopy-->

Exemple :

set lb vserver vserver-LB-1 -persistenceType COOKIEINSERT
Done
show lb vserver vserver-LB-1
    vserver-LB-1 (10.102.29.60:80) - HTTP   Type: ADDRESS
    .
    .
    .
    Persistence: COOKIEINSERT (version 0)
    Persistence Timeout: 2 min
    .
    .
    .
 Done
<!--NeedCopy-->

Pour configurer la persistance basée sur les cookies à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Dans le volet d’informations, sélectionnez le serveur virtuel pour lequel vous souhaitez configurer la persistance (par exemple, vServer-LB-1), puis cliquez sur Ouvrir.
  3. Dans la boîte de dialogue Configurer le serveur virtuel (équilibrage de charge), sous l’onglet Méthode et persistance, dans la liste Persistence, sélectionnez COOKIEINSERT.
  4. Dans la zone de texte Délai d’expiration (min), tapez la valeur du délai d’expiration (par exemple, 2).
  5. Cliquez sur OK.
  6. Vérifiez que le serveur virtuel pour lequel vous avez configuré la persistance est correctement configuré en sélectionnant le serveur virtuel et en affichant la section Détails en bas du volet.

Configuration de la persistance en fonction des ID de serveur dans les URL

L’appliance NetScaler peut maintenir la persistance en fonction des ID de serveur figurant dans les URL. Dans une technique appelée persistance passive d’URL, l’ADC extrait l’ID du serveur de la réponse du serveur et l’intègre dans la requête URL de la demande du client. L’ID du serveur est une adresse IP et le port est spécifié sous la forme d’un nombre hexadécimal. L’ADC extrait l’ID du serveur des demandes ultérieures du client et l’utilise pour sélectionner le serveur.

La persistance passive des URL nécessite la configuration d’une expression de charge utile ou d’une expression d’infrastructure de stratégie spécifiant l’emplacement de l’ID de serveur dans les demandes du client. Pour plus d’informations sur les expressions, voir Configuration et référence des stratégies.

Remarque : Si l’ID de serveur ne peut pas être extrait des demandes client, la sélection du serveur est basée sur la méthode d’équilibrage de charge.

Exemple : expression de charge utile

L’expression URLQUERY contains sid= configure le système pour extraire l’ID du serveur de la requête URL d’une requête client, après avoir mis en correspondance le jeton sid=. Ainsi, une demande avec l’URL http://www.citrix.com/index.asp?\&sid;=c0a864100050 est dirigée vers le serveur avec l’adresse IP 10.102.29.10 et le port 80.

La valeur du délai d’expiration n’affecte pas ce type de persistance, qui est maintenue tant que l’ID du serveur peut être extrait des demandes du client. Ce type de persistance ne consomme pas de ressources système, il peut donc accueillir un nombre illimité de clients persistants.

Remarque : Pour plus d’informations sur les paramètres, voir Équilibrage de charge.

Pour configurer la persistance en fonction des ID de serveur dans les URL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour configurer la persistance en fonction des ID de serveur dans les URL et vérifiez la configuration :

set lb vserver <name> -persistenceType URLPASSIVE

<show lb vserver <name>
<!--NeedCopy-->

Exemple :

set lb vserver vserver-LB-1 -persistenceType URLPASSIVE
Done
show lb vserver vserver-LB-1
    vserver-LB-1 (10.102.29.60:80) - HTTP   Type: ADDRESS
    .
    .
    .
    Persistence: URLPASSIVE
    Persistence Timeout: 2 min
    .
    .
    .
Done
<!--NeedCopy-->

Pour configurer la persistance en fonction des ID de serveur dans les URL à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Dans le volet d’informations, sélectionnez le serveur virtuel pour lequel vous souhaitez configurer la persistance (par exemple, vServer-LB-1), puis cliquez sur Ouvrir.
  3. Dans la boîte de dialogue Configurer le serveur virtuel (équilibrage de charge), sous l’onglet Méthode et persistance, dans la liste Persistence, sélectionnez URLPASSIVE.
  4. Dans la zone de texte Délai d’expiration (min), tapez la valeur du délai d’expiration (par exemple, 2).
  5. Dans la zone de texte Règle, entrez une expression valide. Vous pouvez également cliquer sur Configurer en regard de la zone de texte Règle et utiliser la boîte de dialogue Créer une expression pour créer une expression.
  6. Cliquez sur OK.
  7. Vérifiez que le serveur virtuel pour lequel vous avez configuré la persistance est correctement configuré en sélectionnant le serveur virtuel et en affichant la section Détails en bas du volet.
Paramètres de persistance