ADC

How a NetScaler appliance communicates with clients and servers

Eine NetScaler-Appliance wird normalerweise vor einer Serverfarm bereitgestellt und fungiert als transparenter TCP-Proxy zwischen Clients und Servern, ohne dass eine clientseitige Konfiguration erforderlich ist. Dieser grundlegende Betriebsmodus wird als Request Switching-Technologie bezeichnet und ist das Herzstück der NetScaler-Funktionalität. Request Switching ermöglicht es einer Appliance, die TCP-Verbindungen zu multiplexen und auszulagern, persistente Verbindungen aufrechtzuerhalten und den Datenverkehr auf Anforderungsebene (Andwendungslayer) zu verwalten. Dies ist möglich, weil die Appliance die HTTP-Anfrage von der TCP-Verbindung trennen kann, über die die Anfrage zugestellt wird.

Abhängig von der Konfiguration verarbeitet eine Appliance möglicherweise den Datenverkehr, bevor die Anfrage an einen Server weitergeleitet wird. Wenn der Client beispielsweise versucht, auf eine sichere Anwendung auf dem Server zuzugreifen, führt die Appliance möglicherweise die erforderliche SSL-Verarbeitung durch, bevor der Datenverkehr an den Server gesendet wird.

Um einen effizienten und sicheren Zugriff auf Serverressourcen zu ermöglichen, verwendet eine Appliance eine Reihe von IP-Adressen, die zusammen als Netscaler-eigene IP-Adressen bezeichnet werden. Um Ihren Netzwerkverkehr zu verwalten, weisen Sie NetScaler-eigene IP-Adressen virtuellen Entitäten zu, die zu den Bausteinen Ihrer Konfiguration werden. Um beispielsweise den Lastenausgleich zu konfigurieren, erstellen Sie virtuelle Server, um Clientanfragen zu empfangen und sie an Dienste zu verteilen, bei denen es sich um Entitäten handelt, die die Anwendungen auf Ihren Servern repräsentieren.

Grundlegendes zu Netscaler-eigenen IP-Adressen

Um als Proxy zu fungieren, verwendet eine NetScaler-Appliance eine Vielzahl von IP-Adressen. Die wichtigsten Netscaler-eigenen IP-Adressen sind:

  • NetScaler IP-Adresse (NSIP)

    Die NSIP-Adresse ist die IP-Adresse für die Verwaltung und den allgemeinen Systemzugriff auf die Appliance selbst sowie für die Kommunikation zwischen Appliances in einer Hochverfügbarkeitskonfiguration.

  • IP-Adresse des virtuellen Servers (VIP)

    Eine VIP-Adresse ist die IP-Adresse, die einem virtuellen Server zugeordnet ist. Es ist die öffentliche IP-Adresse, mit der sich Clients verbinden. Auf einer Appliance, die ein breites Spektrum an Datenverkehr verwaltet, sind möglicherweise viele VIPs konfiguriert.

  • Subnetz-IP-Adresse (SNIP)

    Eine SNIP-Adresse wird für die Verbindungsverwaltung und Serverüberwachung verwendet. Sie können mehrere SNIP-Adressen für jedes Subnetz angeben. SNIP-Adressen können an ein VLAN gebunden werden.

  • IP-Satz

    Ein IP-Set ist ein Satz von IP-Adressen, die auf der Appliance als SNIP konfiguriert sind. Ein IP-Satz wird mit einem aussagekräftigen Namen identifiziert, der bei der Identifizierung der Verwendung der darin enthaltenen IP-Adressen hilft.

  • Net-Profil

    Ein Netzprofil (oder Netzwerkprofil) enthält eine IP-Adresse oder einen IP-Satz. Ein Netzprofil kann an virtuelle Server, Dienste, Dienstgruppen oder Monitore mit Lastausgleich oder Content Switching gebunden werden. Während der Kommunikation mit physischen Servern oder Peers verwendet die Appliance die im Profil angegebenen Adressen als Quell-IP-Adressen.

Wie Verkehrsflüsse verwaltet werden

Da eine NetScaler-Appliance als TCP-Proxy fungiert, übersetzt sie IP-Adressen, bevor sie Pakete an einen Server sendet. Wenn Sie einen virtuellen Server konfigurieren, stellen Clients eine Verbindung zu einer VIP-Adresse auf der NetScaler-Appliance her, anstatt sich direkt mit einem Server zu verbinden. Wie durch die Einstellungen auf dem virtuellen Server bestimmt, wählt die Appliance einen geeigneten Server aus und sendet die Anfrage des Clients an diesen Server. Standardmäßig verwendet die Appliance eine SNIP-Adresse, um Verbindungen mit dem Server herzustellen, wie in der folgenden Abbildung dargestellt.

