Überblick und Architektur

NetScaler BLX-Appliance ist ein Softwareformfaktor von Citrix ADC. Es wurde entwickelt, um nativ auf Bare-Metal-Linux auf kommerziellen Standardservern (COTS) zu laufen.

Im Folgenden sind die Vorteile der Verwendung einer BLX-Appliance aufgeführt:

  • Cloud-bereit. BLX bietet Day-Zero-Unterstützung für die Ausführung in der Cloud.

    BLX-Appliances benötigen keine Zertifizierungen, um in der Cloud ausgeführt zu werden, da sie als Softwareanwendung auf virtuellen Linux-Maschinen ausgeführt werden, die in der Cloud bereitgestellt werden.

  • Einfache Verwaltung. Standardtools, die als Teil des Linux-Betriebssystems verfügbar sind, können zur einfachen Überwachung und Verwaltung von BLX-Appliances verwendet werden. BLX-Appliances können einfach an ein vorhandenes Orchestrierungssetup angeschlossen werden.

  • Nahtlose Integration von Tools von Drittanbietern. Open-Source-Tools (z. B. Überwachung, Debugging und Logging), die für Linux-Umgebungen unterstützt werden, können nahtlos in BLX-Appliances integriert werden. Es ist nicht erforderlich, für jede Integration separate Plug-Ins zu entwickeln.

  • Koexistenz anderer Anwendungen. Da BLX-Appliances als Softwareanwendung ausgeführt werden, können auch andere Linux-Anwendungen auf demselben Host ausgeführt werden.

  • DPDK-Unterstützung. Die BLX-Appliance unterstützt die Integration des Data Plane Development Kit (DPDK) für eine bessere Leistung. Eine BLX-Appliance verwendet die Open-Source-Bibliothek DPDK, um die Leistung zu verbessern und den Linux-Kernel-Engpass bei der Paketverarbeitung zu überwinden.

Allgemeine Architektur

Die BLX-Appliance ist ein Softwareformfaktor von Citrix ADC und bietet dieselbe Funktionalität wie eine herkömmliche Citrix ADC-Appliance. Eine BLX-Appliance wird als Benutzerbereichsanwendung in einem Linux-System ausgeführt. Die BLX-Appliance verwendet die Linux-Treiber für Rx/Tx von Paketen und die Verwaltung der NIC-Ports. Virtuelle Schnittstellen blx0 und blx1, die während der BLX-Startphase erstellt werden, werden für die Kommunikation zwischen dem Kernel und der BLX-Appliance verwendet.

Architektur BLX

Netzwerk-Modi

Der Netzwerkmodus einer BLX-Appliance definiert, ob die NIC-Ports des Linux-Hosts mit anderen Linux-Anwendungen, die auf dem Host ausgeführt werden, gemeinsam genutzt werden oder nicht. Eine BLX-Appliance kann so konfiguriert werden, dass sie in einem der folgenden Netzwerkmodi ausgeführt wird:

  • Freigabemodus
  • Engagierter Modus

Freigabemodus

Eine BLX-Appliance, die für die Ausführung im Shared-Modus konfiguriert ist, teilt sich die NIC-Ports des Linux-Hosts mit anderen Linux-Anwendungen.

Gemeinsamer Modus BLX

Einer BLX-Appliance im Shared-Modus wird automatisch die Netzwerkadresse 192.0.0.1/24 zugewiesen.

Eine BLX-Appliance im Shared-Modus arbeitet mit einer einzigen IP-Adresse, die für die Verwaltung und den Datenverkehr verwendet wird. Alle Citrix ADC-eigenen IP-Adressen (z. B. NSIP, SNIP und VIP) 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.

Da die Linux-NIC-Ports von der BLX-Appliance und anderen Linux-Anwendungen gemeinsam genutzt werden, wird eine IP-NAT-Tabelle im Kernel für die BLX-Appliance hinzugefügt. Der Linux-Host verwendet diese IP-NAT-Tabelle, um Pakete zu erkennen, die an den Linux-NIC-Ports der BLX-Appliance empfangen wurden.

Der Linux-Host führt dann NAT durch, indem er die Ziel-IP-Adresse des empfangenen Pakets in die IP-Adresse (192.0.0.1) der BLX-Appliance übersetzt. Die BLX-Appliance empfängt die Pakete über die virtuellen Schnittstellen blx0 und blx1 (veth).

Die BLX-Appliance 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.

Engagierter Modus

Eine im dedizierten Modus konfigurierte BLX-Appliance verfügt über dedizierte Linux-Host-NIC-Ports und teilt die Ports nicht mit anderen Linux-Anwendungen.

Andere Linux-Anwendungen auf dem Host sehen die Linux-NIC-Ports nicht, die für die BLX-Appliance reserviert sind.

Dedizierter Modus BLX

Das IP-Adressierungsschema auf einer BLX-Appliance im dedizierten Modus ähnelt dem auf einer herkömmlichen Citrix ADC-Appliance. Auf einer BLX-Appliance im dedizierten Modus können ADC-eigene IP-Adressen (z. B. NSIP, SNIP und VIPs) unterschiedliche IP-Adressen haben.

Im Gegensatz zum Shared-Modus ist für die BLX-Appliance im dedizierten Modus kein NAT-Vorgang erforderlich. Die BLX-Appliance empfang/beantwortet Pakete direkt von/zum externen Netzwerkgerät über die konfigurierten dedizierten Linux-NIC-Ports.

Die BLX-Appliance im dedizierten Modus verwendet weiterhin die virtuellen Schnittstellen blx0 und blx1 (veths), um SYSLOG und andere verwaltungsbezogene Informationen an den Linux-Kernel zu senden.

BLX-Appliance mit Unterstützung für das Data Plane Development Kit (DPDK)

Eine BLX-Appliance verwendet die herkömmlichen Linux-Treiber für Rx/Tx von Paketen und die Verwaltung der NIC-Ports. Die Pakete, die zwischen dem Linux-Kernel und der BLX-Appliance im Benutzerbereich unter Verwendung der Linux-Treiber übertragen werden, haben mehrere Gemeinkosten. Diese Gemeinkosten wirken sich auf die Leistung der BLX-Appliance aus.

Die BLX-Appliance verfügt über einen vollständigen TCP/IP-Stack, um jedes Paket zu verarbeiten. Wenn die BLX-Appliance schnell Pakete von den zugrunde liegenden Linux-NIC-Ports empfängt, wird die Netzwerkleistung verbessert.

Das Data Plane Development Kit (DPDK) kann verwendet werden, um diesen Engpass zu überwinden. DPDK ist ein Satz von Open Source Linux-Bibliotheken und Netzwerkschnittstellen-Controllern, die für eine bessere Netzwerkleistung Weitere Informationen zu DPDK finden Sie auf der offiziellen DPDK-Website unter https://www.dpdk.org/

DPDK BLX

DPDK hilft bei der Umgehung des Kernels und liefert die Pakete direkt zur weiteren Verarbeitung an die Userspace-Anwendung. In Kombination mit dem Linux-UIO-Modul hilft DPDK der BLX-Appliance, Pakete von/zu den Linux-NIC-Ports zu empfängen/zu übertragen, ohne den Linux-Kernel-Overhead der Paketverarbeitung in Kauf nehmen zu müssen. Sobald Speicher zugewiesen wurde, verwaltet DPDK seinen eigenen Puffer, um eine bessere Leistung zu erzielen.

Eine BLX-Appliance mit DPDK-Unterstützung funktioniert nur im dedizierten Netzwerkmodus.

Überblick und Architektur