Citrix ADC

Funktionsweise des Lastenausgleichs

In einem einfachen Lastausgleichs-Setup senden Clients ihre Anforderungen an die IP-Adresse eines virtuellen Servers, der auf der Citrix ADC Appliance konfiguriert ist. Der virtuelle Server verteilt sie an die Anwendungsserver mit Lastenausgleich nach einem voreingestellten Muster, dem sogenannten Lastausgleichsalgorithmus. In einigen Fällen können Sie dem virtuellen Lastausgleichsserver anstelle einer bestimmten IP-Adresse eine Platzhalteradresse zuweisen. Anweisungen zum Angeben eines globalen HTTP-Ports auf der Appliance finden Sie unter Globale HTTP-Ports.

Grundlagen des Lastenausgleichs

Ein Lastausgleichs-Setup umfasst einen virtuellen Lastenausgleichsserver und mehrere Anwendungsserver mit Lastenausgleich. Der virtuelle Server empfängt eingehende Clientanforderungen, verwendet den Lastausgleichsalgorithmus, um einen Anwendungsserver auszuwählen, und leitet die Anforderungen an den ausgewählten Anwendungsserver weiter. Die folgende konzeptionelle Zeichnung veranschaulicht eine typische Lastausgleichsbereitstellung. Eine andere Variante beinhaltet die Zuweisung eines globalen HTTP-Ports.

Abbildung 1. Lastenausgleich-Architektur

lb-architecture

Der virtuelle Lastausgleichsserver kann eine Reihe von Algorithmen (oder Methoden) verwenden, um zu bestimmen, wie die Last auf die von ihm verwalteten Server mit Lastenausgleich verteilt wird. Die Standardmethode für den Lastenausgleich ist die geringste Verbindungsmethode, bei der die Citrix ADC Appliance jede eingehende Clientverbindung an den Anwendungsserver mit Lastenausgleich weiterleitet, der derzeit die wenigsten aktiven Benutzerverbindungen aufweist.

Die Entitäten, die Sie in einem typischen Citrix ADC Lastausgleichs-Setup konfigurieren, sind:

  • Lastenausgleich virtueller Server. Die Kombination von IP-Adresse, Port und Protokoll, an die ein Client Verbindungsanforderungen für eine bestimmte Website oder Anwendung mit Lastenausgleich sendet. Wenn die Anwendung über das Internet zugänglich ist, ist die IP-Adresse des virtuellen Servers (VIP) eine öffentliche IP-Adresse. Wenn auf die Anwendung nur über das LAN (Local Area Network) oder Wide Area Network (WAN) zugegriffen werden kann, ist der VIP normalerweise eine private (nicht routable ICANN) IP-Adresse.
  • Service. Die Kombination von IP-Adresse, Port und Protokoll, die verwendet wird, um Anforderungen an einen bestimmten Anwendungsserver mit Lastenausgleich weiterzuleiten. Ein Dienst kann eine logische Darstellung des Anwendungsservers selbst oder einer Anwendung sein, die auf einem Server ausgeführt wird, der mehrere Anwendungen hostet. Nachdem Sie einen Dienst erstellt haben, binden Sie ihn an einen virtuellen Lastausgleichsserver.
  • Serverobjekt. Eine virtuelle Entität, mit der Sie einem physischen Server einen Namen zuweisen können, anstatt den Server anhand seiner IP-Adresse zu identifizieren. Wenn Sie ein Serverobjekt erstellen, können Sie beim Erstellen eines Dienstes seinen Namen anstelle der IP-Adresse des Servers angeben. Andernfalls müssen Sie die IP-Adresse des Servers angeben, wenn Sie einen Dienst erstellen, und die IP-Adresse wird zum Namen des Servers.
  • Überwachen. Eine Entität auf der Citrix ADC Appliance, die einen Dienst verfolgt und sicherstellt, dass er ordnungsgemäß funktioniert. Der Monitor prüft regelmäßig jeden Dienst, dem Sie ihn zuweisen, oder führt eine Zustandsprüfung durch. Wenn der Dienst nicht innerhalb der durch das Timeout angegebenen Zeit reagiert und eine bestimmte Anzahl von Integritätsprüfungen fehlschlägt, wird dieser Dienst mit DOWN gekennzeichnet. Die Citrix ADC Appliance überspringt diesen Dienst beim Lastenausgleich, bis die Probleme behoben wurden, durch die der Dienst beendet wurde.

Die virtuellen Server, Dienste und Lastausgleichsserver in einem Lastausgleichs-Setup können entweder IPv4 (Internet Protocol Version 4) oder IPv6 (Internet Protocol Version 6) IP-Adressen verwenden. Sie können IPv4- und IPv6-Adressen in einem einzelnen Lastausgleichs-Setup mischen.

Variationen im Lastausgleichs-Setup finden Sie in den folgenden Anwendungsfällen:

Grundlegendes zur Topologie

