ADC

Persistenzeinstellungen

Sie müssen die Persistenz auf einem virtuellen Server konfigurieren, wenn Sie den Status der Verbindungen auf den Servern beibehalten möchten, die durch diesen virtuellen Server dargestellt werden (z. B. Verbindungen, die im E-Commerce verwendet werden). Die Appliance verwendet dann die konfigurierte Load-Balancing-Methode für die anfängliche Auswahl eines Servers, leitet jedoch alle nachfolgenden Anforderungen von demselben Client an denselben Server weiter.

Wenn Persistenz konfiguriert ist, überschreibt sie die Lastausgleichsmethoden, sobald der Server ausgewählt wurde. Wenn die konfigurierte Persistenz für einen Dienst gilt, der nicht verfügbar ist, verwendet die Appliance die Lastausgleichsmethoden, um einen neuen Dienst auszuwählen, und der neue Dienst wird für nachfolgende Anforderungen vom Client persistent. Wenn sich der ausgewählte Dienst im Status “Nicht in Betrieb” befindet, bedient er weiterhin die ausstehenden Anforderungen, akzeptiert jedoch keine neuen Anforderungen oder Verbindungen. Nach Ablauf der Shutdown-Phase werden die bestehenden Verbindungen geschlossen. In der folgenden Tabelle sind die Persistenztypen aufgeführt, die Sie konfigurieren können.

Persistenz-Typ Persistente Verbindungen
Quell-IP, SSL-Sitzungs-ID, Regel, DESTIP, SRCIPDESTIP 250K*
CookieInsert, URL passiv, benutzerdefinierte Server-ID Speicherbegrenzung. Wenn im Falle von CookieInsert das Timeout nicht 0 ist, ist eine beliebige Anzahl von Verbindungen zulässig, bis es durch den Speicher begrenzt ist.

* in der obigen Tabelle angegebene bezieht sich auf Folgendes:

250.000 Sitzungen pro Core ist die Standardeinstellung pro Paket-Engine. Führen Sie den folgenden Befehl aus, um 1 Million Sitzungseinträge pro Packet Engine zu konfigurieren:

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

Führen Sie für ein 3-PE-System den folgenden Befehl aus:

set lb parameter -sessionsthreshold 3000000

Tabelle 1. Einschränkungen bei der Anzahl gleichzeitiger persistenter Verbindungen

Wenn die konfigurierte Persistenz aufgrund fehlender Ressourcen auf einer Appliance nicht aufrechterhalten werden kann, werden die Lastausgleichsmethoden für die Serverauswahl verwendet. Die Persistenz wird für einen konfigurierten Zeitraum aufrechterhalten, abhängig vom Persistenztyp. Einige Persistenztypen sind spezifisch für bestimmte virtuelle Server. Die folgende Tabelle zeigt die Beziehung.

Persistence TypeHeader 1 HTTP HTTPS TCP UDP/IP SSL_Bridge
Quell-IP JA JA JA JA JA
CookieInsert JA JA NEIN NEIN NEIN
SSL-Sitzung ID NEIN JA NEIN NEIN JA
URL Passive JA JA NEIN NEIN NEIN
Benutzerdefinierte Server-ID JA JA NEIN NEIN NEIN
Regel JA JA NEIN NEIN NEIN
SRCIPDESTIP JA JA
DESTIP JA JA

Tabelle 2. Persistenztypen, die für jeden Typ von virtuellem Server verfügbar sind

Sie können auch Persistenz für eine Gruppe virtueller Server angeben. Wenn Sie die Persistenz für die Gruppe aktivieren, werden die Clientanforderungen an denselben ausgewählten Server weitergeleitet, unabhängig davon, welcher virtuelle Server in der Gruppe die Clientanforderung empfängt. Wenn die konfigurierte Zeit für die Persistenz abgelaufen ist, kann jeder virtuelle Server in der Gruppe für eingehende Clientanforderungen ausgewählt werden.

Zwei häufig verwendete Persistenztypen sind Persistenz basierend auf Cookies und Persistenz basierend auf Server-IDs in URLs.

Konfigurieren Sie die Persistenz basierend auf Cookies

