Citrix ADC

Kommunikation einer Citrix ADC Appliance mit Clients und Servern

Eine Citrix ADC Appliance wird normalerweise vor einer Serverfarm bereitgestellt und fungiert als transparenter TCP-Proxy zwischen Clients und Servern, ohne dass eine clientseitige Konfiguration erforderlich ist. Diese grundlegende Betriebsart wird als Request-Switching-Technologie bezeichnet und ist der Kern der Citrix ADC Funktionalität. Anforderungsumschaltung ermöglicht es einer Appliance, die TCP-Verbindungen zu multiplex und zu entlasten, persistente Verbindungen zu pflegen und den Datenverkehr auf Anforderungsebene (Anwendungsschicht) zu verwalten. Dies ist möglich, da die Appliance die HTTP-Anforderung von der TCP-Verbindung trennen kann, für die die Anforderung gesendet wird.

Abhängig von der Konfiguration kann eine Appliance den Datenverkehr verarbeiten, bevor sie die Anforderung an einen Server weiterleitet. 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 Datenverkehr an den Server gesendet wird.

Um den effizienten und sicheren Zugriff auf Serverressourcen zu erleichtern, verwendet eine Appliance eine Gruppe von IP-Adressen, die gemeinsam als Citrix ADC-eigene IP-Adressen bezeichnet werden. Um den Netzwerkverkehr zu verwalten, weisen Sie IP-Adressen von Citrix ADC zu virtuellen Entitäten zu, die zu den Bausteinen Ihrer Konfiguration werden. Zum Konfigurieren des Lastenausgleichs erstellen Sie beispielsweise virtuelle Server, um Clientanforderungen zu empfangen und sie an Dienste zu verteilen, bei denen es sich um Entitäten handelt, die die Anwendungen auf Ihren Servern darstellen.

Grundlegendes zu Citrix ADC-eigenen IP-Adressen

Um als Proxy zu fungieren, verwendet eine Citrix ADC Appliance eine Vielzahl von IP-Adressen. Die wichtigsten IP-Adressen von Citrix ADC sind:

  • Citrix ADC IP-Adresse (NSIP)

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

  • IP-Adresse (VIP) desvirtuellen Servers

    Eine VIP-Adresse ist die IP-Adresse, die einem virtuellen Server zugeordnet ist. Es ist die öffentliche IP-Adresse, mit der Clients eine Verbindung herstellen. Bei einer Appliance, die einen großen Datenverkehr verwaltet, können viele VIPs konfiguriert sein.

  • Subnetz-IP-Adresse (SNIP)

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

  • IP Set

    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 den Lastenausgleich gebunden werden oder Inhalte, die virtuelle Server, Dienste, Dienstgruppen oder Monitore wechseln. Während der Kommunikation mit physischen Servern oder Peers verwendet die Appliance die im Profil angegebenen Adressen als Quell-IP-Adressen.

Verwalten von Verkehrsflüssen

Da eine Citrix ADC Appliance als TCP-Proxy fungiert, werden IP-Adressen übersetzt, bevor Pakete an einen Server gesendet werden. Wenn Sie einen virtuellen Server konfigurieren, stellen Clients eine Verbindung zu einer VIP-Adresse auf der Citrix ADC Appliance her, anstatt eine direkte Verbindung mit einem Server herzustellen. Wie von den Einstellungen auf dem virtuellen Server bestimmt, wählt die Appliance einen geeigneten Server aus und sendet die Anforderung 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. Virtuelle Server-basierte Verbindungen

Bild

Wenn ein virtueller Server nicht vorhanden ist, leitet eine Appliance die Anforderung transparent an den Server weiter. Dies wird als transparenter Betriebsmodus bezeichnet. Beim Betrieb 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 sie die Client-IP-Adresse als zusätzliches Feld einfügen oder so konfiguriert werden, dass die Client-IP-Adresse anstelle einer SNIP-Adresse für Verbindungen zu den Servern verwendet wird.

Bausteine für Verkehrsmanagement

Die Konfiguration einer Citrix ADC Appliance besteht in der Regel aus einer Reihe virtueller Entitäten, die als Bausteine für die Datenverkehrsverwaltung dienen. Der Bausteinansatz unterstützt die Trennung von Verkehrsflüssen. Virtuelle Entitäten sind Abstraktionen, die normalerweise IP-Adressen, Ports und Protokollhandler für die Verarbeitung von Datenverkehr darstellen. Clients 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 Gruppen von Servern in einer Serverfarm oder einem Remotenetzwerk dar, und Dienste stellen bestimmte Anwendungen auf jedem Server dar.