In einem Lastausgleichs-Setup befindet sich der Lastausgleichsserver logisch zwischen dem Client und der Serverfarm und verwaltet den Datenverkehr zu den Servern in der Serverfarm. Auf der Citrix ADC Appliance werden die Anwendungsserver durch virtuelle Entitäten dargestellt, die Dienste genannt werden. Das folgende Diagramm zeigt die Topologie einer grundlegenden Lastausgleichskonfiguration.

Abbildung 2. Grundlegende Load Balancing-Topologie

lokalisiertes Bild

Im Diagramm wird der Lastenausgleich verwendet, um den Datenfluss zu den Servern zu verwalten. Der virtuelle Server wählt den Dienst aus und weist ihn zu, um Clientanforderungen zu erfüllen. Stellen Sie sich ein Szenario vor, in dem die Dienste Service-HTTP-1 und Service-HTTP-2 erstellt und an den virtuellen Server mit dem Namen vServer-LB-1 gebunden werden. VServer-LB-1 leitet die Clientanforderung entweder an Service-HTTP-1 oder Service-HTTP-2 weiter. Die Citrix ADC Appliance verwendet die Methode des Lastenausgleichs für die geringste Verbindung, um den Dienst für jede Anforderung auszuwählen. In der folgenden Tabelle sind die Namen und Werte der Basiseinheiten aufgeführt, die auf der Appliance konfiguriert werden müssen.

Entität Name IP-Adresse Port Protokoll
Virtueller Server Vserver-LB-1 10.102.29.60 80 HTTP
Services Service-HTTP-1 10.102.29.5 80 HTTP
  Service-HTTP-2 10.102.29.6 80 HTTP
Monitore Standard Ohne Ohne Ohne

Das folgende Diagramm zeigt die Lastausgleichsprobenwerte und die obligatorischen Parameter, die in der vorhergehenden Tabelle beschrieben werden.

Abbildung 3. Load Balancing Entity Modell

lb-Entity-Modell

Verwendung von Platzhaltern anstelle von IP-Adressen und Ports

In einigen Fällen müssen Sie möglicherweise einen Platzhalter für die IP-Adresse oder den Port eines virtuellen Servers oder für den Port eines Dienstes verwenden. In den folgenden Fällen kann die Verwendung eines Platzhalters erforderlich sein:

  • Wenn die Citrix ADC Appliance als transparenter Durchgang konfiguriert ist, muss der gesamte Datenverkehr akzeptiert werden, der an sie gesendet wird, unabhängig von der IP oder dem Port, an den sie gesendet wird.
  • Wenn ein oder mehrere Dienste auf Ports hören, die nicht bekannt sind.
  • Ändern Sie bei einem oder mehreren Diensten im Laufe der Zeit die Ports, auf die sie hören.
  • Wenn Sie das Limit für die Anzahl der IP-Adressen und Ports erreichen, die Sie auf einer einzelnen Citrix ADC Appliance konfigurieren können.
  • Wenn Sie virtuelle Server erstellen möchten, die den gesamten Datenverkehr in einem bestimmten virtuellen LAN überwachen.

Wenn ein mit Platzhalter konfigurierter virtueller Server oder Dienst Datenverkehr empfängt, ermittelt die Citrix ADC Appliance die tatsächliche IP-Adresse oder den Port und erstellt neue Datensätze für den Dienst und den zugehörigen Lastausgleichsserver. Diese dynamisch erstellten Datensätze werden als dynamisch erlernte Server- und Dienstdatensätze bezeichnet.

Beispielsweise kann eine Firewall-Lastausgleichskonfiguration Platzhalter für die IP-Adresse und den Port verwenden. Wenn Sie einen Platzhalter-TCP-Service an diesen Typ eines virtuellen Lastausgleichsservers binden, empfängt und verarbeitet der virtuelle Server den gesamten TCP-Datenverkehr, der keinem anderen Dienst oder virtuellen Server entspricht.

In der folgenden Tabelle werden einige der verschiedenen Typen von Platzhalterkonfigurationen beschrieben und wann jeder verwendet werden soll.

IP Port Protokoll Beschreibung
* * TCP Ein allgemeiner virtueller Wildcard-Server, der Datenverkehr akzeptiert, der an eine beliebige IP-Adresse und Port der Citrix ADC Appliance gesendet wird. Wenn Sie einen virtuellen Server mit Platzhalter verwenden, erlernt die Appliance dynamisch die IP und den Port jedes Dienstes und erstellt die erforderlichen Datensätze, während sie den Datenverkehr verarbeitet.
* * TCP Ein virtueller Server für den Lastenausgleich der Firewall. Sie können Firewalldienste an diesen virtuellen Server binden, und die Citrix ADC Appliance leitet den Datenverkehr durch die Firewall an das Ziel weiter.
IP-Adresse * TCP,UDP and ANY Ein virtueller Server, der den gesamten Datenverkehr akzeptiert, der an die angegebene IP-Adresse gesendet wird, unabhängig vom Port. Sie müssen explizit an diesen virtuellen Server die Dienste binden, zu denen der Datenverkehr umgeleitet wird. Es wird sie nicht dynamisch lernen.
      Hinweis: Sie konfigurieren keine Dienste oder virtuelle Server für einen globalen HTTP-Port. In diesem Fall konfigurieren Sie einen bestimmten Port als globaler HTTP-Port (z. B. ns-param -httpPort 80). Die Appliance akzeptiert dann den gesamten Datenverkehr, der der Portnummer entspricht, und verarbeitet ihn als HTTP-Datenverkehr. Die Appliance lernt dynamisch und erstellt Dienste für diesen Datenverkehr.