Wenn Sie die auf Cookies basierende Persistenz aktivieren, fügt die NetScaler-Appliance dem Set-Cookie-Header-Feld der HTTP-Antwort ein HTTP-Cookie hinzu. Das Cookie enthält Informationen über den Dienst, an den die HTTP-Anfragen gesendet werden müssen. Der Kunde speichert das Cookie und schließt es in alle nachfolgenden Anfragen ein, und der ADC verwendet es, um den Dienst für diese Anfragen auszuwählen. Sie können diese Art der Persistenz auf virtuellen Servern vom Typ HTTP oder HTTPS verwenden.

Die NetScaler Appliance fügt das Cookie <NSC_XXXX>= <ServiceIP> <ServicePort> ein

Wobei:

  • <NSC_XXXX> ist die virtuelle Server-ID, die vom Namen des virtuellen Servers abgeleitet wird.
  • <ServiceIP> ist der hexadezimale Wert der Service-IP-Adresse.
  • <ServicePort> ist der hexadezimale Wert des Serviceports.

Wenn die Option useEncryptedPersistenceCookie aktiviert ist, verschlüsselt der ADC ServiceIP und ServicePort über den SHA2-Hash-Algorithmus, wenn er ein Cookie einfügt, und entschlüsselt, wenn er ein Cookie empfängt.

Hinweis: Wenn der Client das HTTP-Cookie nicht speichern darf, haben die nachfolgenden Anforderungen nicht das HTTP-Cookie, und die Persistenz wird nicht berücksichtigt.

Standardmäßig sendet die ADC-Appliance das HTTP-Cookie Version 0 gemäß der Netscape-Spezifikation. Es kann auch Version 1 senden, in Übereinstimmung mit RFC 2109.

Sie können einen Timeoutwert für Persistenz konfigurieren, der auf HTTP-Cookies basiert. Beachten Sie Folgendes:

  • Wenn die HTTP-Cookie-Version 0 verwendet wird, fügt die NetScaler-Appliance die absolute koordinierte Weltzeit (GMT) des Ablaufs des Cookie (das Expires-Attribut des HTTP-Cookies) ein, berechnet als Summe der aktuellen GMT-Zeit auf einer ADC-Appliance und des Timeout-Werts.
  • Wenn ein HTTP-Cookie Version 1 verwendet wird, fügt die ADC-Appliance eine relative Ablaufzeit ein (Max-Age-Attribut des HTTP-Cookies). In diesem Fall berechnet die Clientsoftware die tatsächliche Ablaufzeit.

Hinweis: Die meisten derzeit installierten Clientsoftware (Microsoft Internet Explorer und Netscape-Browser) verstehen die HTTP-Cookie-Version 0. Einige HTTP-Proxys verstehen jedoch die HTTP-Cookie-Version 1.

Wenn Sie den Timeout-Wert auf 0 festlegen, gibt die ADC Appliance unabhängig von der verwendeten HTTP-Cookie-Version keine Ablaufzeit an. Die Ablaufzeit hängt dann von der Client-Software ab, und solche Cookies sind nicht gültig, wenn diese Software heruntergefahren wird. Dieser Persistenztyp verbraucht keine Systemressourcen. Daher kann es eine unbegrenzte Anzahl von persistenten Clients aufnehmen.

Ein Administrator kann die HTTP-Cookie-Version ändern.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

set ns param -cookieversion 1
<!--NeedCopy-->
  1. Navigieren Sie zu System > Einstellungen.
  2. Klicken Sie im Detailbereich auf HTTP-Parameter ändern.
  3. Wählen Sie im Dialogfeld HTTP-Parameter konfigurieren unter Cookie die Option Version 0 oder Version 1.

Hinweis: Informationen zu den Parametern finden Sie unter Konfigurieren der Persistenz basierend auf Cookies.

So konfigurieren Sie die Persistenz basierend auf Cookies über die CLI

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die auf Cookies basierende Persistenz zu konfigurieren und die Konfiguration zu überprüfen:

set lb vserver <name> -persistenceType COOKIEINSERT

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

Beispiel:

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-->

