概述和体系结构

Citrix ADC BLX 设备是 Citrix ADC 的软件规格。它旨在在商用现成服务器(COTS)上的裸机Linux上本地运行。

以下是使用 Citrix ADC BLX 设备的好处:

  • 云就绪。Citrix ADC BLX 为在云上运行提供零日支持。

    Citrix ADC BLX 设备不需要任何认证即可在云上运行,因为它们作为软件应用程序在云上置备的 Linux 虚拟机上运行。

  • 易于管理。作为 Linux 操作系统一部分提供的标准工具可用于轻松监视和管理 Citrix ADC BLX 设备。Citrix ADC BLX 设备可以使用现有的编排设置轻松插入。

  • 无缝的第三方工具集成。Linux 环境支持的开源工具(例如监视、调试和日志记录)可以与 Citrix ADC BLX 设备无缝集成。无需为每个集成开发单独的插件。

  • 其他应用程序的共存。由于 Citrix ADC BLX 设备作为软件应用程序运行,因此其他 Linux 应用程序也可以在同一主机上运行。

  • DPDK 支持。Citrix ADC BLX 设备支持数据平面开发套件 (DPDK) 集成,以获得更好的性能。Citrix ADC BLX 设备使用 DPDK 开源库来提高性能,并克服了数据包处理中的 Linux 内核瓶颈。

常规体系结构

Citrix ADC BLX 设备是 Citrix ADC 的软件外形规格,其功能与传统 Citrix ADC 设备相同。Citrix ADC BLX 设备在 Linux 系统中作为用户空间应用程序运行。BLX 设备使用 Linux 驱动程序处理数据包的 Rx/Tx 并管理网卡端口。在 Citrix ADC BLX 启动阶段创建的虚拟接口 blx0blx1 用于内核与 BLX 设备之间的通信。

体系结构 BLX

网络模式

Citrix ADC BLX 设备的网络模式定义了 Linux 主机的网卡端口是共享还是不与主机上运行的其他 Linux 应用程序共享。可以将 Citrix ADC BLX 设备配置为在以下网络模式之一上运行:

  • 共享模式
  • 专用模式

共享模式

配置为在共享模式下运行的 Citrix ADC BLX 设备与其他 Linux 应用程序共享 Linux 主机 NIC 端口。

共享模式 BLX

处于共享模式的 Citrix ADC BLX 设备会自动分配网络地址 192.0.0.1/24。

共享模式下的 Citrix ADC BLX 设备使用一个用于管理和数据流量的单个 IP 地址运行。所有 Citrix ADC 拥有的 IP 地址(例如 NSIP、SNIP 和 VIP)都具有相同的 IP 地址 192.0.0.1,但端口号不同。换句话说,这个单一 IP 地址 (192.0.0.1) 使用不同的端口号来充当 NSIP、SNIP 和 VIP。

由于 Linux NIC 端口在 BLX 设备和其他 Linux 应用程序之间共享,因此会在 BLX 设备的内核中添加一个 IP NAT 表。Linux 主机使用此 IP NAT 表来识别在属于 Citrix ADC BLX 设备的 Linux NIC 端口上收到的数据包。

然后,Linux 主机通过将收到的数据包的目标 IP 地址转换为 Citrix ADC BLX 设备的 IP 地址 (192.0.0.1) 来执行 NAT。Citrix ADC BLX 设备通过 blx0blx1 虚拟接口接收数据包 (veth)。

Citrix ADC BLX 设备处理收到的数据包,然后通过 blx1blx0 虚拟接口将它们发送到 Linux 内核。Linux 主机使用 BLX IP NAT 表对这些数据包执行 NAT,然后通过 Linux NIC 端口将它们发送到目的地。

专用模式

在专用模式下配置的 Citrix ADC BLX 设备具有专用的 Linux 主机网卡端口,并且不与其他 Linux 应用程序共享这些端口。

主机上的其他 Linux 应用程序看不到专用于Citrix ADC BLX 设备的 Linux 网卡端口。

专用模式 BLX

处于专用模式的 Citrix ADC BLX 设备上的 IP 编址方案与传统 Citrix ADC 设备上的 IP 编址方案相似。在处于专用模式的 Citrix ADC BLX 设备上,ADC 拥有的 IP 地址(例如 NSIP、SNIP 和 VIP)可以具有不同的 IP 地址。

与共享模式不同,处于专用模式的 Citrix ADC BLX 设备不需要 NAT 操作。Citrix ADC BLX 设备通过配置的专用 Linux NIC 端口直接从外部网络设备接收/响应数据包。

处于专用模式的 Citrix ADC BLX 设备仍使用 blx0blx1 虚拟接口 (veths) 向 Linux 内核发送系统日志和其他与管理相关的信息。

支持数据平面开发套件 (DPDK) 的 Citrix ADC BLX 设备

Citrix BLX 设备使用传统的 Linux 驱动程序来接收数据包并管理 NIC 端口。使用 Linux 驱动程序在用户空间的 Linux 内核和 BLX 设备之间传输的数据包会产生一些开销。这些开销会影响 BLX 设备的性能。

Citrix ADC BLX 设备具有完整的 TCP/IP 堆栈来处理任何数据包。如果 BLX 设备能够快速地从底层 Linux NIC 端口接收数据包,则网络性能会得到改善。

数据平面开发套件 (DPDK) 可用于克服这一瓶颈。DPDK 是一组用于提高网络性能的开源 Linux 库和网络接口控制器。有关 DPDK 的更多信息,请访问 DPDK 官方网站 https://www.dpdk.org/

DPDK BOX

DPDK 有助于绕过内核,直接将数据包传送到用户空间应用程序以进行进一步处理。DPDK 与 Linux UIO 模块结合使用,可帮助 Citrix ADC BLX 设备从 Linux NIC 端口接收/传输数据包,而不会涉及数据包处理的 Linux 内核开销。分配内存后,DPDK 将管理自己的缓冲区以实现更好的性能。

支持 DPDK 的 Citrix ADC BLX 设备只能在专用网络模式下工作。

概述和体系结构