Allgemeine Architektur

NetScaler BLX ist ein Softwareformfaktor von NetScaler und bietet die gleiche Funktionalität wie andere Formfaktoren. Es läuft als User-Space-Anwendung auf einem Linux-Host.

BLX verwendet die Linux-Treiber für Rx/Tx von Paketen und für die Verwaltung der NIC-Ports. Virtuelle Ethernet-Schnittstellen (Veths) blx0 und blx1, die während der Startphase erstellt wurden, werden für die Kommunikation zwischen dem Linux-Host und BLX verwendet. BLX verwendet beispielsweise Veths, um Protokollinformationen an den Syslog-Daemon auf einem Linux-Host zu senden.

Der Netzwerkmodus von BLX definiert, ob die NIC-Ports des Linux-Hosts mit anderen Linux-Anwendungen, die auf dem Host ausgeführt werden, gemeinsam genutzt werden. Sie können BLX so konfigurieren, dass es in einem der folgenden Netzwerkmodi läuft:

  • Dedizierter Modus − Die NIC-Ports des Linux-Hosts sind für BLX reserviert und werden nicht mit anderen Linux-Anwendungen gemeinsam genutzt.
  • Gemeinsamer Modus − Die NIC-Ports des Linux-Hosts werden mit anderen Linux-Anwendungen gemeinsam genutzt.

NetScaler BLX im dedizierten Modus

Im dedizierten Modus sind die NIC-Ports des Linux-Hosts, die in der Datei blx.conf (Boot-Up-Konfigurationsdatei der BLX) angegeben sind, für BLX reserviert. Diese NIC-Ports werden nicht mit anderen Anwendungen geteilt, die auf dem Host ausgeführt werden. Nur BLX kann die dedizierten NIC-Ports sehen.

Das IP-Adressierungsschema im dedizierten Modus ähnelt einem herkömmlichen NetScaler. BLX kann unterschiedliche IP-Adressen für NetScaler IP (NSIP), Virtual Server IP (VIP) und Subnet IP (SNIP) haben.

BLX empfängt die Pakete vom externen Netzwerk, verarbeitet die empfangenen Pakete und reagiert direkt über die konfigurierten dedizierten Linux-NIC-Ports. Es verfügt über einen vollwertigen TCP/IP-Stack zur Verarbeitung der Pakete, der den TCP/IP-Stack des Linux-Kernels umgeht. BLX interagiert direkt mit dem Linux-Kernel-Treiber, um die Rohpakete von den NIC-Ports abzurufen.

Obwohl BLX den Netzwerkstapel des Linux-Kernels umgeht, ist die Übertragung von Paketen zwischen Linux-Kernel-Speicher und Benutzerbereichsspeicher immer noch mit einem Overhead verbunden. Dieser Overhead wirkt sich auf die Gesamtleistung der Paketverarbeitung aus. Wir empfehlen die Verwendung der mit dem Data Plane Development Kit (DPDK) kompatiblen NICs für eine hohe Paketverarbeitungsleistung. Eine Liste der von BLX unterstützten DPDK-kompatiblen NICs finden Sie unter Hardwareanforderungen des Linux-Hosts.

Architektur BLX

DPDK ist eine Reihe von Open-Source-Linux-Bibliotheken und Netzwerkschnittstellencontrollern, die für eine bessere Netzwerkleistung verwendet werden. Weitere Informationen zu DPDK finden Sie auf der offiziellen DPDK-Website unter https://www.dpdk.org/.

DPDK hilft dabei, den Kernelspeicher zu Bypass und liefert die Pakete zur Verarbeitung direkt in den Benutzerspeicher. DPDK in Kombination mit dem Linux-UIO-Modul ermöglicht es BLX, Pakete zu empfangen und zu übertragen, ohne dass der Linux-Kernel-Aufwand durch das Kopieren von Paketen aus dem Kernelspeicher in den Benutzerspeicher entsteht. Sobald der Speicher zugewiesen ist, verwaltet DPDK seinen Puffer, um eine bessere Leistung zu erzielen.

Hinweis:

BLX startet möglicherweise in einem dedizierten Modus ohne DPDK-Unterstützung, wenn eine der folgenden Bedingungen erfüllt ist.

  • BLX unterstützt die dedizierten DPDK-kompatiblen NIC-Ports nicht.
  • DPDK unterstützt die dedizierten NIC-Ports nicht.

NetScaler BLX im gemeinsamen Modus

Im Shared-Modus werden die NIC-Ports des Linux-Hosts mit anderen Linux-Anwendungen gemeinsam genutzt, um die Pakete zu empfangen und zu übertragen. BLX wird automatisch die IP-Adresse 192.0.0.1/24 zugewiesen. Diese IP-Adresse wird für die Verwaltung und den Datenverkehr verwendet. Alle NetScaler-eigenen IP-Adressen (z. B. NSIP-, SNIP- und VIP-Adressen) haben dieselbe IP-Adresse von 192.0.0.1, jedoch mit unterschiedlichen Portnummern. Mit anderen Worten, diese einzelne IP-Adresse (192.0.0.1) verwendet verschiedene Portnummern, um als NSIP, SNIP und VIPs zu fungieren.

Architektur BLX

Da die Linux-NIC-Ports des Hosts von BLX und anderen Linux-Anwendungen gemeinsam genutzt werden, wird NAT eine IP-Tabellenregel hinzugefügt. Diese IP-Tabellenregel wird verwendet, um den auf dem Host empfangenen Datenverkehr zur weiteren Verarbeitung an BLX weiterzuleiten.

Der Linux-Host übersetzt die Ziel-IP-Adresse des empfangenen Pakets in die IP-Adresse (192.0.0.1) von BLX. BLX empfängt die Pakete die virtuellen Schnittstellen blx0 und blx1.

BLX verarbeitet die empfangenen Pakete und sendet sie über die virtuellen Schnittstellen blx1 und blx0 an den Linux-Kernel. Der Linux-Host führt NAT für diese Pakete mithilfe der BLX-IP-NAT-Tabelle durch und sendet sie dann über die Linux-NIC-Ports an das Ziel.

Hinweis:

Wir empfehlen, BLX nicht im Shared-Modus für Produktions-Setups zu konfigurieren.

Allgemeine Architektur