Abbildung 1. Auf virtuellen Servern basierende Verbindungen

image

Wenn kein virtueller Server vorhanden ist, leitet eine Appliance, wenn sie eine Anfrage empfängt, die Anfrage transparent an den Server weiter. Dies wird als transparenter Betriebsmodus bezeichnet. Im transparenten Modus übersetzt eine Appliance die Quell-IP-Adressen eingehender Clientanforderungen in die SNIP-Adresse, ändert jedoch nicht die Ziel-IP-Adresse. Damit dieser Modus funktioniert, muss der L2- oder L3-Modus entsprechend konfiguriert werden.

In Fällen, in denen die Server die tatsächliche Client-IP-Adresse benötigen, kann die Appliance so konfiguriert werden, dass sie den HTTP-Header ändert, indem die Client-IP-Adresse als zusätzliches Feld eingefügt wird, oder so konfiguriert werden, dass die Client-IP-Adresse anstelle einer SNIP-Adresse für Verbindungen zu den Servern verwendet wird.

Bausteine des Verkehrsmanagements

Die Konfiguration einer NetScaler-Appliance besteht in der Regel aus einer Reihe virtueller Entitäten, die als Bausteine für das Verkehrsmanagement dienen. Der Bausteinansatz hilft dabei, Verkehrsflüsse voneinander zu trennen. Virtuelle Entitäten sind Abstraktionen, die in der Regel IP-Adressen, Ports und Protokollhandler für die Verarbeitung des Datenverkehrs darstellen. Kunden greifen über diese virtuellen Entitäten auf Anwendungen und Ressourcen zu. Die am häufigsten verwendeten Entitäten sind virtuelle Server und Dienste. Virtuelle Server stellen Servergruppen in einer Serverfarm oder einem Remote-Netzwerk dar, und Dienste stellen spezifische Anwendungen auf jedem Server dar.

Die meisten Funktionen und Verkehrseinstellungen werden über virtuelle Entitäten aktiviert. Sie können beispielsweise eine Appliance so konfigurieren, dass sie alle Serverantworten an einen Client komprimiert, der über einen bestimmten virtuellen Server mit der Serverfarm verbunden ist. Um die Appliance für eine bestimmte Umgebung zu konfigurieren, müssen Sie die entsprechenden Funktionen identifizieren und dann die richtige Mischung virtueller Entitäten auswählen, um sie bereitzustellen. Die meisten Funktionen werden über eine Kaskade von virtuellen Entitäten bereitgestellt, die miteinander verbunden sind. In diesem Fall sind die virtuellen Entitäten wie Blöcke, die zur endgültigen Struktur einer bereitgestellten Anwendung zusammengesetzt werden. Sie können die virtuellen Entitäten hinzufügen, entfernen, ändern, binden, aktivieren und deaktivieren, um die Funktionen zu konfigurieren. Die folgende Abbildung zeigt die in diesem Abschnitt behandelten Konzepte.

Abbildung 2. So funktionieren die Bausteine des Verkehrsmanagements

image

Eine einfache Load-Balancing-Konfiguration

In dem in der folgenden Abbildung gezeigten Beispiel ist die NetScaler-Appliance so konfiguriert, dass sie als Load Balancer fungiert. Für diese Konfiguration müssen Sie virtuelle Entitäten konfigurieren, die für den Lastenausgleich spezifisch sind, und sie in einer bestimmten Reihenfolge binden. Als Load Balancer verteilt eine Appliance Client-Anfragen auf mehrere Server und optimiert so die Auslastung der Ressourcen.

Die grundlegenden Bausteine einer typischen Load-Balancing-Konfiguration sind Dienste und virtuelle Lastausgleichsserver. Die Dienste stellen die Anwendungen auf den Servern dar. Die virtuellen Server abstrahieren die Server, indem sie eine einzige IP-Adresse bereitstellen, zu der sich die Clients verbinden. Um sicherzustellen, dass Clientanfragen an einen Server gesendet werden, müssen Sie jeden Dienst an einen virtuellen Server binden. Das heißt, Sie müssen Dienste für jeden Server erstellen und die Dienste an einen virtuellen Server binden. Clients verwenden die VIP-Adresse, um eine Verbindung zu einer NetScaler-Appliance herzustellen. Wenn die Appliance an die VIP-Adresse gesendete Client-Anforderungen empfängt, sendet sie diese an einen Server, der durch den Load-Balancing-Algorithmus bestimmt wird. Load Balancing verwendet eine virtuelle Entität, die als Monitor bezeichnet wird, um zu verfolgen, ob ein bestimmter konfigurierter Dienst (Server plus Anwendung) für den Empfang von Anfragen verfügbar ist.

