ADC

Persistenz von HTTP-Cookies

Wenn die HTTP-Cookie-Persistenz konfiguriert ist, setzt die NetScaler-Appliance ein Cookie in den HTTP-Headern der ersten Client-Anfrage. Das Cookie enthält die IP-Adresse und den Port des Dienstes, der vom Load-Balancing-Algorithmus ausgewählt wurde. Wie bei jeder HTTP-Verbindung schließt der Client dieses Cookie dann bei allen nachfolgenden Anfragen ein.

Wenn die NetScaler-Appliance das Cookie erkennt, leitet sie die Anfrage an die Dienst-IP und den Port im Cookie weiter und sorgt so für die Persistenz der Verbindung. Sie können diese Art der Persistenz mit virtuellen Servern vom Typ HTTP oder HTTPS verwenden. Dieser Persistenztyp verbraucht keine Appliance-Ressourcen und kann daher eine unbegrenzte Anzahl persistenter Clients aufnehmen.

Hinweis: Wenn der Webbrowser des Clients so konfiguriert ist, dass er Cookies ablehnt, funktioniert die auf HTTP-Cookie basierende Persistenz nicht. Es kann ratsam sein, einen Cookie-Check auf der Website zu konfigurieren und Kunden, die Cookies anscheinend nicht ordnungsgemäß speichern, zu warnen, dass sie Cookies für die Website aktivieren müssen, wenn sie sie verwenden möchten.

Das Cookie-Format, das von der NetScaler Appliance eingefügt wird, lautet:

NSC_XXXX=<ServiceIP ><ServicePort>

Ort:

  • NSC_XXXX ist die virtuelle Server-ID, die vom Namen des virtuellen Servers abgeleitet wird.
  • ServiceIP und ServicePort sind codierte Repräsentationen der Dienst-IP-Adresse bzw. des Serviceports. Die IP-Adresse und der Port werden separat codiert.

Sie können einen Timeoutwert für diesen Persistenztyp festlegen, um einen Inaktivitätszeitraum für die Sitzung anzugeben. Wenn die Verbindung für den angegebenen Zeitraum inaktiv war, verwirft die NetScaler Appliance die Persistenzsitzung. Jede nachfolgende Verbindung von demselben Client führt dazu, dass ein neuer Server basierend auf der konfigurierten Lastausgleichsmethode ausgewählt wird und eine neue Persistenzsitzung eingerichtet wird.

Hinweis: Wenn Sie den Timeout-Wert auf 0 setzen, gibt die NetScaler-Appliance keine Ablaufzeit an, sondern setzt ein Sitzungscookie, das nicht gespeichert wird, wenn der Browser des Clients heruntergefahren wird.

Standardmäßig setzt die NetScaler-Appliance HTTP-Cookies der Version 0, um maximale Kompatibilität mit Clientbrowsern zu gewährleisten. (Nur bestimmte HTTP-Proxys verstehen die Cookies der Version 1, die am häufigsten verwendeten Browser nicht.) Sie können die Appliance so konfigurieren, dass sie HTTP-Version 1-Cookies setzt, um RFC2109 zu entsprechen. Bei HTTP-Cookies der Version 0 fügt die Appliance das Ablaufdatum und die Uhrzeit des Cookies als absolute koordinierte Weltzeit (GMT) ein. Dieser Wert wird als Summe der aktuellen GMT-Zeit auf der Appliance und des Timeout-Werts berechnet. Für HTTP-Version 1-Cookies fügt die Appliance eine relative Ablaufzeit ein, indem sie das „Max-Age“ -Attribut des HTTP-Cookies festlegt. In diesem Fall berechnet der Browser des Clients die tatsächliche Ablaufzeit.

Informationen zum Konfigurieren der Persistenz basierend auf einem von der Appliance eingefügten Cookie finden Sie unter Konfigurieren von Persistenztypen, die keine Regel erfordern.

Im HTTP-Cookie legt die Appliance standardmäßig das HTTPOnly Flag fest, um anzuzeigen, dass das Cookie nicht skriptfähig ist und der Clientanwendung nicht bekannt gegeben werden darf. Daher kann ein clientseitiges Skript nicht auf das Cookie zugreifen, und der Client ist nicht anfällig für siteübergreifende Skripterstellung.

Bestimmte Browser unterstützen das HTTPOnly Flag jedoch nicht und geben das Cookie daher möglicherweise nicht zurück. Infolgedessen ist die Beharrlichkeit gebrochen. Für Browser, die das Flag nicht unterstützen, können Sie das HTTPOnly Flag im Persistenz-Cookie weglassen.

So ändern Sie die HTTPOnly Flag-Einstellung mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb parameter -httpOnlyCookieFlag (ENABLED|DISABLED)
<!--NeedCopy-->

Beispiel:

>  set lb parameter -httpOnlyCookieFlag disabled
   Done
> show lb parameter
  Global LB parameters:
       Persistence Cookie HttpOnly Flag: DISABLED
       Use port for hash LB: YES
 Done
<!--NeedCopy-->

So ändern Sie die HTTPOnly Flag-Einstellung mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Load Balancing Parameter konfigurieren, und wählen oder deaktivieren Sie das Flag “ Persistenz-Cookie HttpOnly”.

Verschlüsseln des Cookies

Ab Version 10.5 Build 55.8 können Sie das Cookie zusätzlich zu jeder beliebigen SSL-Verschlüsselung verschlüsseln.

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
<!--NeedCopy-->
  1. Navigieren Sie zuTraffic Management>Load Balancing-Parameter ändern, wählen Sie „Verschlüsseln von Persistenz-Cookie-Werten“ und geben Sie eine Passphrase in das Feld Cookie-Passphraseein.
Persistenz von HTTP-Cookies