Citrix ADC

HTTP-Cookie-Persistenz

Wenn die Persistenz von HTTP-Cookies konfiguriert ist, setzt die Citrix ADC Appliance ein Cookie in den HTTP-Headern der anfänglichen Clientanforderung. Das Cookie enthält die IP-Adresse und den Port des vom Lastausgleichsalgorithmus ausgewählten Dienstes. Wie bei jeder HTTP-Verbindung schließt der Client dieses Cookie dann mit allen nachfolgenden Anfragen ein.

Wenn die Citrix ADC Appliance das Cookie erkennt, leitet sie die Anforderung an die Dienst-IP und den Port im Cookie weiter, wobei die Persistenz für die Verbindung beibehalten wird. 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 Citrix ADC Appliance eingefügt wird, lautet:

NSC_XXXX=<ServiceIP ><ServicePort>

Wobei:

  • NSC_XXXX ist die virtuelle Server-ID, die vom Namen des virtuellen Servers abgeleitet wird.
  • ServiceIP und ServicePort sind codierte Darstellungen der Dienst-IP-Adresse bzw. des Dienstports. IP-Adresse und 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 Citrix ADC 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 Timeoutwert auf 0 festlegen, gibt die Citrix ADC Appliance keine Ablaufzeit an, sondern legt ein Sitzungscookie fest, das nicht gespeichert wird, wenn der Browser des Clients heruntergefahren wird.

Standardmäßig setzt die Citrix ADC Appliance HTTP-Cookies der Version 0 für maximale Kompatibilität mit Client-Browsern. (Nur bestimmte HTTP-Proxys verstehen Cookies der Version 1; am häufigsten verwendete Browser nicht.) Sie können die Appliance so konfigurieren, dass HTTP-Cookies der Version 1 eingestellt werden, um die Einhaltung von RFC2109 zu gewährleisten. Bei HTTP-Cookies der Version 0 fügt die Appliance das Ablaufdatum und die Uhrzeit des Cookies als absolute koordinierte Weltzeit (GMT) ein. Er berechnet diesen Wert als Summe der aktuellen GMT-Zeit auf der Appliance und des Timeoutwerts. Bei HTTP-Cookies der Version 1 fügt die Appliance eine relative Ablaufzeit ein, indem sie das Attribut “Max-Age” des HTTP-Cookies setzt. 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 Release 10.5 Build 55.8 können Sie das Cookie zusätzlich zu jeder SSL-Verschlüsselung verschlüsseln.

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
<!--NeedCopy-->
  1. Navigieren Sie zu Traffic Management > Lastausgleichsparameter ändern, wählen Sie Persistenz-Cookie-Werte codieren und geben Sie eine Passphrase in Cookie-Passphrase ein.
HTTP-Cookie-Persistenz