Abbildung 3. Lastausgleich für virtuelle Server, Dienste und Monitore

image

Neben der Konfiguration des Load Balancing-Algorithmus können Sie mehrere Parameter konfigurieren, die sich auf das Verhalten und die Leistung der Load-Balancing-Konfiguration auswirken. Sie können den virtuellen Server beispielsweise so konfigurieren, dass die Persistenz auf der Grundlage der Quell-IP-Adresse aufrechterhalten wird. Die Appliance leitet dann alle Anfragen von einer bestimmten IP-Adresse an denselben Server weiter.

Grundlegendes zu virtuellen Servern

Ein virtueller Server ist eine benannte NetScaler-Entität, mit der externe Clients auf Anwendungen zugreifen können, die auf den Servern gehostet werden. Es wird durch einen alphanumerischen Namen, eine virtuelle IP-Adresse (VIP), einen Port und ein Protokoll dargestellt. Der Name des virtuellen Servers ist nur von lokaler Bedeutung und soll die Identifizierung des virtuellen Servers erleichtern. Wenn ein Client versucht, auf Anwendungen auf einem Server zuzugreifen, sendet er eine Anfrage an den VIP und nicht an die IP-Adresse des physischen Servers. Wenn die Appliance eine Anfrage an der VIP-Adresse empfängt, beendet sie die Verbindung auf dem virtuellen Server und verwendet im Namen des Clients ihre eigene Verbindung mit dem Server. Die Port- und Protokolleinstellungen des virtuellen Servers bestimmen die Anwendungen, die der virtuelle Server repräsentiert. Ein Webserver kann beispielsweise durch einen virtuellen Server und einen Dienst dargestellt werden, dessen Port und Protokoll auf 80 bzw. HTTP gesetzt sind. Mehrere virtuelle Server können dieselbe VIP-Adresse, aber unterschiedliche Protokolle und Ports verwenden.

Virtuelle Server sind Punkte für die Bereitstellung von Funktionen. Die meisten Funktionen wie Komprimierung, Caching und SSL-Offload sind normalerweise auf einem virtuellen Server aktiviert. Wenn die Appliance eine Anfrage an einer VIP-Adresse empfängt, wählt sie den entsprechenden virtuellen Server anhand des Port, an dem die Anfrage empfangen wurde, und des Protokolls aus. Die Appliance verarbeitet die Anfrage dann entsprechend den auf dem virtuellen Server konfigurierten Funktionen.

In den meisten Fällen arbeiten virtuelle Server mit Diensten zusammen. Sie können mehrere Dienste an einen virtuellen Server binden. Diese Dienste stellen die Anwendungen dar, die auf physischen Servern in einer Serverfarm ausgeführt werden. Nachdem die Appliance an einer VIP-Adresse eingegangene Anfragen verarbeitet hat, leitet sie diese an die Server weiter, wie durch den auf dem virtuellen Server konfigurierten Load-Balancing-Algorithmus festgelegt. Die folgende Abbildung veranschaulicht diese Konzepte.

Abbildung 4. Mehrere virtuelle Server mit einer einzigen VIP-Adresse

image

Die obige Abbildung zeigt eine Konfiguration, die aus zwei virtuellen Servern mit einer gemeinsamen VIP-Adresse, aber unterschiedlichen Ports und Protokollen besteht. An jeden der virtuellen Server sind zwei Dienste gebunden. Die Dienste s1 und s2 sind an VS_HTTP gebunden und repräsentieren die HTTP-Anwendungen auf Server 1 und Server 2. Die Dienste s3 und s4 sind an VS_SSL gebunden und repräsentieren die SSL-Anwendungen auf Server 2 und Server 3 (Server 2 stellt sowohl HTTP- als auch SSL-Anwendungen bereit). Wenn die Appliance eine HTTP-Anfrage an der VIP-Adresse empfängt, verarbeitet sie die Anfrage gemäß den Einstellungen von VS_HTTP und sendet sie entweder an Server 1 oder Server 2. In ähnlicher Weise verarbeitet die Appliance, wenn sie eine HTTPS-Anfrage an der VIP-Adresse empfängt, diese gemäß den Einstellungen von VS_SSL und sendet sie entweder an Server 2 oder Server 3.

