Citrix ADC

Hashing-Methoden

Lastausgleichsmethoden, die auf Hashes bestimmter Verbindungsinformationen oder Header-Informationen basieren, stellen den Großteil der Lastausgleichsmethoden 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 Requests reduziert die Anforderungs- und Antwortlatenz und sorgt für eine bessere Ressourcennutzung (CPU), wodurch Caching auf stark genutzten Websites und Anwendungsservern beliebt 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

Diese Hashalgorithmen gewährleisten minimale Unterbrechungen, wenn Dienste zu Ihrem Lastausgleichs-Setup hinzugefügt oder gelöscht werden. Die meisten von ihnen 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 Hash-Wert weiter. Da die Appliance für jede Anforderung einen Hash-Wert 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.

Abbildung 1. Wie die Hashing-Methoden Anforderungen verteilen

Hashing-Methoden-Distribute-Anfragen

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 Methode der geringsten Verbindung verwendet, um einen Dienst für die eingehende Anforderung auszuwählen. Sie sollten Server-Pools anpassen, indem Sie Dienste in Zeiten mit geringem Datenverkehr entfernen, damit die Caches neu gefüllt werden können, ohne dass die Leistung Ihres Lastausgleichs beeinträchtigt wird.

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 Hashlänge kann zwischen 1 und 4096 Bytes liegen. Wenn lange URLs verwendet werden, bei denen nur eine kleine Anzahl von Zeichen unterschiedlich ist, empfiehlt es sich, die Hashlänge so hoch wie möglich zu machen, 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 empfängt eine Anforderung und der Hash-Wert der URL lautet 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 Anforderungen 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 Anforderungen, die den Hash-URL1 generieren, folgendermaßen 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 unterKonfigurieren 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 unterKonfigurieren 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-Methode auswählen.

Informationen zum Konfigurieren der Ziel-IP-Hash-Methode finden Sie unterKonfigurieren 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 unterKonfigurieren 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 Hash-Wert 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 Quell-IP-Ziel-IP-Hash-Methode finden Sie unterKonfigurieren einer Load Balancing-Methode, die keine Richtlinie enthält.

Die Quell-IP-Quellport-Hash-Methode

Ein virtueller Lastausgleichsserver, der für die Verwendung der Quell-IP-Quellport-Hash-Methode konfiguriert ist, verwendet den Hash-Wert 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 Hinweise zur Verbindungsspiegelung finden Sie unterVerbindungs-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 Quell-IP-Quellport-Hash-Methode finden Sie unterKonfigurieren 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 Proxy-Server weitergeleitet.

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

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

Hashing-Methoden