Die meisten Features und Verkehrseinstellungen werden über virtuelle Entitäten aktiviert. Sie können beispielsweise eine Appliance so konfigurieren, dass alle Serverantworten auf einen Client komprimiert werden, 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 Features identifizieren und dann die richtige Mischung virtueller Entitäten auswählen, um sie bereitzustellen. Die meisten Features werden über eine Kaskade virtueller Entitäten bereitgestellt, die miteinander verbunden sind. In diesem Fall sind die virtuellen Entitäten wie Blöcke, die in die endgültige Struktur einer bereitgestellten Anwendung eingebaut werden. Sie können virtuelle Entitäten hinzufügen, entfernen, ändern, binden, aktivieren und deaktivieren, um die Features zu konfigurieren. Die folgende Abbildung zeigt die in diesem Abschnitt behandelten Konzepte.

Abbildung 2. Funktionsweise von Bausteinen für die Verkehrsverwaltung

Bild

Einfache Lastausgleichskonfiguration

Im Beispiel in der folgenden Abbildung ist die Citrix ADC 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 diese in einer bestimmten Reihenfolge binden. Als Load Balancer verteilt eine Appliance Clientanforderungen auf mehrere Server und optimiert so die Ressourcennutzung.

Die grundlegenden Bausteine einer typischen Lastausgleichskonfiguration 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 angeben, mit der sich die Clients verbinden. Um sicherzustellen, dass Clientanforderungen 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 mit einer Citrix ADC Appliance herzustellen. Wenn die Appliance Clientanforderungen empfängt, die an die VIP-Adresse gesendet werden, werden sie an einen Server gesendet, der durch den Lastausgleichsalgorithmus bestimmt wird. Der Lastenausgleich verwendet eine virtuelle Entität namens Monitor, um zu verfolgen, ob ein bestimmter konfigurierter Dienst (Server plus Anwendung) für den Empfang von Anforderungen verfügbar ist.

Abbildung 3. Lastenausgleich virtueller Server, Dienste und Monitore

Bild

Zusätzlich zum Konfigurieren des Lastausgleichsalgorithmus können Sie mehrere Parameter konfigurieren, die sich auf das Verhalten und die Leistung der Lastausgleichskonfiguration auswirken. Beispielsweise können Sie den virtuellen Server so konfigurieren, dass die Persistenz basierend auf der Quell-IP-Adresse beibehalten 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 Citrix ADC Entität, mit der externe Clients auf Anwendungen zugreifen können, die auf den Servern gehostet werden. Sie 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 Anforderung an den VIP anstelle der IP-Adresse des physischen Servers. Wenn die Appliance eine Anforderung an die VIP-Adresse erhält, beendet sie die Verbindung auf dem virtuellen Server und verwendet im Auftrag des Clients eine eigene Verbindung mit dem Server. Die Port- und Protokolleinstellungen des virtuellen Servers bestimmen die Anwendungen, die der virtuelle Server darstellt. Beispielsweise kann ein Webserver durch einen virtuellen Server und einen Dienst dargestellt werden, dessen Port und Protokoll auf 80 bzw. HTTP festgelegt 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 Anforderung an eine VIP-Adresse erhält, wählt sie den entsprechenden virtuellen Server anhand des Ports, auf dem die Anforderung empfangen wurde, und des Protokolls aus. Anschließend verarbeitet die Appliance die Anforderung entsprechend den auf dem virtuellen Server konfigurierten Funktionen.

In den meisten Fällen arbeiten virtuelle Server zusammen mit Diensten. 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 Anforderungen verarbeitet hat, die an einer VIP-Adresse empfangen wurden, leitet sie diese an die Server weiter, wie sie durch den auf dem virtuellen Server konfigurierten Lastausgleichsalgorithmus bestimmt wird. Die folgende Abbildung veranschaulicht diese Konzepte.

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

Bild