So konfigurieren Sie Persistenz basierend auf Cookies über die GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Wählen Sie im Detailbereich den virtuellen Server aus, für den Sie die Persistenz konfigurieren möchten (z. B. vServer-LB-1), und klicken Sie dann auf Öffnen.
  3. Wählen Sie im Dialogfeld “Virtuellen Server konfigurieren (Load Balancing)” auf der Registerkarte “Methode und Persistenz” in der Liste “Persistenz” die Option COOKIEINSERT aus.
  4. Geben Sie im Textfeld Timeout (min) den Timeoutwert ein (z. B. 2).
  5. Klicken Sie auf OK.
  6. Stellen Sie sicher, dass der virtuelle Server, für den Sie die Persistenz konfiguriert haben, korrekt konfiguriert ist, indem Sie den virtuellen Server auswählen und den Abschnitt Details unten im Bereich anzeigen.

Konfigurieren der Persistenz basierend auf Server-IDs in URLs

Die NetScaler-Appliance kann die Persistenz auf der Grundlage der Server-IDs in den URLs aufrechterhalten. In einer Technik, die als passive URL-Persistenz bezeichnet wird, extrahiert der ADC die Server-ID aus der Serverantwort und bettet sie in die URL-Abfrage der Clientanforderung ein. Die Server-ID ist eine IP-Adresse und der als Hexadezimalzahl angegebene Port. Der ADC extrahiert die Server-ID aus nachfolgenden Clientanforderungen und verwendet sie, um den Server auszuwählen.

Die passive URL-Persistenz erfordert die Konfiguration eines Payload-Ausdrucks oder eines Richtlinieninfrastrukturausdrucks, der den Speicherort der Server-ID in den Clientanforderungen angibt. Weitere Informationen zu Ausdrücken finden Sie unter Richtlinienkonfiguration und Referenz.

Hinweis: Wenn die Server-ID nicht aus den Clientanforderungen extrahiert werden kann, basiert die Serverauswahl auf der Load Balancing-Methode.

Beispiel: Payload Expression

Der Ausdruck URLQUERY enthält sid= konfiguriert das System, um die Server-ID aus der URL-Abfrage einer Clientanforderung zu extrahieren, nachdem das Token sid= abgeglichen wurde. Somit wird eine Anfrage mit der URL http://www.citrix.com/index.asp?\&sid;=c0a864100050 an den Server mit der IP-Adresse 10.102.29.10 und Port 80 gerichtet.

Der Timeoutwert wirkt sich nicht auf diese Art der Persistenz aus, die beibehalten wird, solange die Server-ID aus den Clientanforderungen extrahiert werden kann. Dieser Persistenztyp verbraucht keine Systemressourcen, so dass er eine unbegrenzte Anzahl von persistenten Clients aufnehmen kann.

Hinweis: Informationen zu den Parametern finden Sie unter Load Balancing.

So konfigurieren Sie die Persistenz basierend auf Server-IDs in URLs über die Befehlszeile

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die Persistenz basierend auf Server-IDs in URLs zu konfigurieren und die Konfiguration zu überprüfen:

set lb vserver <name> -persistenceType URLPASSIVE

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

Beispiel:

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-->

So konfigurieren Sie Persistenz basierend auf Server-IDs in URLs über die GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Wählen Sie im Detailbereich den virtuellen Server aus, für den Sie die Persistenz konfigurieren möchten (z. B. vServer-LB-1), und klicken Sie dann auf Öffnen.
  3. Wählen Sie im Dialogfeld “Virtuellen Server konfigurieren (Load Balancing)” auf der Registerkarte “Methode und Persistenz” in der Liste “Persistenz” die Option URLPASSIVE aus.
  4. Geben Sie im Textfeld Timeout (min) den Timeoutwert ein (z. B. 2).
  5. Geben Sie im Textfeld Regel einen gültigen Ausdruck ein. Klicken Sie alternativ neben dem Textfeld Regel auf Konfigurieren und verwenden Sie das Dialogfeld “Ausdruck erstellen”, um einen Ausdruck zu erstellen.
  6. Klicken Sie auf OK.
  7. Stellen Sie sicher, dass der virtuelle Server, für den Sie die Persistenz konfiguriert haben, korrekt konfiguriert ist, indem Sie den virtuellen Server auswählen und den Abschnitt Details unten im Bereich anzeigen.
Persistenzeinstellungen