Zur Gewährleistung der Stabilität von statusbehafteten Anwendungen implementieren Load Balancer Persistenz, die alle zugehörigen Verbindungen an denselben Server weiterleitet. Es werden verschiedene Arten von Persistenz unterstützt, um die unterschiedlichen Anwendungsanforderungen zu erfüllen.

Einige Anwendungen verwalten den Serverstatus, z. B. Einkaufswagen. Dieser Status kann pro Client gelten und anhand der Client-IP-Adresse oder über die HTTP-Sitzung ermittelt werden. Anwendungen können während der Verarbeitung nachfolgender zugehöriger Verbindungen von demselben Client oder derselben HTTP-Sitzung auf diesen Status zugreifen oder ihn ändern.

Das Quell-IP-Persistenzprofil verfolgt Sitzungen basierend auf der Quell-IP-Adresse. Wenn ein Client eine Verbindung mit einem virtuellen Server anfordert, der die Persistenz der Quelladresse ermöglicht, überprüft der Load Balancer, ob dieser Client zuvor verbunden war. Wenn dies der Fall ist, gibt er den Client an denselben Server zurück. Andernfalls wählt der Load Balancer das Mitglied des Serverpools basierend auf dem Load Balancing-Algorithmus des Pools aus. Das Quell-IP-Persistenzprofil wird von virtuellen Servern der Schichten 4 und 7 verwendet.

Wenn Regelpersistenz, Cookie-Persistenz und Server-Keep-Alive alle konfiguriert sind, folgt der Load Balancer der Priorität von Regelpersistenz > Cookie-Persistenz > Server-Keep-Alive.

Das Cookie-Persistenzprofil bietet 3 Modi:
  • Einfügen: Der Load Balancer fügt sein eigenes Cookie mit den Informationen zum Poolmitglied (verschlüsselt oder nicht) in der Serverantwort an den Client ein. Die empfangenen Cookies werden durch den Client in nachfolgenden Anforderungen weitergeleitet (außer NSX-Cookies) und der Load Balancer verwendet diese Informationen zur Bereitstellung der Poolmitglied-Persistenz. Das NSX-Cookie wird aus der Clientanforderung beim Absenden an das Poolmitglied gekürzt.
  • Cookie-Präfix: Der Load Balancer hängt die Informationen zum Poolmitglied (verschlüsselt oder nicht) an die Serverantwort an den Client an. Das empfangene HTTP-Cookie wird durch den Client in nachfolgenden Anforderungen weitergeleitet (mit den vorangestellten NSX-Informationen) und der Load Balancer verwendet diese Informationen zur Bereitstellung der Poolmitglied-Persistenz. Das Präfix des NSX-Cookies wird von der Clientanforderung beim Absenden an das Poolmitglied gekürzt.
  • Umschreiben: Der Load Balancer ersetzt den Wert des Servercookies durch die Informationen zum Poolmitglied (verschlüsselt oder nicht) in der Serverantwort an den Client. Das empfangene HTTP-Cookie wird durch den Client in nachfolgenden Anforderungen weitergeleitet (mit den vorangestellten NSX-Informationen) und der Load Balancer verwendet diese Informationen zur Bereitstellung der Poolmitglied-Persistenz. Das ursprüngliche Servercookie wird in der Clientanforderung beim Absenden an das Poolmitglied ersetzt.
Cookiepersistenz ist nur auf virtuellen L7-Servern verfügbar. Beachten Sie, dass ein Leerzeichen in einem Cookienamen nicht unterstützt wird.

Das generische Persistenzprofil unterstützt die Persistenz basierend auf dem HTTP-Header, Cookie oder der URL in der HTTP-Anforderung. Aus diesem Grund unterstützt es die Persistenz von Anwendungssitzungen, wenn die Sitzungs-ID Teil der URL ist. Dieses Profil ist nicht direkt mit einem virtuellen Server verknüpft. Geben Sie dieses Profil an, wenn Sie eine Load Balancer-Regel für die Anforderungsweiterleitung und die Umschreibung der Antwort konfigurieren.

Ein Diagramm eines generischen Persistenzprofils.

