Citrix ADC

Hashing-Methoden

Load Balancing-Methoden, die auf Hashes bestimmter Verbindungsinformationen oder Header-Informationen basieren, stellen die meisten Load Balancing-Methoden der Citrix ADC Appliance dar. Hashes sind kürzer und einfacher zu verwenden als die Informationen, auf denen sie basieren, während genügend Informationen beibehalten werden, um sicherzustellen, dass keine zwei verschiedenen Informationsstücke denselben Hash generieren und daher miteinander verwechselt werden.

Sie können die Hashing-Load Balancing-Methoden in einer Umgebung verwenden, in der ein Cache eine breite Palette von Inhalten aus dem Internet oder bestimmten Ursprungsservern bereitstellt. Caching-Anforderungen reduzieren die Anforderungs- und Antwortlatenz und gewährleistet eine bessere Ressourcenauslastung (CPU), wodurch das Caching auf stark genutzten Websites und Anwendungsservern populär wird. Da diese Sites auch vom Lastenausgleich profitieren, sind Hashing-Load Balancing-Methoden sehr nützlich.

Die Citrix ADC Appliance stellt die folgenden Hashmethoden bereit:

  • URL-Hash-Methode
  • Domänen-Hash-Methode
  • Ziel-IP-Hash-Methode
  • Quell-IP-Hash-Methode
  • Quell-IP-Ziel-IP-Hash-Methode
  • Quell-IP-Quellport-Hash-Methode
  • Call ID-Hash-Methode
  • Token-Methode

Die meisten Hashing-Algorithmen berechnen zwei Hash-Werte:

  • Ein Hash der IP-Adresse und des Ports des Dienstes.
  • Ein Hash der eingehenden URL, des Domänennamens, der Quell-IP-Adresse, der Ziel-IP-Adresse oder der Quell- und Ziel-IP-Adressen, abhängig von der konfigurierten Hash-Methode.

Die Citrix ADC Appliance generiert dann einen neuen Hash-Wert, indem beide Hash-Werte verwendet werden. Schließlich leitet es die Anforderung an den Dienst mit dem höchsten Hashwert weiter. Da die Appliance für jede Anforderung einen Hashwert berechnet und den Dienst auswählt, der die Anforderung verarbeitet, füllt sie einen Cache. Nachfolgende Anforderungen mit demselben Hash-Wert werden an denselben Dienst gesendet. Das folgende Flussdiagramm veranschaulicht diesen Prozess.

Hinweis:

Ab Citrix ADC Release 13.0 Build 79.x werden konsistente Hashing-Algorithmen von Prime Re-Shuffled Assisted CARP (PRAC) und Jump Table Assisted Ring Hash (JARH) unterstützt. Die konsistenten Hashing-Algorithmen sorgen für minimale Unterbrechungen, wenn Dienste zu Ihrem Load Balancing-Setup oder während eines Service Flap-Ereignisses im Load Balancing-Setup hinzugefügt oder aus diesem gelöscht werden. Weitere Informationen finden Sie unter Konsistente Hashing-Algorithmen.

Abbildung 1. Wie die Hashing-Methoden Anforderungen verteilen

Wie die Hashing-Methode Anfragen verteilt

Hashing-Methoden können auf IPv4- und IPv6-Adressen angewendet werden.

Betrachten Sie ein Szenario, in dem drei Dienste (service-http-1, service-http-2 und service-http-3) an einen virtuellen Server gebunden sind, eine beliebige Hash-Methode konfiguriert ist und der Hash-Wert Hash1 lautet. Wenn die konfigurierten Dienste UP sind, wird die Anforderung an Service-HTTP-1 gesendet. Wenn Service-HTTP-1 heruntergefahren ist, berechnet die Citrix ADC Appliance den Hash-Wert für das letzte Protokoll der Anzahl der Dienste. Anschließend wählt die Appliance den Dienst mit dem höchsten Hash-Wert aus, z. B. Service-HTTP-2. Das folgende Diagramm veranschaulicht diesen Vorgang.

Abbildung 2. Entitätsmodell für Hashing-Methoden

Hash-Modell

Hinweis:

