Paramètres de persistance

Vous devez configurer la persistance sur un serveur virtuel si vous souhaitez maintenir 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 permanent pour les demandes ultérieures du client. Si le service sélectionné est hors service, il continue de répondre aux demandes en attente, mais n’accepte pas de nouvelles demandes ou connexions. Après l’expiration de la période d’arrêt, 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, tout nombre de connexions est autorisé jusqu’à ce que la mémoire soit limitée.

Tableau 1. Limitations 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.

Persistence TypeHeader 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
Règle 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 du client 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 s’écoule, n’importe quel serveur virtuel du groupe peut être sélectionné pour les requêtes client entrantes.

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 basée sur les cookies

Lorsque vous activez la persistance basée sur les cookies, l’appliance Citrix ADC 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 requêtes HTTP doivent être envoyées. Le client stocke le cookie et l’inclut dans toutes les demandes suivantes, 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.

L’appliance Citrix ADC insère le 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.

L’ADC chiffre ServiceIP et ServicePort lorsqu’il insère un cookie et les 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, en conformité avec la RFC 2109.

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

  • Si le cookie HTTP version 0 est utilisé, l’appliance Citrix ADC insère le temps universel coordonné (GMT) absolu de l’expiration du cookie (l’attribut expire du cookie HTTP), calculé comme la somme de l’heure GMT actuelle sur une appliance ADC, et la valeur de 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 temps d’expiration réel.

Remarque : la plupart des logiciels clients actuellement installés (navigateurs Microsoft Internet Explorer et Netscape) comprennent la version 0 des cookies HTTP ; cependant, certains serveurs proxy HTTP comprennent la version 1 des cookies 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 )]

Exemple :

set ns param -cookieversion 1
  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, reportez-vous à la section Configurer la persistance basée sur les 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>

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

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 Persistance, sélectionnez COOKIEINSERT.
  4. Dans la zone de texte Délai d’expiration (min), tapez la valeur de 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.

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

L’appliance Citrix ADC peut maintenir la persistance en fonction des ID de serveur dans les URL. Dans une technique appelée persistance passive URL, ADC extrait l’ID du serveur de la réponse du serveur et l’intègre dans la requête URL de la requête client. L’ID du serveur est une adresse IP et un port spécifiés en tant que nombre hexadécimal. ADC extrait l’ID du serveur des requêtes client suivantes 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, reportez-vous à la section Configuration et référence de la stratégie.

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 contient sid= configure le système pour extraire l’ID du serveur de la requête URL d’une requête client, après avoir fait correspondre le jeton sid=. Ainsi, une requête avec l’URL http://www.citrix.com/index.asp?\&sid;=c0a864100050 est dirigée vers le serveur avec l’adresse IP10.102.29.10 et le port 80.

La valeur de délai d’expiration n’affecte pas ce type de persistance, qui est maintenue tant que l’ID du serveur peut être extrait des requêtes 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, reportez-vous à la section É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>

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

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 Persistance, sélectionnez URLPASSIVE.
  4. Dans la zone de texte Délai d’expiration (min), tapez la valeur de 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.