Implementar un dispositivo NetScaler BLX con soporte DPDK

Los dispositivos NetScaler BLX son compatibles con Data Plane Development Kit (DPDK), que es un conjunto de bibliotecas Linux y controladores de interfaz de red para un mejor rendimiento de la red. Un dispositivo BLX con soporte DPDK solo funciona en modo de red dedicado. La implementación de un dispositivo BLX con soporte DPDK en un host Linux consta de los siguientes pasos:

  • Descargue, instale y compile las bibliotecas DPDK en el host Linux
  • Configurar DPDK en el host Linux
  • Configurar el dispositivo BLX para compatibilidad con DPDK
  • Configuración de la dirección IP de administración del dispositivo BLX por primera vez
  • Iniciar el dispositivo BLX

Descargue, instale y compile las bibliotecas DPDK en el host Linux

Las bibliotecas DPDK están alojadas en el sitio web oficial de DPDK. La instalación de las bibliotecas DPDK en el host Linux consiste en extraer el paquete DPDK, configurar las variables de entorno DPDK y compilar las bibliotecas DPDK.

Para descargar las bibliotecas DPDK compatibles en el host Linux:

  1. Accede a la página oficial de Descargas DPDK .

  2. Descargue la siguiente versión compatible del paquete DPDK en el host Linux:

    Versión 17.11.6 (LTS)

Después de descargar las bibliotecas DPDK, extraiga el paquete DPDK en el host Linux, configure la variable de entorno DPDK RTE_SDK y luego compile las bibliotecas DPDK:

export RTE_SDK=<path to the extracted DPDK installation directory on the Linux host>

Para obtener más información sobre la instalación y compilación de DPDK en un dispositivo Linux, consulte la documentación oficial de DPDK en Documentación oficial de DPDK.

Configurar DPDK en el host Linux

Después de instalar las bibliotecas DPDK, debe configurar DPDK en el host Linux. La configuración de DPDK incluye las siguientes tareas:

  • Insertar el módulo kernel DPDK IGB UIO
  • Vincula los puertos NIC del host Linux, que se utilizarán para el dispositivo BLX, al módulo DPDK IGB UIO.
  • Configurar páginas enormes para DPDK

Utilice el script de instalación DPDK (dpdk-setup.sh), ubicado en el subdirectorio DPDK usertools , para realizar estas tareas.

Nota

Se agregan los siguientes procedimientos relacionados con DPDK para su conveniencia. Para obtener más información sobre la configuración de DPDK en un sistema Linux, consulte la documentación oficial de DPDK en Documentación oficial de DPDK.

Insertar el módulo kernel DPDK IGB UIO

Para insertar el módulo de kernel DPDK IGB UIO:

  1. Ejecute el script dpdk-setup.sh:

    bash $RTE_SDK/usertools/dpdk-setup.sh

  2. Escriba la opción 17 en el mensaje de usuario y presione Enter.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 17
    
    <!--NeedCopy-->
    

Vincular los puertos NIC del host Linux al módulo DPDK IGB UIO

Para vincular los puertos NIC del host Linux al módulo DPDK IGB UIO:

  1. Ejecute el script dpdk-setup.sh:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. Escriba la opción 23 en el mensaje de usuario y presione Enter.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 23
    
    <!--NeedCopy-->
    
  3. Escriba la dirección PCI del puerto de host Linux que desea vincular al módulo de kernel DPDK IGB UIO en el indicador de usuario y presione Entrar:

    
    Network devices using DPDK-compatible driver
    ============================================
    0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb
    
    Network devices using kernel driver
    ===================================
    0000:01:00.0 'Ethernet Controller 10-Gigabit X540-AT2 1528' if=eno1 drv=ixgbe unused=igb_uio *Active*
    0000:01:00.1 'Ethernet Controller 10-Gigabit X540-AT2 1528' if=eno2 drv=ixgbe unused=igb_uio
    0000:83:00.0 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f0 drv=igb unused=igb_uio
    0000:02:00.0 'Ethernet Controller XL710 for 40GbE QSFP+ 1584' drv=i40e unused=igb_uio. << add
    0000:83:00.2 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f2 drv=igb unused=igb_uio
    0000:83:00.3 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f3 drv=igb unused=igb_uio
    0000:84:00.0 'I350 Gigabit Fiber Network Connection 1522' if=enp132s0f0 drv=igb unused=igb_uio
    0000:84:00.1 'I350 Gigabit Fiber Network Connection 1522' if=enp132s0f1 drv=igb unused=igb_uio
    ………..
    Mempool devices using kernel driver
    ===================================
    <none>
    
    Other Mempool devices
    =====================
    <none>
    
    
    Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0
    
    <!--NeedCopy-->
    
  4. Repita los pasos anteriores para vincular otro puerto de red de host Linux al módulo DPDK IGB UIO.