* port SSL, SSL_TCP Ein virtueller Server, der den gesamten Datenverkehr akzeptiert, der an eine beliebige IP-Adresse an einem bestimmten Port gesendet wird. Wird für globale transparente SSL-Abladung verwendet. Die gesamte SSL-, HTTP- und TCP-Verarbeitung, die normalerweise für einen Dienst desselben Protokolltyps ausgeführt wird, wird auf den Datenverkehr angewendet, der an diesen bestimmten Port gerichtet ist. Die Appliance verwendet den Port, um die IP-Adresse des Dienstes dynamisch zu erlernen, den sie verwenden soll. Wenn —cleartext nicht angegeben ist, verwendet die Citrix ADC Appliance End-to-End-SSL.
* port Nicht zutreffend Alle anderen virtuellen Server, die Datenverkehr zum Port akzeptieren können. Sie binden keine Dienste an diese virtuellen Server; die Citrix ADC Appliance lernt sie dynamisch.

Hinweis: Wenn Sie Ihre Citrix ADC Appliance als transparenten Durchgang konfiguriert haben, der globale (Platzhalter-) Ports verwendet, können Sie den Edge-Modus aktivieren. Weitere Informationen finden Sie unter “Edge-Modus konfigurieren.”

Die Citrix ADC Appliance versucht, virtuelle Server und Dienste zu finden, indem sie zunächst eine exakte Übereinstimmung versucht. Wenn keine gefunden wird, sucht sie weiterhin nach einer Übereinstimmung, die auf Platzhaltern basiert, in der folgenden Reihenfolge:

  1. Spezifische IP-Adresse und spezifische Portnummer
  2. Spezifische IP-Adresse und ein * (Platzhalter) Port
    • (Platzhalter-) IP-Adresse und einen bestimmten Port
    • (Platzhalter-) IP-Adresse und ein * (Platzhalter) Port

Wenn die Appliance keinen virtuellen Server nach IP-Adresse oder Portnummer auswählen kann, sucht sie anhand des Protokolls, das in der Anforderung verwendet wird, nach einem virtuellen Server in der folgenden Reihenfolge:

  1. HTTP
  2. TCP
  3. ANY

Konfigurieren globaler HTTP-Ports

Sie konfigurieren keine Dienste oder virtuelle Server für einen globalen HTTP-Port. Stattdessen konfigurieren Sie einen bestimmten Port mithilfe des Befehls set ns param. Nach der Konfiguration dieses Ports akzeptiert die Citrix ADC Appliance den gesamten Datenverkehr, der der Portnummer entspricht, und verarbeitet ihn als HTTP-Datenverkehr, wobei Dienste für diesen Datenverkehr dynamisch erlernen und erstellt werden.

Sie können mehr als eine Portnummer als globaler HTTP-Port konfigurieren. Wenn Sie mehr als eine Portnummer in einem einzelnen Satz ns param Befehl angeben, trennen Sie die Portnummern durch einen einzelnen Leerraum. Wenn ein oder mehrere Ports bereits als globale HTTP-Ports angegeben wurden und Sie einen oder mehrere Ports hinzufügen möchten, ohne die derzeit konfigurierten Ports zu entfernen, müssen Sie im Befehl alle Portnummern (aktuell und neu) angeben. Bevor Sie Portnummern hinzufügen, verwenden Sie den Befehl show ns param, um die derzeit konfigurierten Ports anzuzeigen.

So konfigurieren Sie einen globalen HTTP-Port mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um einen globalen HTTP-Port zu konfigurieren und die Konfiguration zu überprüfen:

set ns param –httpPort <port>

show ns param

Beispiel 1: Konfigurieren eines Ports als globalen HTTP-Port

In diesem Beispiel wird Port 80 als globaler HTTP-Port konfiguriert.

set ns param -httpPort 80
Done
show ns param
         Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
        ...
        ...

Beispiel 2: Hinzufügen von Ports, wenn ein oder mehrere globale HTTP-Ports bereits konfiguriert**sind

In diesem Beispiel wird Port 8888 zur globalen HTTP-Portliste hinzugefügt. Port 80 ist bereits als globaler HTTP-Port konfiguriert.

> show ns param
        Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576
        ...
        ...
 Done
> set ns param -httpPort 80 8888
 Done
>  show ns param

        Global configuration settings:
                          HTTP port(s): 80,8888
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576

        ...
        ...
 Done
>

So konfigurieren Sie einen globalen HTTP-Port mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu System > Einstellungen > HTTP-Parameter ändern, und fügen Sie dann eine HTTP-Portnummer hinzu.

Funktionsweise des Lastenausgleichs