ADC

Hashing-Methoden

Load Balancing-Methoden, die auf Hashes bestimmter Verbindungsinformationen oder Header-Informationen basieren, stellen die meisten Load Balancing-Methoden der NetScaler 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 NetScaler-Appliance bietet die folgenden Hashing-Methoden:

  • URL-Hash-Methode
  • Domain-Hash-Methode
  • Ziel-IP-Hash-Methode
  • Quell-IP-Hash-Methode
  • Quell-IP-Ziel-IP-Hashmethode
  • Quell-IP-Quellport-Hash-Methode
  • Anruf-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 Domainnamens, der Quell-IP-Adresse, der Ziel-IP-Adresse oder der Quell- und Ziel-IP-Adressen, abhängig von der konfigurierten Hash-Methode.

Die NetScaler 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 NetScaler 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.

Stellen Sie sich ein Szenario vor, 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 Hashwert Hash1 ist. Wenn die konfigurierten Dienste aktiv sind, wird die Anfrage an Service-HTTP-1 gesendet. Wenn Service-HTTP-1 ausgefallen ist, berechnet die NetScaler-Appliance den Hashwert für das letzte Protokoll der Anzahl der Dienste. Die Appliance wählt dann den Dienst mit dem höchsten Hashwert 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 NetScaler 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 NetScaler Appliance verwendet den proprietären PRAC-Algorithmus, um eine einheitliche Verkehrsverteilung bereitzustellen.

  • Sprungtisch Assisted Ring Hash (JARH)

    Die NetScaler 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
    • Domain-Hash-Methode
    • Ziel-IP-Hash-Methode
    • Quell-IP-Hash-Methode
    • Quell-IP-Ziel-IP-Hashmethode
    • Quell-IP-Quellport-Hash-Methode
    • Anruf-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 NetScaler-Appliance so konfigurieren, dass sie die URL-Hash-Methode für den Lastenausgleich der Dienste verwendet, generiert die Appliance für die Auswahl eines Dienstes einen Hashwert der HTTP-URL, die in der eingehenden Anfrage vorhanden ist. Wenn der durch den Hashwert 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 im Cache, und wenn sie nachfolgende Anfragen empfängt, die dieselbe URL verwenden, leitet sie diese an denselben Dienst weiter. Wenn die Appliance eine eingehende Anfrage nicht analysieren kann, verwendet sie die Round-Robin-Methode für den Lastenausgleich anstelle der URL-Hash-Methode.

Zur Generierung des Hashwerts verwendet die Appliance einen bestimmten Algorithmus und berücksichtigt einen Teil der URL. Standardmäßig berücksichtigt die Appliance die ersten 80 Byte der URL. Wenn die URL weniger als 80 Byte lang 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. So funktioniert 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 aktiv ist, wird die Anfrage 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 Domain-Hash-Methode konfiguriert ist, verwendet den Hashwert des Domainnamens in der HTTP-Anfrage, um einen Dienst auszuwählen. Der Domainname wird entweder von der eingehenden URL oder dem Host-Header der HTTP-Anfrage übernommen. Wenn der Domainname sowohl in der URL als auch im Host-Header erscheint, bevorzugt die Appliance die URL.

Wenn Sie das Hashing für Domainnamen konfigurieren und eine eingehende HTTP-Anfrage keinen Domainnamen enthält, verwendet die NetScaler-Appliance standardmäßig die Round-Robin-Methode für diese Anfrage.

Die Hashwertberechnung verwendet die Namenslänge oder den Hashlängenwert, je nachdem, welcher Wert kleiner ist. Standardmäßig berechnet die NetScaler-Appliance den Hashwert aus den ersten 80 Byte des Domainnamens. 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 von verschiedenen Netzwerken stammen, aber für dasselbe Subnetz bestimmt sind, alle an denselben Server gerichtet werden. Diese Methode unterstützt IPv4- und IPv6-basierte Zielserver.

Diese Load-Balancing-Methode eignet sich für die Verwendung mit der Cache-Umleitungsfunktion.

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 Parameter v6NetMaskLen. 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 weiterzuleiten, 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 Anruf-ID-Hash-Methode konfiguriert ist, verwendet den Hashwert der Anruf-ID im SIP-Header, um einen Dienst auszuwählen. Pakete für eine bestimmte SIP-Sitzung werden daher immer an denselben Proxyserver geleitet.

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.

Hashing-Methoden