Descripción general y arquitectura
El dispositivo NetScaler BLX es un formato de software de Citrix ADC. Está diseñado para ejecutarse de forma nativa en Linux bare metal en servidores comerciales listos para usar (COTS).
A continuación se presentan los beneficios de usar un dispositivo BLX:
-
Preparado para cloud. BLX proporciona compatibilidad desde el día cero para ejecutarse en la nube.
Los dispositivos BLX no requieren ninguna certificación para ejecutarse en la nube porque se ejecutan como una aplicación de software en máquinas virtuales Linux aprovisionadas en la nube.
-
Fácil administración. Las herramientas estándar disponibles como parte del sistema operativo Linux se pueden utilizar para supervisar y administrar fácilmente los dispositivos BLX. Los dispositivos BLX se pueden conectar fácilmente con una configuración de orquestación existente.
-
Integración perfecta de herramientas de terceros. Las herramientas de código abierto (por ejemplo, supervisión, depuración y registro) compatibles con entornos Linux se pueden integrar sin problemas con los dispositivos BLX. No hay necesidad de desarrollar plug-ins separados para cada integración.
-
Coexistencia de otras aplicaciones. Como los dispositivos BLX se ejecutan como una aplicación de software, otras aplicaciones Linux también pueden ejecutarse en el mismo host.
-
Compatibilidad con DPDK. El dispositivo BLX admite la integración del kit de desarrollo de planos de datos (DPDK) para un mejor rendimiento. Un dispositivo BLX usa la biblioteca de código abierto DPDK para mejorar el rendimiento y supera el cuello de botella del kernel de Linux en el procesamiento de paquetes.
Arquitectura general
El dispositivo BLX es un factor de forma de software de Citrix ADC y proporciona la misma funcionalidad que un dispositivo Citrix ADC tradicional. Un dispositivo BLX se ejecuta como una aplicación de espacio de usuario en un sistema Linux. El dispositivo BLX utiliza los controladores de Linux para Rx/Tx de paquetes y para administrar los puertos NIC. Las interfaces virtuales blx0
y blx1
, que se crean durante la fase de arranque del BLX, se usan para la comunicación entre el kernel y el dispositivo BLX.
Modos de red
El modo de red de un dispositivo BLX define si los puertos NIC del host Linux se comparten o no con otras aplicaciones Linux que se ejecutan en el host. Un dispositivo BLX se puede configurar para que se ejecute en uno de los siguientes modos de red:
- Modo compartido
- Modo dedicado
Modo compartido
Un dispositivo BLX configurado para ejecutarse en modo compartido comparte los puertos NIC del host Linux con otras aplicaciones Linux.
A un dispositivo BLX en modo compartido se le asigna automáticamente la dirección de red 192.0.0.1/24.
Un dispositivo BLX en modo compartido funciona con una única dirección IP que se usa para la administración y el tráfico de datos. Todas las direcciones IP propiedad de Citrix ADC (por ejemplo, NSIP, SNIP y VIP) tienen la misma dirección IP de 192.0.0.1 pero con números de puerto diferentes. En otras palabras, esta única dirección IP (192.0.0.1) utiliza diferentes números de puerto para funcionar como NSIP, SNIP y VIP.
Como los puertos NIC de Linux se comparten entre el dispositivo BLX y otras aplicaciones Linux, se agrega una tabla NAT IP en el kernel para el dispositivo BLX. El host Linux utiliza esta tabla NAT IP para reconocer los paquetes recibidos en los puertos NIC de Linux que pertenecen al dispositivo BLX.
A continuación, el host Linux realiza la NAT traduciendo la dirección IP de destino del paquete recibido a la dirección IP (192.0.0.1) del dispositivo BLX. El dispositivo BLX recibe los paquetes a través de las interfaces virtuales blx0
y blx1
(veth
).
El dispositivo BLX procesa los paquetes recibidos y los envía al kernel de Linux a través de las interfaces virtuales blx1
y blx0
. El host Linux realiza NAT en estos paquetes mediante la tabla NAT IP BLX y, a continuación, los envía al destino a través de los puertos NIC de Linux.
Modo dedicado
Un dispositivo BLX configurado en modo dedicado tiene puertos NIC de host Linux dedicados y no comparte los puertos con otras aplicaciones Linux.
Otras aplicaciones Linux del host no ven los puertos NIC de Linux dedicados al dispositivo BLX.
El esquema de direccionamiento IP de un dispositivo BLX en modo dedicado es similar al de un dispositivo Citrix ADC tradicional. En un dispositivo BLX en modo dedicado, las direcciones IP que pertenecen a ADC (por ejemplo, NSIP, SNIP y VIP) pueden tener direcciones IP diferentes.
A diferencia del modo compartido, no se requiere ninguna operación de NAT para el dispositivo BLX en modo dedicado. El dispositivo BLX recibe/responde paquetes directamente desde/hacia el dispositivo de red externo a través de los puertos NIC de Linux dedicados configurados.
El dispositivo BLX en modo dedicado todavía usa interfaces virtuales blx0
y blx1
(veths
) para enviar SYSLOG y otra información relacionada con la administración al kernel de Linux.
Dispositivo BLX compatible con el kit de desarrollo de planos de datos (DPDK)
Un dispositivo BLX usa los controladores Linux tradicionales para Rx/Tx de paquetes y para administrar los puertos NIC. Los paquetes transmitidos entre el kernel de Linux y el dispositivo BLX en el espacio de usuario mediante los controladores de Linux tienen varios gastos generales. Estos gastos generales afectan al rendimiento del dispositivo BLX.
El dispositivo BLX tiene una pila TCP/IP completa para procesar cualquier paquete. Si el dispositivo BLX tiene una forma rápida de recibir paquetes de los puertos NIC de Linux subyacentes, se mejora el rendimiento de la red.
El kit de desarrollo de planos de datos (DPDK) se puede utilizar para superar este cuello de botella. DPDK es un conjunto de bibliotecas Linux de código abierto y controladores de interfaz de red que se utilizan para un mejor rendimiento de la red. Para obtener más información sobre la DPDK, consulte el sitio web oficial de la DPDK en https://www.dpdk.org/
DPDK ayuda a omitir el núcleo y entrega directamente los paquetes a la aplicación de espacio de usuario para su posterior procesamiento. DPDK, en combinación con el módulo UIO de Linux, ayuda al dispositivo BLX a recibir/transmitir paquetes desde/hacia los puertos NIC de Linux sin implicar la sobrecarga del kernel de Linux del procesamiento de paquetes. Una vez que se asigna la memoria, DPDK administra su propio búfer para lograr un mejor rendimiento.
Un dispositivo BLX compatible con DPDK solo funciona en modo de red dedicada.