常规体系结构
NetScaler BLX 是 NetScaler 的一种软件外形规格,提供与其他外形规格相同的功能。它作为用户空间应用程序在 Linux 主机上运行。
BLX 使用 Linux 驱动程序对数据包进行接收/发送以及管理 NIC 端口。在启动阶段创建的虚拟以太网 (veths)接口 blx0
和 blx1
,用于 Linux 主机与 BLX 之间的通信。例如,BLX 使用 veths 向 Linux 主机上的 syslog 守护程序发送日志信息。
BLX 的网络模式定义了 Linux 主机的 NIC 端口是否与该主机上运行的其他 Linux 应用程序共享。您可以将 BLX 配置为在以下网络模式之一下运行:
-
专用模式 - Linux 主机的 NIC 端口专用 BLX,不与其他 Linux 应用程序共享。
-
共享模式 - Linux 主机的 NIC 端口与其他 Linux 应用程序共享。
NetScaler BLX 处于专用模式
在专用模式下,blx.conf
(BLX 的启动配置文件)文件中指定的 Linux 主机的 NIC 端口专用 BLX。这些 NIC 端口不与主机上运行的其他应用程序共享。只有 BLX 可以看到专用 NIC 端口。
专用模式下的 IP 寻址方案与传统 NetScaler 类似。BLX 可以为 NetScaler IP (NSIP)、虚拟服务器 IP (VIP) 和子网 IP (SNIP) 使用不同的 IP 地址。
BLX 接收来自外部网络的数据包,处理收到的数据包,并直接通过配置的专用 Linux NIC 端口进行响应。它有一个完善的 TCP/IP 堆栈来处理数据包,绕过了 Linux 内核的 TCP/IP 堆栈。BLX 直接与 Linux 内核驱动程序交互,从 NIC 端口挑选原始数据包。
尽管 BLX 绕过了 Linux 内核的网络堆栈,但在 Linux 内核内存和用户空间内存之间传输数据包仍然存在开销。这种开销会影响数据包处理的整体性能。我们建议使用与 Data Plane Development Kit (DPDK) 兼容的 NIC 来提高数据包处理性能。有关 BLX 支持的 DPDK 兼容 NIC 的列表,请参阅 Linux 主机的硬件要求。
DPDK 是一组开源 Linux 库和网络接口控制器,用于提高网络性能。有关 DPDK 的更多信息,请访问 DPDK 官方 Web 站点 https://www.dpdk.org/。
DPDK 有助于绕过内核内存,将数据包直接传送到用户空间内存进行处理。DPDK 与 Linux UIO 模块相结合,允许 BLX 接收和传输数据包,而不涉及将数据包从内核内存复制到用户空间内存的 Linux 内核开销。分配内存后,DPDK 会管理其缓冲区以实现更好的性能。
注意:
如果满足以下条件之一,BLX 可能会在不支持 DPDK 的情况下以专用模式启动。
- BLX 不支持兼容 DPDK 的专用 NIC 端口。
- DPDK 不支持专用 NIC 端口。
共享模式下的 NetScaler BLX
在共享模式下,Linux 主机的 NIC 端口与其他 Linux 应用程序共享,以接收和传输数据包。BLX 自动分配的 IP 地址为 192.0.0.1/24。此 IP 地址用于管理和数据流量。所有 NetScaler 拥有的 IP 地址(例如 NSIP、SNIP 和 VIP 地址)都具有相同的 192.0.0.1 的 IP 地址,但端口号不同。换句话说,这个单一 IP 地址 (192.0.0.1) 使用不同的端口号来充当 NSIP、SNIP 和 VIP。
由于主机 Linux NIC 端口在 BLX 和其他 Linux 应用程序之间共享,因此会向 NAT 添加一个 IP 表规则。此 IP 表规则用于将主机上接收到的流量转发到 BLX 进行进一步处理。
Linux 主机将收到的数据包的目标 IP 地址转换为 BLX 的 IP 地址 (192.0.0.1
)。BLX 通过 blx0
和 blx1
虚拟接口接收数据包。
BLX 处理接收到的数据包,并通过 blx1
和 blx0
虚拟接口将它们发送到 Linux 内核。Linux 主机使用 BLX IP NAT 表对这些数据包执行 NAT,然后通过 Linux NIC 端口将它们发送到目的地。
注意:
我们不建议在共享模式下为生产设置配置 BLX。
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.