Prozedur

  1. Melden Sie sich in Ihrem Browser mit Administratorrechten bei einem NSX Manager unter https://<nsx-manager-ip-address> an.
  2. Wählen Sie Netzwerk > Load Balancing > Profile > Persistenz > Persistenzprofil hinzufügen aus.
  3. Wählen Sie Quell-IP aus, um ein Quell-IP-Persistenzprofil hinzuzufügen und geben Sie die Profildetails ein.
    Sie können auch die Standardeinstellungen des Quell-IP-Profils übernehmen.
    Option Beschreibung
    Name und Beschreibung Geben Sie einen Namen und eine Beschreibung für das Quell-IP-Persistenzprofil ein.
    Persistenz freigeben Schalten Sie die Schaltfläche um, um die Persistenz freizugeben, sodass alle virtuellen Server, denen dieses Profil zugewiesen ist, die Persistenztabelle gemeinsam nutzen können.

    Wenn die Persistenzfreigabe in dem Quell-IP-Persistenzprofil, das einem virtuellen Server zugeordnet ist, nicht aktiviert ist, verwaltet jeder virtuelle Server, dem das Profil zugeordnet wird, eine private Persistenztabelle.

    Zeitüberschreitung für Persistenzeintrag Geben Sie den Zeitraum für die Persistenz bis zum Ablauf in Sekunden ein.

    Die Persistenztabelle des Load Balancers enthält Einträge, die die Weiterleitung von Clientanforderungen an denselben Server aufzeichnen.

    Bei der allerersten Verbindung von einer neuen Client-IP erfolgt ein Lastausgleich mit einem Poolmitglied. NSX speichert diesen Persistenzeintrag in der LB-Persistenztabelle, die auf dem Edge-Knoten, der den aktiven T1-LB hostet, mit folgendem CLI-Befehl angezeigt werden kann: get load-balancer <LB-UUID> persistence-tables.

    • Wenn Verbindungen von diesem Client mit der VIP vorhanden sind, wird der Persistenzeintrag beibehalten.
    • Wenn keine Verbindungen mehr zwischen diesem Client und der VIP vorhanden sind, wird der Timer für den Persistenzeintrag gemäß dem Wert unter „Zeitüberschreitung für Persistenzeintrag“ heruntergezählt. Wenn vor dem Ablaufen des Timers keine neue Verbindung zwischen diesem Client und der VIP hergestellt wird, wird der Persistenzeintrag für diese Client-IP gelöscht. Wenn der Client nach dem Löschen des Eintrags wieder aktiv wird, erfolgt erneut ein Lastausgleich mit einem Poolmitglied gemäß dem Lastausgleichsalgorithmus.
    Bei voller Tabelle Einträge löschen

    Ein hoher Wert für die Zeitüberschreitung führt möglicherweise dazu, dass die Persistenztabelle sich schnell füllt, wenn der Datenverkehr hoch ist. Wenn diese Option aktiviert ist, wird für den aktuellen Eintrag der älteste Eintrag gelöscht.

    Wenn diese Option deaktiviert und die Quell-IP-Persistenztabelle voll ist, werden neue Clientverbindungen abgelehnt.

    HA-Persistenzspiegelung Schalten Sie die Schaltfläche um, um Persistenzeinträge mit dem HA-Peer zu synchronisieren. Wenn die HA-Persistenzspiegelung aktiviert ist, bleibt die Client-IP-Persistenz im Falle eines Failover-Vorgangs für den Load Balancer bestehen.
    Tags Geben Sie Tags ein, um die Suche zu vereinfachen.

    Sie können ein Tag angeben, um einen Geltungsbereich des Tags festzulegen.

  4. Wählen Sie ein Cookie-Persistenzprofil und geben Sie die Profildetails ein. Cookiepersistenz ist nur auf virtuellen L7-Servern verfügbar. Beachten Sie, dass ein Leerzeichen in einem Cookienamen nicht unterstützt wird.
    Option Beschreibung
    Name und Beschreibung Geben Sie einen Namen und eine Beschreibung für das Cookie-Persistenzprofil ein.
    Persistenz freigeben Schalten Sie die Schaltfläche um, Persistenz für mehrere virtuelle Server freizugeben, die denselben Poolmitgliedern zugeordnet sind.

    Das Cookie-Persistenzprofil fügt ein Cookie mit dem Format <name>.<profile-id>.<pool-id> ein.

    Wenn die freigegebene Persistenz in dem einem virtuellen Server zugeordneten Cookie-Persistenzprofil nicht aktiviert ist, wird für jeden virtuellen Server die private Cookie-Persistenz verwendet und durch das Poolmitglied qualifiziert. Der Load Balancer fügt ein Cookie mit dem Format <name>.<virtual_server_id>.<pool_id> ein.

    Cookiemodus Wählen Sie im Dropdown-Menü einen Modus aus.
    • EINFÜGEN – Fügt ein eindeutiges Cookie zur Identifizierung der Sitzung hinzu.
    • PRÄFIX – Wird an die vorhandenen HTTP-Cookie-Informationen angefügt.
    • UMSCHREIBEN – Schreibt die vorhandenen HTTP-Cookie-Informationen um.
    Cookiename Geben Sie den Cookienamen ein. Ein Leerzeichen wird in einem Cookienamen nicht unterstützt.
    Cookiedomäne Geben Sie den Domänennamen ein.

    Die HTTP-Cookiedomäne kann nur im Modus EINFÜGEN konfiguriert werden.

    Cookie-Fallback Schalten Sie die Schaltfläche um, sodass die Clientanforderung abgelehnt wird, wenn ein Cookie auf einen Server verweist, der sich im Status DEAKTIVIERT oder INAKTIV befindet.

    Wählt einen neuen Server für die Verarbeitung einer Clientanforderung aus, wenn das Cookie auf einen Server verweist, der sich im Status DEAKTIVIERT oder INAKTIV befindet.

    Cookiepfad Geben Sie den URL-Pfad des Cookies ein.

    Der HTTP-Cookiepfad kann nur im Modus EINFÜGEN festgelegt werden.

    Cookieverschlüsselung Schalten Sie die Schaltfläche um, um die Verschlüsselung zu deaktivieren.

    Wenn die Verschlüsselung deaktiviert ist, liegen die Informationen zu IP-Adresse und Port des Cookieservers unverschlüsselt vor. Verschlüsseln Sie die Informationen zu IP-Adresse und Port des Cookieservers.

    Cookie-Typ Wählen Sie im Dropdown-Menü einen Cookietyp aus.

    Sitzungs-Cookie – nicht gespeichert. Geht verloren, wenn der Browser geschlossen wird.

    Persistenz-Cookie – wird vom Browser gespeichert. Geht nicht verloren, wenn der Browser geschlossen wird.

    HttpOnly-Flag Wenn diese Option aktiviert ist, wird der Zugriff auf Cookies durch ein im Browser ausgeführtes Skript verhindert.

    Das HttpOnly-Flag ist nur im Modus EINFÜGEN verfügbar.

    Secure-Flag Wenn diese Option aktiviert ist, können Webbrowser Cookies nur über HTTPS senden.

    Das Secure-Flag ist nur im Modus EINFÜGEN verfügbar.

    Maximale Leerlaufzeit Geben Sie die Zeit in Sekunden ein, in der der Cookietyp im Leerlauf verweilen kann, bevor ein Cookie abläuft.
    Maximales Cookie-Alter Geben Sie für Sitzungscookies die Zeit in Sekunden ein, die ein Cookie verfügbar ist.
    Tags Geben Sie Tags ein, um die Suche zu vereinfachen.

    Sie können ein Tag angeben, um einen Geltungsbereich des Tags festzulegen.

  5. Wählen Sie Generisch aus, um ein generisches Persistenzprofil hinzuzufügen und geben Sie die Profildetails ein.
    Option Beschreibung
    Name und Beschreibung Geben Sie einen Namen und eine Beschreibung für das Quell-IP-Persistenzprofil ein.
    Persistenz freigeben Klicken Sie auf die Schaltfläche, um das Profil auf den virtuellen Servern freizugeben.
    Zeitüberschreitung für Persistenzeintrag Geben Sie den Zeitraum für die Persistenz bis zum Ablauf in Sekunden ein.

    Die Persistenztabelle des Load Balancers enthält Einträge, die die Weiterleitung von Clientanforderungen an denselben Server aufzeichnen.

    Bei der allerersten Verbindung von einer neuen Client-IP erfolgt ein Lastausgleich mit einem Poolmitglied. NSX speichert diesen Persistenzeintrag in der LB-Persistenztabelle, die auf dem Edge-Knoten, der den aktiven T1-LB hostet, mit folgendem CLI-Befehl angezeigt werden kann: get load-balancer <LB-UUID> persistence-tables.

    • Wenn Verbindungen von diesem Client mit der VIP vorhanden sind, wird der Persistenzeintrag beibehalten.
    • Wenn keine Verbindungen mehr zwischen diesem Client und der VIP vorhanden sind, wird der Timer für den Persistenzeintrag gemäß dem Wert unter „Zeitüberschreitung für Persistenzeintrag“ heruntergezählt. Wenn vor dem Ablaufen des Timers keine neue Verbindung zwischen diesem Client und der VIP hergestellt wird, wird der Persistenzeintrag für diese Client-IP gelöscht. Wenn der Client nach dem Löschen des Eintrags wieder aktiv wird, erfolgt erneut ein Lastausgleich mit einem Poolmitglied gemäß dem Lastausgleichsalgorithmus.
    HA-Persistenzspiegelung Schalten Sie die Schaltfläche um, um Persistenzeinträge mit dem HA-Peer zu synchronisieren.
    Tags Geben Sie Tags ein, um die Suche zu vereinfachen.

    Sie können ein Tag angeben, um einen Geltungsbereich des Tags festzulegen.