Wenn die Citrix ADC Appliance einen Dienst nicht mithilfe einer Hashing-Methode auswählen kann, wird standardmäßig die kleinste Verbindungsmethode verwendet, um einen Dienst für die eingehende Anforderung auszuwählen. Passen Sie Server-Pools an, indem Sie Dienste in Zeiten mit geringem Datenverkehr entfernen, damit die Caches neu aufgefüllt werden können, ohne die Leistung Ihres Lastenausgleichs-Setups zu beeinträchtigen.

Konsistente Hashing-Algorithmen

Die konsistenten Hashing-Algorithmen werden verwendet, um zustandslos Persistenz zu erreichen. Die hashbasierten LB-Methoden verwenden einen der folgenden drei konsistenten Hashing-Algorithmen:

  • Cache-Array-Routing-Protokoll (CARP)

    Der CARP-Algorithmus wird zum Lastenausgleich von HTTP-Anfragen auf mehreren Proxy-Cache-Servern verwendet. Dieser Algorithmus ist standardmäßig aktiviert.

  • Prime Re-Shuffled Assisted CARP (PRAC)

    Die Citrix ADC Appliance verwendet den proprietären PRAC-Algorithmus, um eine einheitliche Verkehrsverteilung bereitzustellen.

  • Sprungtisch Assisted Ring Hash (JARH)

    Die Citrix ADC Appliance verwendet den proprietären JARH-Algorithmus, um eine Konsistenz und einheitliche Verteilung des Datenverkehrs zu gewährleisten. Dieser Algorithmus verwendet Hash-Finger. Eine höhere Anzahl von Finger sorgt für eine bessere Verkehrsverteilung. Die Erhöhung der Anzahl der Finger erhöht jedoch auch die Speicherauslastung.

So wählen Sie den konsistenten Hashing-Algorithmus mit CLI aus

