Persistenzeinstellungen

Sie müssen die Persistenz auf einem virtuellen Server konfigurieren, wenn Sie die Zustände der Verbindungen auf den Servern beibehalten möchten, die von diesem virtuellen Server dargestellt werden (z. B. Verbindungen, die im E-Commerce verwendet werden). Die Appliance verwendet dann die konfigurierte Lastausgleichsmethode für die erste Auswahl eines Servers, leitet jedoch alle nachfolgenden Anforderungen vom selben Client an denselben Server weiter.

Wenn die Persistenz konfiguriert ist, überschreibt sie die Lastausgleichsmethoden, sobald der Server ausgewählt wurde. Wenn die konfigurierte Persistenz für einen ausgefallenen Dienst gilt, verwendet die Appliance die Lastausgleichsmethoden, um einen neuen Dienst auszuwählen, und der neue Dienst wird für nachfolgende Anforderungen vom Client dauerhaft. Wenn sich der ausgewählte Dienst im Status Nicht verfügbar befindet, werden die ausstehenden Anforderungen weiterhin bedient, aber keine neuen Anforderungen oder Verbindungen akzeptiert. Nach Ablauf der Abschaltperiode werden die vorhandenen Verbindungen geschlossen. In der folgenden Tabelle sind die Persistenzarten aufgeführt, die Sie konfigurieren können.

Persistenztyp Persistente Verbindungen
Quell-IP, SSL-Sitzungs-ID, Regel, DESTIP, SRCIPDESTIP 250K
CookieInsert, URL passiv, Benutzerdefinierte Server-ID Speicherbegrenzung. Im Falle von CookieInsert, wenn Timeout nicht 0 ist, ist eine beliebige Anzahl von Verbindungen erlaubt, bis sie durch den Speicher begrenzt sind.

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 je nach Persistenztyp für einen konfigurierten Zeitraum beibehalten. 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-Sitzungs-ID NEIN JA NEIN NEIN JA
URL Passiv JA JA NEIN NEIN NEIN
Benutzerdefinierte Server-ID JA JA NEIN NEIN NEIN
Regel JA JA NEIN NEIN NEIN
SRCIPDESTIP Nicht zutreffend Nicht zutreffend JA JA Nicht zutreffend
DESTIP Nicht zutreffend Nicht zutreffend JA JA Nicht zutreffend

Tabelle 2. Persistenztypen, die für jeden virtuellen Servertyp 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 erhält. Wenn die konfigurierte Zeit für die Persistenz vergeht, 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 der Persistenz basierend auf Cookies

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

Die Citrix ADC Appliance fügt das Cookie ein: <NSC_XXXX>=<ServiceIP> <ServicePort>

Wobei:

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

Der ADC verschlüsselt ServiceIP und ServicePort, wenn er ein Cookie einfügt, und entschlüsselt sie, wenn er ein Cookie erhält.

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

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

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

  • Wenn HTTP-Cookie Version 0 verwendet wird, fügt die Citrix ADC Appliance die absolute koordinierte Weltzeit (GMT) des Ablaufdatums des Cookies (das expires Attribut des HTTP-Cookies) ein, berechnet als Summe der aktuellen GMT-Zeit auf einer ADC-Appliance und der Timeout-Wert.
  • 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 Client-Software die tatsächliche Ablaufzeit.

Hinweis: Die meisten derzeit installierten Client-Software (Microsoft Internet Explorer und Netscape-Browser) verstehen HTTP-Cookie Version 0; einige HTTP-Proxys verstehen jedoch HTTP-Cookie Version 1.

Wenn Sie den Timeout-Wert auf 0 festlegen, gibt die ADC-Appliance unabhängig von der verwendeten HTTP-Cookie-Version die Ablaufzeit nicht 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;

set ns param [-cookieversion ( 0 | 1 )]

Beispiel:

set ns param -cookieversion 1
  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: Hinweise zu den Parametern finden Sie unter Konfigurieren der Persistenz basierend auf Cookies.

So konfigurieren Sie die Persistenz basierend auf Cookies mithilfe der CLI

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

set lb vserver <name> -persistenceType COOKIEINSERT

show lb vserver <name>

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

So konfigurieren Sie die Persistenz basierend auf Cookies mithilfe der 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 Zeitüberschreitungswert 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 Citrix ADC Appliance kann die Persistenz basierend auf den Server-IDs in den URLs aufrechterhalten. In einer Technik namens URL passive Persistenz 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 ein Port, der als hexadezimale Zahl angegeben wird. 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 Hinweise zu Ausdrücken finden Sie unterRichtlinienkonfiguration und -referenz.

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

Beispiel: Payload-Ausdruck

Der Ausdruck URLQUERY contains sid= konfiguriert das System so, dass die Server-ID aus der URL-Abfrage einer Clientanforderung nach dem passenden Token sid= extrahiert wird. Somithttp://www.citrix.com/index.asp?\&sid;=c0a864100050 wird eine Anfrage mit der URL an den Server mit der IP-Adresse10.102.29.10 und Port 80.

Der Timeout-Wert hat keinen Einfluss auf diese Art der Persistenz, 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: Hinweise zu den Parametern finden Sie unter Lastausgleich.

So konfigurieren Sie die Persistenz basierend auf Server-IDs in URLs mithilfe der Befehlszeilenschnittstelle

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>

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

So konfigurieren Sie die Persistenz basierend auf Server-IDs in URLs mithilfe der 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 Zeitüberschreitungswert ein (z. B. 2).
  5. Geben Sie im Textfeld Regel einen gültigen Ausdruck ein. Alternativ klicken Sie 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.