Architektur und Verkehrsfluss

Wenn Sie eine NetScaler CPX-Instanz auf einem Docker-Host bereitstellen, erstellt die Docker-Engine eine virtuelle Schnittstelle, eth0, auf der CPX-Instanz. Diese eth0-Schnittstelle ist direkt mit einer virtuellen Schnittstelle (veth*) auf der Docker0-Brücke verbunden. Die Docker-Engine weist der NetScaler CPX-Instanz im Netzwerk 172.17.0.0/16 auch eine IP-Adresse zu.

Das Standard-Gateway für die CPX-Instanz ist die IP-Adresse der Docker0-Brücke, was bedeutet, dass die Kommunikation mit der NetScaler CPX-Instanz über das Docker-Netzwerk erfolgt. Der gesamte eingehende Datenverkehr, der von der Docker0-Brücke empfangen wird, wird von der eth0-Schnittstelle der NetScaler CPX-Instanz empfangen und von der NetScaler CPX-Paket-Engine verarbeitet.

Die folgende Abbildung veranschaulicht die Architektur einer NetScaler CPX-Instanz auf einem Docker-Host.

lokalisierte Abbildung

So funktioniert eine einzelne IP-Adresse auf NetScaler CPX

Eine reguläre NetScaler MPX- oder VPX-Appliance benötigt mindestens drei IP-Adressen, um zu funktionieren:

  • Management-IP-Adresse, die als NetScaler IP (NSIP) -Adresse bezeichnet wird
  • Subnetz-IP (SNIP) -Adresse für die Kommunikation mit der Serverfarm
  • Virtuelle Server-IP (VIP) -Adresse (n) zum Akzeptieren von Clientanfragen

Eine NetScaler CPX-Instanz arbeitet mit einer einzigen IP-Adresse, die sowohl für die Verwaltung als auch für den Datenverkehr verwendet wird.

Während der Bereitstellung wird nur eine private IP-Adresse (einzelne IP-Adresse) einer NetScaler CPX-Instanz von der Docker-Engine zugewiesen. Die drei IP-Funktionen einer NetScaler-Instanz werden auf eine IP-Adresse gemultiplext. Diese einzelne IP-Adresse verwendet unterschiedliche Portnummern, um als NSIP, SNIP und VIP (s) zu fungieren.

Das folgende Bild zeigt, wie eine einzelne IP-Adresse verwendet wird, um die Funktionen von NSIP, SNIP und VIP (s) auszuführen.

lokalisierte Abbildung

Verkehrsfluss für Anforderungen, die von der NetScaler CPX-Instanz stammen

Docker konfiguriert implizit IP-Tabellen und eine NAT-Regel, um den Datenverkehr von der NetScaler CPX-Instanz an die Docker0-IP-Adresse zu leiten.

Die folgende Abbildung zeigt, wie eine Ping-Anforderung, die von einer NetScaler CPX-Instanz stammt, das Ziel erreicht.

lokalisierte Abbildung

In diesem Beispiel wird die Ping-Anforderung von der Paket-Engine auf der eth0-Schnittstelle mit der Quell-IP-Adresse als NetScaler CPX-IP-Adresse (172.17.0.4) gesendet. Der Docker-Host führt dann die Netzwerkadressübersetzung (NAT) durch, um die Host-IP-Adresse (192.68.x.x) als Quell-IP-Adresse hinzuzufügen, und sendet die Anforderung an das Ziel (216.58.x.x). Die Antwort von der Ziel-IP-Adresse folgt umgekehrt demselben Pfad. Der Docker-Host führt NAT für die Antwort aus und leitet die Antwort an die NetScaler CPX-Instanz auf der eth0-Schnittstelle weiter.

Verkehrsfluss für Anforderungen aus dem externen Netzwerk

Um die externe Kommunikation zu ermöglichen, müssen Sie bei der Bereitstellung von NetScaler CPX Parameter festlegen, sodass Docker bestimmte Ports wie 80, 22 und jeden anderen gewünschten Port verfügbar macht. Wenn Sie keinen Port festgelegt haben, der während der Bereitstellung verfügbar gemacht werden soll, müssen Sie NAT-Regeln auf dem Docker-Host konfigurieren, um diese Ports verfügbar zu machen.

Die Clientanforderung, die aus dem Internet stammt, wird vom Docker-Host empfangen, der dann die Portadressübersetzung (PAT) durchführt, um die öffentliche IP-Adresse und den Port der einzelnen IP-Adresse und dem Port der NetScaler CPX-Instanz zuzuordnen und den Datenverkehr an die Instanz weiterzuleiten.

Die folgende Abbildung zeigt, wie der Docker-Host die Portadressübersetzung durchführt, um den Datenverkehr an die einzelne IP-Adresse und den Port von NetScaler CPX zu leiten.

lokalisierte Abbildung

In diesem Beispiel lautet die Docker-Host-IP-Adresse 192.68.x.x und die einzelne IP-Adresse der NetScaler CPX-Instanz ist 172.17.0.4. Der SSH-Port 22 der NetScaler CPX-Instanz ist Port 1100 auf dem Docker-Host zugeordnet. Die SSH-Anforderung vom Client wird auf der IP-Adresse 192.68.x.x an Port 1100 empfangen. Der Docker-Host führt die Portadressübersetzung durch, um diese Adresse und den Port der einzelnen IP-Adresse 172.17.0.4 auf Port 22 zuzuordnen, und leitet die Clientanfrage weiter.

Architektur und Verkehrsfluss