set lb parameter [-lbHashAlgorithm [DEFAULT|JARH|PRAC] [-lbHashFingers <positive_integer>]
<!--NeedCopy-->

Beispiel:

set lb parameter -lbHashAlgorithm JARH -lbHashFingers 10
<!--NeedCopy-->

ARGUMENTE:

  • lbhashalgorithm-Geben Sie den Hashing-Algorithmus an, der für die folgenden Hash-basierten Load Balancing-Methoden verwendet werden soll:

    • URL-Hash-Methode
    • Domänen-Hash-Methode
    • Ziel-IP-Hash-Methode
    • Quell-IP-Hash-Methode
    • Quell-IP-Ziel-IP-Hash-Methode
    • Quell-IP-Quellport-Hash-Methode
    • Call ID-Hash-Methode
    • Token-Methode

    Mögliche Werte: DEFAULT, PRAC, JARH Standardwert: DEFAULT

  • lbHashFingers-Geben Sie die Anzahl der Finger an, die in PRAC- und JARH-Algorithmen für hashbasierte LB-Methoden verwendet werden sollen. Die Erhöhung der Anzahl der Finger ermöglicht eine bessere Verteilung des Datenverkehrs auf Kosten des zusätzlichen Speichers.

    Standardwert: 256 Minimaler Wert: 1 Maximaler Wert: 1024

So wählen Sie den konsistenten Hashing-Algorithmus mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Load Balancing-Parameter ändern.
  2. Geben Sie im Bereich Load Balancing-Parameter konfigurieren die entsprechenden Werte für die folgenden Felder ein, basierend auf Ihrer Anforderung:

    • LB Hash Finger
    • Wählen Sie im Feld LB Hash Algorithm den konsistenten Hashing-Algorithmus aus dem Dropdownmenü aus.

    LB-Hash-Algorithmen

Die URL-Hash-Methode

Wenn Sie die Citrix ADC Appliance so konfigurieren, dass die URL-Hash-Methode für den Lastenausgleich der Dienste verwendet wird, generiert die Appliance einen Hashwert der HTTP-URL, die in der eingehenden Anforderung vorhanden ist. Wenn der durch den Hash-Wert ausgewählte Dienst DOWN ist, verfügt der Algorithmus über eine Methode, um einen anderen Dienst aus der Liste der aktiven Dienste auszuwählen. Die Appliance speichert den Hashwert der URL, und wenn sie nachfolgende Anforderungen empfängt, die dieselbe URL verwenden, leitet sie sie an denselben Dienst weiter. Wenn die Appliance eine eingehende Anforderung nicht analysieren kann, verwendet sie die Roundrobin-Methode für den Lastenausgleich anstelle der URL-Hash-Methode.

Zum Generieren des Hash-Werts verwendet die Appliance einen bestimmten Algorithmus und berücksichtigt einen Teil der URL. Standardmäßig berücksichtigt die Appliance die ersten 80 Bytes der URL. Wenn die URL kleiner als 80 Bytes ist, wird die vollständige URL verwendet. Sie können eine andere Länge angeben. Die Hash-Länge kann zwischen 1 Byte und 4096 Byte liegen. Wenn lange URLs verwendet werden, bei denen nur wenige Zeichen unterschiedlich sind, empfiehlt es sich, die Hash-Länge so hoch wie möglich zu gestalten, um eine gleichmäßigere Lastverteilung sicherzustellen.

Betrachten Sie ein Szenario, in dem drei Dienste, service-http-1, service-http-2 und service-http-3, an einen virtuellen Server gebunden sind und die auf dem virtuellen Server konfigurierte Lastausgleichsmethode die URL-Hash-Methode ist. Der virtuelle Server erhält eine Anforderung und der Hashwert der URL ist U1. Appliance wählt Service-HTTP-1 aus. Wenn Service-HTTP-1 auf DOWN festgelegt ist, wählt die Appliance Service-HTTP-2 aus.

Das folgende Diagramm veranschaulicht diesen Vorgang.

Abbildung 3. Funktionsweise von URL-Hashing

URL-Hashing

Wenn sowohl Service-HTTP-1 als auch Service-HTTP-2 DOWN sind, sendet die Appliance Anfragen mit dem Hashwert U1 an Service-HTTP-3.

Wenn Service-HTTP-1 und Service-HTTP-2 ausgefallen sind, werden Anforderungen, die den Hash-URL1 generieren, an Service-HTTP-3 gesendet. Wenn diese Dienste UP sind, werden die Anfragen, die den Hash-URL1 erzeugen, auf folgende Weise verteilt:

  • Wenn der Service-HTTP-2 hochgeladen ist, wird die Anforderung an Service-HTTP-2 gesendet.
  • Wenn der Service-HTTP-1 hochgeladen ist, wird die Anforderung an Service-HTTP-1 gesendet.
  • Wenn Service-HTTP-1 und Service-HTTP-2 gleichzeitig hochgeladen sind, wird die Anforderung an Service-HTTP-1 gesendet.

Informationen zum Konfigurieren der URL-Hash-Methode finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält. Wählen Sie die Load Balancing-Methode als URL-Hash aus, und legen Sie die Hashlänge auf die Anzahl der Bytes fest, die zum Generieren des Hash-Werts verwendet werden sollen.

Die Domain-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Domänen-Hash-Methode konfiguriert ist, verwendet den Hashwert des Domänennamens in der HTTP-Anforderung, um einen Dienst auszuwählen. Der Domänenname wird entweder von der eingehenden URL oder vom Host-Header der HTTP-Anforderung übernommen. Wenn der Domänenname sowohl in der URL als auch im Host-Header angezeigt wird, bevorzugt die Appliance die URL.

Wenn Sie Domänennamen-Hashing konfigurieren und eine eingehende HTTP-Anforderung keinen Domänennamen enthält, verwendet die Citrix ADC Appliance standardmäßig die Roundrobin-Methode für diese Anforderung.

Die Hash-Wert-Berechnung verwendet die Namenslänge oder den Hashlängenwert, je nachdem, welcher Wert kleiner ist. Standardmäßig berechnet die Citrix ADC Appliance den Hash-Wert aus den ersten 80 Byte des Domänennamens. Um bei der Berechnung des Hash-Werts eine andere Anzahl von Bytes im Domänennamen anzugeben, können Sie den Parameter hashlength (HashLength im Konfigurationsdienstprogramm) auf einen Wert von 1 bis 4096 (Byte) festlegen.

Informationen zum Konfigurieren der Domänen-Hash-Methode finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die Ziel-IP-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Ziel-IP-Hash-Methode konfiguriert ist, verwendet den Hashwert der Ziel-IP-Adresse, um einen Server auszuwählen. Sie können die Ziel-IP-Adresse maskieren, um anzugeben, welcher Teil davon in der Hashwertberechnung verwendet werden soll, sodass Anforderungen, die aus verschiedenen Netzwerken stammen, aber für dasselbe Subnetz bestimmt sind, an denselben Server weitergeleitet werden. Diese Methode unterstützt IPv4- und IPv6-basierte Zielserver.

Diese Load Balancing-Methode ist für die Verwendung mit der Cache-Umleitungsfunktion geeignet.

Um die Ziel-IP-Hash-Methode für einen IPv4-Zielserver zu konfigurieren, legen Sie den NetMask-Parameter fest. Um diese Methode für einen IPv6-Zielserver zu konfigurieren, verwenden Sie den V6NetMasklen-Parameter. Im Konfigurationsdienstprogramm werden Textfelder zum Festlegen dieser Parameter angezeigt, wenn Sie die Ziel-IP-Hash-Methodeauswählen.

Informationen zum Konfigurieren der Ziel-IP-Hash-Methode finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die Quell-IP-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Quell-IP-Hash-Methode konfiguriert ist, verwendet den Hashwert der Client-IPv4- oder IPv6-Adresse, um einen Dienst auszuwählen. Um alle Anforderungen von Quell-IP-Adressen, die zu einem bestimmten Netzwerk gehören, an einen bestimmten Zielserver zu leiten, müssen Sie die Quell-IP-Adresse maskieren. Verwenden Sie für IPv4-Adressen den NetMask -Parameter. Verwenden Sie für IPv6-Adressen den Parameter v6NetMaskLength.

Informationen zum Konfigurieren der Quell-IP-Hash-Methode finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die IP-Hash-Methode des Quell-IP-Ziels

Ein virtueller Lastausgleichsserver, der für die Verwendung der Quell-IP-Ziel-Hash-Methode konfiguriert ist, verwendet den Hashwert der Quell- und Ziel-IP-Adressen (IPv4 oder IPv6), um einen Dienst auszuwählen. Hashing ist symmetrisch. Der Hashwert ist unabhängig von der Reihenfolge der Quell- und Ziel-IPs gleich. Dadurch wird sichergestellt, dass alle Pakete, die von einem bestimmten Client zum selben Ziel fließen, an denselben Server weitergeleitet werden.

Um alle Anforderungen, die zu einem bestimmten Netzwerk gehören, an einen bestimmten Zielserver zu leiten, müssen Sie die Quell-IP-Adresse maskieren. Verwenden Sie für IPv4-Adressen den NetMask -Parameter. Verwenden Sie für IPv6-Adressen den Parameter v6NetMaskLength.

Informationen zum Konfigurieren der IP-Ziel-IP-Hash-Methode des Quell-IP-Ziels finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die Quell-IP-Quellport-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Hash-Methode des Quell-IP-Quellports konfiguriert ist, verwendet den Hashwert der Quell-IP (entweder IPv4 oder IPv6) und des Quellports, um einen Dienst auszuwählen. Dadurch wird sichergestellt, dass alle Pakete auf einer bestimmten Verbindung an denselben Dienst weitergeleitet werden.

Diese Methode wird bei der Verbindungsspiegelung und beim Lastenausgleich der Firewall verwendet. Weitere Informationen zur Verbindungsspiegelung finden Sie unter Verbindungs-Failover.

Um alle Anforderungen, die zu einem bestimmten Netzwerk gehören, an einen bestimmten Zielserver zu leiten, müssen Sie die Quell-IP-Adresse maskieren. Verwenden Sie für IPv4-Adressen den NetMask -Parameter. Verwenden Sie für IPv6-Adressen den Parameter v6NetMaskLength.

Informationen zum Konfigurieren der Hash-Methode für Quell-IP-Quellport finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die Call-ID-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Call-ID-Hash-Methode konfiguriert ist, verwendet den Hash-Wert der Call-ID im SIP-Header, um einen Dienst auszuwählen. Pakete für eine bestimmte SIP-Sitzung werden daher immer an denselben Proxyserver weitergeleitet.

Diese Methode ist für den SIP-Lastenausgleich anwendbar. Weitere Informationen zum SIP-Lastenausgleich finden Sie unter Überwachen von SIP-Diensten.

Informationen zum Konfigurieren der Call-ID-Hash-Methode finden Sie unter Konfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.