Architektur und Datenverkehrsfluss

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-Bridge verbunden. Die Docker-Engine weist der NetScaler CPX-Instanz auch eine IP-Adresse im Netzwerk 172.17.0.0/16 zu.

Das Standard-Gateway für die CPX-Instanz ist die IP-Adresse der docker0-Bridge, was bedeutet, dass jede Kommunikation mit der NetScaler CPX-Instanz über das Docker-Netzwerk erfolgt. Der gesamte eingehende Datenverkehr, der von der docker0-Bridge empfangen wird, wird von der eth0-Schnittstelle auf 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.

lokalisiertes Bild

Wie eine einzelne IP-Adresse auf NetScaler CPX funktioniert

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

  • Management-IP-Adresse, genannt die NetScaler® IP (NSIP)-Adresse
  • Subnetz-IP (SNIP)-Adresse für die Kommunikation mit der Serverfarm
  • Virtuelle Server-IP (VIP)-Adresse(n) zum Akzeptieren von Client-Anfragen

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 der NetScaler CPX-Instanz von der Docker-Engine nur eine private IP-Adresse (einzelne IP-Adresse) zugewiesen. Die drei IP-Funktionen einer NetScaler-Instanz werden auf eine IP-Adresse gemultiplext. Diese einzelne IP-Adresse verwendet verschiedene Portnummern, um als NSIP, SNIP und VIP(s) zu fungieren.

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

lokalisiertes Bild

Datenverkehrsfluss für Anfragen, die von der NetScaler CPX-Instanz stammen

Docker konfiguriert implizit IP-Tabellen und eine NAT-Regel, um den Datenverkehr, der von der NetScaler CPX-Instanz stammt, an die docker0-IP-Adresse weiterzuleiten.

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

lokalisiertes Bild

In diesem Beispiel wird die Ping-Anfrage von der Paket-Engine über die eth0-Schnittstelle mit der Quell-IP-Adresse der NetScaler CPX-IP-Adresse (172.17.0.4) gesendet. Der Docker-Host führt dann eine Netzwerkadressübersetzung (NAT) durch, um die Host-IP-Adresse (192.68.x.x) als Quell-IP-Adresse hinzuzufügen und die Anfrage an das Ziel (216.58.x.x) zu senden. Die Antwort von der Ziel-IP-Adresse folgt dem gleichen Pfad in umgekehrter Reihenfolge. Der Docker-Host führt eine NAT für die Antwort durch und leitet die Antwort an die NetScaler CPX-Instanz über die eth0-Schnittstelle weiter.

Datenverkehrsfluss für Anfragen, die aus dem externen Netzwerk stammen

Um die externe Kommunikation zu ermöglichen, müssen Sie bei der Bereitstellung von NetScaler CPX Parameter so einstellen, dass Docker bestimmte Ports wie 80, 22 und jeden anderen gewünschten Port verfügbar macht. Wenn Sie bei der Bereitstellung keine Ports zur Freigabe festgelegt haben, müssen Sie NAT-Regeln auf dem Docker-Host konfigurieren, um diese Ports verfügbar zu machen.

Die Client-Anfrage, die aus dem Internet stammt, wird vom Docker-Host empfangen, der dann eine 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 der NetScaler CPX-Instanz weiterzuleiten.

lokalisiertes Bild

In diesem Beispiel ist die IP-Adresse des Docker-Hosts 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 dem Port 1100 auf dem Docker-Host zugeordnet. Die SSH-Anfrage vom Client wird an der IP-Adresse 192.68.x.x am Port 1100 empfangen. Der Docker-Host führt eine Portadressübersetzung durch, um diese Adresse und diesen Port der einzelnen IP-Adresse 172.17.0.4 am Port 22 zuzuordnen und die Client-Anfrage weiterzuleiten.

Architektur und Datenverkehrsfluss