Configurar páginas enormes para DPDK

Para configurar páginas enormes para DPDK:

  1. Ejecute el script dpdk-setup.sh:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. Escriba la opción 20 o 21, según la arquitectura de memoria del host Linux, en el indicador de usuario y presione Enter.

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems.
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 21
    
    <!--NeedCopy-->
    
  3. Escriba la cantidad de páginas enormesque se reservarán para DPDK en el mensaje de usuario y presione Enter:

    Removing currently reserved hugepages
    Unmounting /mnt/huge and removing directory
    
    Input the number of 2048kB hugepages
    Example: to have 128MB of hugepages available in a 2MB huge page system,
    enter '64' to reserve 64 * 2MB pages
    
    Number of pages: 1024
    
    Reserving hugepages
    Creating /mnt/huge and mounting as hugetlbfs
    
    <!--NeedCopy-->
    

Configurar el dispositivo BLX para compatibilidad con DPDK

Para configurar el dispositivo BLX para compatibilidad con DPDK, debe configurar el siguiente parámetro en el archivo de configuración de BLX (blx.conf).

  • Configuración DPDK. Este parámetro permite que el dispositivo BLX se inicie en modo DPDK para un mejor rendimiento. Además, este parámetro especifica la cantidad de motores de paquetes que utilizará el dispositivo BLX con soporte DPDK. El valor predeterminado se establece en 8 (0xff). La cantidad máxima de motores de paquetes admitidos por el dispositivo BLX con soporte DPDK es 28.

Nota

Después de configurar el parámetro DPDK config e iniciar el dispositivo BLX, los puertos NIC de Linux vinculados a DPDK se agregan automáticamente como parte del dispositivo BLX.

Para configurar el dispositivo BLX para compatibilidad con DPDK:

  1. Abra el archivo de configuración BLX (blx.conf) presente en el host Linux. La ruta completa del archivo de configuración BLX es:

    /etc/blx/blx.conf

  2. Descomente la siguiente línea, que contiene el parámetro dpdk-config , en el archivo de configuración BLX (blx.conf) eliminando el # (símbolo almohadilla) al comienzo de la línea:

    # dpdk-config: -c 0xff

    Configuración de muestra

    En el siguiente extracto de muestra de un archivo blx.conf , la configuración del parámetro dpdk-config está habilitada.

    .
    .
    # dpdk EAL core mask parameter. Applicable only when blx-dpdk is installed.
    
    dpdk-config: -c 0xff
    .
    .
    <!--NeedCopy-->
    

Configuración de la dirección IP de administración del dispositivo BLX por primera vez

La dirección IP de administración de un dispositivo BLX es la dirección IP desde la que se accede al dispositivo para fines de administración. La dirección IP de administración del dispositivo BLX también se denomina dirección IP de Citrix ADC (NSIP).

Un dispositivo BLX solo puede tener una dirección IP de Citrix ADC (NSIP). Además, debe agregar una ruta predeterminada para la subred IP de Citrix ADC configurada para que la IP de Citrix ADC sea accesible desde otras redes en la LAN.

Para configurar la dirección IP de administración del dispositivo BLX por primera vez, debe configurar los parámetros relacionados en el archivo de configuración de BLX (blx.conf).

Para configurar la dirección IP de administración y la ruta predeterminada por primera vez:

  1. Abra el archivo de configuración BLX (blx.conf) presente en el host Linux. La ruta completa del archivo de configuración BLX es:

    /etc/blx/blx.conf

  2. Descomente el siguiente parámetro y configure la dirección IP de administración:

    # ipaddress:

  3. Descomente el siguiente parámetro y establezca la ruta predeterminada en la sección de ruta estática:

    # default

Configuración de muestra:

En el siguiente extracto de muestra de un archivo blx.conf ``, se configuran la dirección IP de administración y la ruta predeterminada:

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.
<!--NeedCopy-->

Cómo iniciar el dispositivo BLX con soporte DPDK

Inicie el dispositivo BLX ejecutando el siguiente comando:

systemctl start blx

El dispositivo BLX ahora está en estado Activo .

Verifique nuevamente el estado del dispositivo BLX:

systemctl status blx

Después de instalar e iniciar correctamente un dispositivo BLX, puede configurar las funciones de Citrix ADC en el dispositivo mediante uno de los siguientes métodos:

  • Interfaz de línea de comandos de Citrix ADC
  • Interfaz gráfica de usuario de Citrix ADC
  • API REST de Citrix NITRO

Para obtener más información sobre el uso de estos métodos, consulte Configurar un dispositivo BLX.

Para obtener más información sobre las características de Citrix ADC, consulte Documentación de Citrix ADC.

Implementar un dispositivo NetScaler BLX con soporte DPDK