Virtuelle Server werden nicht immer durch bestimmte IP-Adressen, Portnummern oder Protokolle repräsentiert. Sie können durch Platzhalter dargestellt werden. In diesem Fall werden sie als virtuelle Wildcard-Server bezeichnet. Wenn Sie beispielsweise einen virtuellen Server mit einem Platzhalter anstelle eines VIP, aber mit einer bestimmten Portnummer konfigurieren, fängt die Appliance den gesamten Datenverkehr ab und verarbeitet ihn, der diesem Protokoll entspricht und für den vordefinierten Port bestimmt ist. Bei virtuellen Servern mit Platzhaltern anstelle von VIPs und Portnummern fängt die Appliance den gesamten Datenverkehr ab und verarbeitet ihn protokollkonform.

Virtuelle Server können in die folgenden Kategorien eingeteilt werden:

  • Lastenausgleich virtueller Server

    Empfängt Anfragen und leitet sie an einen geeigneten Server weiter. Die Auswahl des geeigneten Servers hängt davon ab, welche der verschiedenen Load-Balancing-Methoden der Benutzer konfiguriert.

  • Virtueller Server für die Cache-Umleitung

    Leitet Clientanfragen für dynamischen Inhalt an Ursprungsserver und Anfragen für statischen Inhalt an Cache-Server weiter. Virtuelle Server für die Cache-Umleitung funktionieren häufig in Verbindung mit virtuellen Servern für den Lastenausgleich.

  • Virtuelle Content Switching-Server

    Leitet den Datenverkehr auf der Grundlage des vom Client angeforderten Inhalts an einen Server weiter. Sie können beispielsweise einen virtuellen Content Switching-Server erstellen, der alle Client-Anforderungen für Bilder an einen Server weiterleitet, der nur Bilder bereitstellt. Virtuelle Content Switching-Server funktionieren häufig in Verbindung mit virtuellen Servern für den Lastenausgleich.

  • Virtueller Server für virtuelles privates Netzwerk (VPN)

    Entschlüsselt getunnelten Datenverkehr und sendet ihn an Intranetanwendungen.

  • Virtueller SSL-Server

    Empfängt und entschlüsselt SSL-Verkehr und leitet ihn dann an einen geeigneten Server weiter. Die Auswahl des geeigneten Servers ähnelt der Auswahl eines virtuellen Lastausgleichsservers.

Dienste verstehen

Dienste stellen Anwendungen auf einem Server dar. Während Dienste normalerweise mit virtuellen Servern kombiniert werden, kann ein Dienst in Ermangelung eines virtuellen Servers dennoch den anwendungsspezifischen Datenverkehr verwalten. Sie können beispielsweise einen HTTP-Dienst auf einer NetScaler-Appliance erstellen, um eine Webserveranwendung darzustellen. Wenn der Client versucht, auf eine auf dem Webserver gehostete Website zuzugreifen, fängt die Appliance die HTTP-Anfragen ab und stellt eine transparente Verbindung mit dem Webserver her.

Im Nur-Servicemodus fungiert eine Appliance als Proxy. Es beendet Clientverbindungen, verwendet eine SNIP-Adresse, um eine Verbindung zum Server herzustellen, und übersetzt die Quell-IP-Adressen eingehender Clientanfragen in eine SNIP-Adresse. Obwohl die Clients Anfragen direkt an die IP-Adresse des Servers senden, geht der Server davon aus, dass sie von der SNIP-Adresse stammen. Die Appliance übersetzt die IP-Adressen, Portnummern und Sequenznummern.

Ein Service ist auch ein Punkt, an dem Funktionen angewendet werden können. Betrachten Sie das Beispiel der SSL-Beschleunigung. Um diese Funktion verwenden zu können, müssen Sie einen SSL-Dienst erstellen und ein SSL-Zertifikat an den Dienst binden. Wenn die Appliance eine HTTPS-Anfrage empfängt, entschlüsselt sie den Datenverkehr und sendet ihn im Klartext an den Server. Im Fall, in dem nur der Service verfügbar ist, kann nur ein begrenzter Funktionsumfang konfiguriert werden.

Dienste verwenden Entitäten, die als Monitore bezeichnet werden, um den Zustand von Anwendungen zu verfolgen. Jeder Dienst hat einen Standardmonitor, der auf dem Servicetyp basiert und an ihn gebunden ist. Wie in den auf dem Monitor konfigurierten Einstellungen angegeben, sendet die Appliance in regelmäßigen Abständen Sonden an die Anwendung, um deren Status zu ermitteln. Wenn die Sonden ausfallen, markiert die Appliance den Dienst als inaktiv. In solchen Fällen reagiert die Appliance auf Clientanfragen mit einer entsprechenden Fehlermeldung oder leitet die Anfrage entsprechend den konfigurierten Load-Balancing-Richtlinien weiter.

How a NetScaler appliance communicates with clients and servers