Pour garantir la stabilité des applications avec état, les équilibrages de charge implémentent la persistance qui dirige toutes les connexions associées au même serveur. Différents types de persistance sont pris en charge pour répondre à différents types de besoins d'application.

Certaines applications conservent l'état du serveur, par exemple, les paniers d'achat. Cet état peut être par client et identifié par l'adresse IP du client ou par la session HTTP. Les applications peuvent accéder à cet état ou le modifier lors du traitement des connexions suivantes liées à partir du même client ou de la même session HTTP.

Le profil de persistance de l'adresse IP source effectue le suivi des sessions en fonction de l'adresse IP source. Lorsqu'un client demande une connexion à un serveur virtuel prenant en charge la persistance de l'adresse source, l'équilibreur de charge vérifie si ce client s'est précédemment connecté, et si c'est le cas, renvoie le client au même serveur. Si ce n'est pas le cas, l'équilibreur de charge sélectionne le membre du pool de serveurs en fonction de l'algorithme d'équilibrage de charge du pool. Le profil de persistance de l'adresse IP source est utilisé par les serveurs virtuels de couche 4 et de couche 7.

Si la persistance de la règle, la persistance des cookies et le serveur persistant sont tous configurés, l'équilibreur de charge suit la priorité de persistance de la persistance de règles > persistance des cookies > serveur persistant.

Le profil de persistance des cookies propose 3 modes :
  • Insertion de cookie : l'équilibreur de charge insère son propre cookie avec des informations sur le membre du pool (codées ou non) dans la réponse du serveur au client. Les cookies reçus sont ensuite transmis par le client dans les demandes suivantes (cookie NSX inclus) et l'équilibreur de charge utilise ces informations pour permettre la persistance du membre du pool. Le cookie NSX est supprimé de la demande du client lorsqu'il est envoyé au membre du pool.
  • Préfixe de cookie : l'équilibreur de charge ajoute les informations sur le membre du pool (codées ou non) dans la réponse du serveur au client. Le cookie HTTP reçu est ensuite transmis par le client dans les demandes suivantes (avec les informations ajoutées en préfixe NSX) et l'équilibreur de charge utilise ces informations pour permettre la persistance du membre du pool. Le préfixe de cookie NSX est supprimé de la demande du client lorsqu'il est envoyé au membre du pool.
  • Réécriture de cookie : l'équilibreur de charge remplace la valeur du cookie de serveur par des informations sur le membre du pool (codées ou non) dans la réponse du serveur au client. Le cookie HTTP reçu est ensuite transmis par le client dans les demandes suivantes (avec les informations ajoutées en préfixe NSX) et l'équilibreur de charge utilise ces informations pour permettre la persistance du membre du pool. Le cookie de serveur d'origine est remplacé dans la demande du client lorsqu'il est envoyé au membre du pool.
La persistance des cookies est disponible uniquement sur les serveurs virtuels L7. Notez qu'un espace vide dans un nom de cookie n'est pas pris en charge.

Le profil de persistance générique prend en charge la persistance basée sur l'en-tête, le cookie ou l'URL HTTP dans la demande HTTP. Par conséquent, il prend en charge la persistance de session d'application lorsque l'ID de session fait partie de l'URL. Ce profil n'est pas associé directement à un serveur virtuel. Spécifiez ce profil lorsque vous configurez une règle d'équilibreur de charge pour le transfert de la demande et la réécriture de la réponse.

Un diagramme d'un profil de persistance générique.

