通用架构
NetScaler BLX 是 NetScaler 的一种软件形态,提供与其他形态相同的功能。它作为用户空间应用程序在 Linux 主机上运行。
NetScaler BLX 使用 Linux 驱动程序进行数据包的接收/发送以及管理 NIC 端口。在启动阶段创建的虚拟以太网 (veths) 接口
blx0 和 blx1 用于 Linux 主机和 NetScaler BLX 之间的通信。例如,NetScaler BLX 使用 veths 将日志信息发送到 Linux 主机上的 syslog 守护程序。
在 NetScaler BLX 中,
/etc/blx/blx.conf(NetScaler BLX 的启动配置文件)文件中指定的 Linux 主机的 NIC 端口专用于 NetScaler BLX。这些 NIC 端口不与主机上运行的其他应用程序共享。只有 NetScaler BLX 才能看到这些专用 NIC 端口。
IP 寻址方案类似于传统的 NetScaler。NetScaler BLX 可以为 NetScaler IP (NSIP)、虚拟服务器 IP (VIP) 和子网 IP (SNIP) 配置不同的 IP 地址。
NetScaler BLX 从外部网络接收数据包,处理接收到的数据包,并通过配置的专用 Linux NIC 端口直接响应。它拥有一个完整的 TCP/IP 堆栈来处理数据包,绕过了 Linux 内核的 TCP/IP 堆栈。NetScaler BLX 直接与 Linux 内核驱动程序交互,从 NIC 端口获取原始数据包。
尽管 NetScaler BLX 绕过了 Linux 内核的网络堆栈,但在 Linux 内核内存和用户空间内存之间传输数据包仍然存在开销。这种开销会影响数据包处理的整体性能。我们建议使用数据平面开发套件 (DPDK) 兼容的 NIC 以实现高性能数据包处理。有关 NetScaler BLX 支持的 DPDK 兼容 NIC 列表,请参阅 Linux 主机的硬件要求。
DPDK 是一套开源 Linux 库和网络接口控制器,用于提高网络性能。有关 DPDK 的更多信息,请访问 DPDK 官方网站 https://www.dpdk.org/。
DPDK 有助于绕过内核内存,并将数据包直接传递到用户空间内存进行处理。DPDK 与 Linux UIO 模块结合使用,使 NetScaler BLX 能够接收和传输数据包,而无需涉及 Linux 内核将数据包从内核内存复制到用户空间内存的开销。一旦分配了内存,DPDK 就会管理其缓冲区以实现更好的性能。
注意:
如果满足以下条件之一,NetScaler BLX 可能会在没有 DPDK 支持的情况下启动。
-
NetScaler BLX 不支持专用的 DPDK 兼容 NIC 端口。
-
DPDK 不支持专用 NIC 端口。