Die obige Abbildung zeigt eine Konfiguration, die aus zwei virtuellen Servern mit einer gemeinsamen VIP-Adresse, aber unterschiedlichen Ports und Protokollen besteht. Jeder der virtuellen Server verfügt über zwei Dienste, die an ihn gebunden sind. Die Dienste s1 und s2 sind an VS_HTTP gebunden und stellen die HTTP-Anwendungen auf Server 1 und Server 2 dar. Die Dienste s3 und s4 sind an VS_SSL gebunden und stellen die SSL-Anwendungen auf Server 2 und Server 3 dar (Server 2 bietet sowohl HTTP- als auch SSL-Anwendungen). Wenn die Appliance eine HTTP-Anforderung an die VIP-Adresse empfängt, verarbeitet sie die Anforderung gemäß den Einstellungen von VS_HTTP und sendet sie an Server 1 oder Server 2. Wenn die Appliance eine HTTPS-Anforderung an die VIP-Adresse empfängt, verarbeitet sie sie entsprechend 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 dargestellt. Sie können durch Platzhalter dargestellt werden. In diesem Fall werden sie als virtuelle Platzhalterserver bezeichnet. Wenn Sie beispielsweise einen virtuellen Server mit einem Platzhalter anstelle eines VIP, jedoch mit einer bestimmten Portnummer konfigurieren, fängt die Appliance den gesamten Datenverkehr ab, 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, der dem Protokoll entspricht.

Virtuelle Server können in folgende Kategorien gruppiert werden:

  • Lastenausgleich virtueller Server

    Empfängt Anforderungen und leitet sie an einen entsprechenden Server weiter. Die Auswahl des entsprechenden Servers basiert auf der Konfiguration der verschiedenen Load Balancing-Methoden.

  • Virtueller Server für die Cache-Umleitung

    Leitet Clientanforderungen für dynamischen Inhalt an Ursprungsserver und Anforderungen an statische Inhalte an Cacheserver um. Virtuelle Cache-Umleitungsserver funktionieren häufig in Verbindung mit virtuellen Servern mit Lastenausgleich.

  • Virtueller Server für Content Switching

    Leitet den Datenverkehr auf der Grundlage des vom Client angeforderten Inhalts an einen Server. Beispielsweise können Sie einen virtuellen Server zum Wechseln von Inhalten erstellen, der alle Clientanforderungen für Bilder an einen Server weiterleitet, der nur Bilder bereitstellt. Virtuelle Server zum Wechseln von Inhalten funktionieren häufig in Verbindung mit virtuellen Servern mit Lastenausgleich.

  • Virtuelles privates Netzwerk (VPN) virtueller Server

    Entschlüsselt den getunnelten Datenverkehr und sendet ihn an Intranetanwendungen.

  • Virtueller SSL-Server

    Empfangen und entschlüsselt SSL-Datenverkehr und leitet dann zu einem entsprechenden Server um. Die Auswahl des entsprechenden Servers ähnelt der Auswahl eines virtuellen Lastenausgleichsservers.

Verstehen von Dienstleistungen

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

Im Nur-Service-Modus 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 Clientanforderungen in eine SNIP-Adresse. Obwohl die Clients Anfragen direkt an die IP-Adresse des Servers senden, sieht der Server, dass sie von der SNIP-Adresse stammen. Die Appliance übersetzt die IP-Adressen, Portnummern und Sequenznummern.

Ein Service ist auch ein Punkt zum Anwenden von Features. Betrachten Sie das Beispiel der SSL-Beschleunigung. Um dieses Feature verwenden zu können, müssen Sie einen SSL-Dienst erstellen und ein SSL-Zertifikat an den Dienst binden. Wenn die Appliance eine HTTPS-Anforderung empfängt, entschlüsselt sie den Datenverkehr und sendet ihn im Klartext an den Server. Nur ein begrenzter Satz von Funktionen kann im Nur-Service-Fall konfiguriert werden.

Dienste verwenden Entitäten, die als Monitore bezeichnet werden, um den Zustand von Anwendungen zu verfolgen. Jeder Dienst verfügt über einen Standardmonitor, der auf dem Diensttyp basiert und an ihn gebunden ist. Wie in den auf dem Monitor konfigurierten Einstellungen angegeben, sendet die Appliance in regelmäßigen Abständen Prüfpunkte an die Anwendung, um ihren Status zu bestimmen. Wenn die Prüfpunkte fehlschlagen, markiert die Appliance den Dienst als ausgefallen. In solchen Fällen reagiert die Appliance auf Clientanforderungen mit einer entsprechenden Fehlermeldung oder leitet die Anforderung gemäß den konfigurierten Lastenausgleichsrichtlinien erneut weiter.

Kommunikation einer Citrix ADC Appliance mit Clients und Servern