Procédure

  1. Avec des privilèges d'administrateur, connectez-vous à NSX Manager.
  2. Sélectionnez Mise en réseau > Équilibrage de charge > Profils > Persistance > Ajouter des profils de persistance.
  3. Sélectionnez IP source pour ajouter un profil de persistance de l'adresse IP source et entrez les détails du profil.
    Vous pouvez également accepter les paramètres du profil de persistance de l'adresse IP source par défaut.
    Option Description
    Nom et description Entrez un nom et une description pour le profil de persistance de l'adresse IP source.
    Partager la persistance Faites basculer ce bouton pour partager la persistance afin que tous les serveurs virtuels auxquels ce profil est associé puissent partager la table de persistance.

    Si le partage de persistance n'est pas activé dans le profil de persistance de l'adresse IP source associé à un serveur virtuel, chaque serveur virtuel auquel le profil est associé maintient une table de persistance privée.

    Délai d'expiration de l'entrée de persistance Entrez la durée d'expiration de la persistance en secondes.

    La table de persistance d'équilibreur de charge conserve les entrées pour enregistrer que les demandes des clients sont dirigées vers le même serveur.

    La toute première connexion à partir de l'adresse IP du nouveau client est équilibrée sur un membre du pool en fonction de l'algorithme d'équilibrage de charge. NSX stockera cette entrée de persistance sur la table de persistance de l'équilibrage de charge visible sur le nœud Edge qui héberge l'équilibrage de charge T1 actif via la commande CLI : get load-balancer <LB-UUID> persistence-tables.

    • Lorsqu'il y a des connexions de ce client vers l'adresse IP virtuelle, l'entrée de persistance est conservée.
    • Lorsqu'il n'y a plus de connexions de ce client vers l'adresse IP virtuelle, l'entrée de persistance commence le compte à rebours du temporisateur spécifié dans la valeur « Délai d'expiration de l'entrée de persistance ». Si aucune nouvelle connexion de ce client vers l'adresse IP virtuelle n'est effectuée avant l'expiration du temporisateur, l'entrée de persistance de l'adresse IP de ce client est supprimée. Si ce client revient après la suppression de l'entrée, la charge est équilibrée à nouveau sur un membre du pool en fonction de l'algorithme d'équilibrage de charge.
    Purger les entrées (table pleine)

    Un délai d'expiration élevé peut entraîner le remplissage rapide de la table de persistance si le trafic est intense. Lorsque cette option est activée, l'entrée la plus ancienne est supprimée pour accepter l'entrée la plus récente.

    Lorsque cette option est désactivée, si la table de persistance de l'adresse IP source est complète, les nouvelles connexions clientes sont rejetées.

    Mise en miroir de la persistance HA Faites basculer ce bouton pour synchroniser les entrées de persistance avec l'homologue HA. Lorsque la mise en miroir de la persistance HA est activée, la persistance de l'adresse IP du client est maintenue en cas de basculement de l'équilibreur de charge.
    Balises Entrez des balises pour faciliter la recherche.

    Vous pouvez spécifier une balise pour définir son étendue.

  4. Sélectionnez un profil de persistance de Cookie et entrez les détails du profil. La persistance des cookies est disponible uniquement sur les serveurs virtuels L7. Notez qu'un espace vide dans un nom de cookie n'est pas pris en charge.
    Option Description
    Nom et description Entrez un nom et une description pour le profil de persistance des cookies.
    Partager la persistance Faites basculer ce bouton pour partager la persistance entre plusieurs serveurs virtuels associés aux mêmes membres du pool.

    Le profil de persistance des cookies insère un cookie au format <nom>.<ID de profil>.<ID de pool>.

    Si la persistance partagée n'est pas activée dans le profil de persistance des cookies associé à un serveur virtuel, la persistance des cookies privée de chaque serveur virtuel est utilisée et certifiée par le membre du pool. L'équilibreur de charge insère un cookie au format <nom>.<ID du serveur virtuel>.<ID du pool>.

    Mode de cookie Sélectionnez un mode dans le menu déroulant.
    • INSERT : ajoute un cookie unique afin d'identifier la session.
    • PREFIX : ajoute des informations aux informations du cookie HTTP existantes.
    • REWRITE : réécrit les informations du cookie HTTP existantes.
    Nom du cookie Entrez le nom du cookie. Un espace vide dans un nom de cookie n'est pas pris en charge.
    Domaine de cookie Entrez le nom du domaine.

    Un domaine de cookie HTTP peut être configuré uniquement en mode INSERT.

    Option de secours de cookie Faites basculer le bouton afin que la demande client soit refusée si le cookie pointe vers un serveur dont l'état est DÉSACTIVÉ ou INACTIF.

    Sélectionne un nouveau serveur qui traitera la demande client si le cookie pointe vers un serveur dont l'état est DÉSACTIVÉ ou INACTIF.

    Chemin d'accès au cookie Entrez le chemin d'URL du cookie.

    Un chemin d'accès au cookie HTTP peut être défini uniquement en mode INSERT.

    Chiffrement de cookie Faites basculer le bouton pour désactiver le chiffrement.

    Lorsque le chiffrement est désactivé, ces informations sont en texte brut. Chiffrez l'adresse IP et le port du serveur de cookie.

    Type de cookie Sélectionnez un type de cookie dans le menu déroulant.

    Cookie de session - non stocké. Sera perdu lors de la fermeture du navigateur.

    Cookie de persistance - stocké par le navigateur. Ne sera pas perdu lors de la fermeture du navigateur.

    Indicateur HttpOnly Lorsqu'elle est activée, cette option empêche un script exécuté dans le navigateur d'accéder aux cookies.

    L'indicateur HttpOnly est uniquement disponible en mode INSERT.

    Indicateur sécurisé Lorsqu'elle est activée, cette option oblige les navigateurs Web à envoyer des cookies via HTTPS uniquement.

    L'indicateur sécurisé est uniquement disponible en mode INSERT.

    Durée d'inactivité max Entrez la durée en secondes pendant laquelle le type de cookie peut être inactif avant son expiration.
    Durée de vie maximale du cookie Pour le type de cookie de session, entrez la durée en secondes de disponibilité du cookie.
    Balises Entrez des balises pour faciliter la recherche.

    Vous pouvez spécifier une balise pour définir son étendue.

  5. Sélectionnez Générique pour ajouter un profil de persistance générique et entrez les détails du profil.
    Option Description
    Nom et description Entrez un nom et une description pour le profil de persistance de l'adresse IP source.
    Partager la persistance Faites basculer ce bouton pour partager le profil entre les serveurs virtuels.
    Délai d'expiration de l'entrée de persistance Entrez la durée d'expiration de la persistance en secondes.

    La table de persistance d'équilibreur de charge conserve les entrées pour enregistrer que les demandes des clients sont dirigées vers le même serveur.

    La toute première connexion à partir de l'adresse IP du nouveau client est équilibrée sur un membre du pool en fonction de l'algorithme d'équilibrage de charge. NSX stockera cette entrée de persistance sur la table de persistance de l'équilibrage de charge visible sur le nœud Edge qui héberge l'équilibrage de charge T1 actif via la commande CLI : get load-balancer <LB-UUID> persistence-tables.

    • Lorsqu'il y a des connexions de ce client vers l'adresse IP virtuelle, l'entrée de persistance est conservée.
    • Lorsqu'il n'y a plus de connexions de ce client vers l'adresse IP virtuelle, l'entrée de persistance commence le compte à rebours du temporisateur spécifié dans la valeur « Délai d'expiration de l'entrée de persistance ». Si aucune nouvelle connexion de ce client vers l'adresse IP virtuelle n'est effectuée avant l'expiration du temporisateur, l'entrée de persistance de l'adresse IP de ce client est supprimée. Si ce client revient après la suppression de l'entrée, la charge est équilibrée à nouveau sur un membre du pool en fonction de l'algorithme d'équilibrage de charge.
    Mise en miroir de la persistance HA Faites basculer ce bouton pour synchroniser les entrées de persistance avec l'homologue HA.
    Balises Entrez des balises pour faciliter la recherche.

    Vous pouvez spécifier une balise pour définir son étendue.