Implementar un dispositivo NetScaler BLX con soporte DPDK

Los dispositivos NetScaler BLX admiten el Kit de desarrollo de plano de datos (DPDK), que es un conjunto de bibliotecas de Linux y controladores de interfaz de red para un mejor rendimiento de la red. Un dispositivo BLX compatible con DPDK solo funciona en modo de red dedicada. Para implementar un dispositivo BLX compatible con DPDK en un host Linux, se requieren los siguientes pasos:

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

Descargar, instalar y compilar bibliotecas DPDK en el host Linux

Las bibliotecas de 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, establecer variables de entorno DPDK y compilar las bibliotecas DPDK.

Para descargar las bibliotecas DPDK compatibles en el host Linux:

  1. Acceda a la página oficial de descargas de DPDK.

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

    DPDK 17.11.6 (LTS)

Después de descargar las bibliotecas DPDK, extraiga el paquete DPDK en el host Linux, establezca la variable de entorno DPDK RTE_SDK y, a continuación, 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 de DPDK, debe configurar DPDK en el host de Linux. La configuración de DPDK incluye las siguientes tareas:

  • Inserte el módulo kernel de DPDK IGB UIO
  • Enlace los puertos NIC del host Linux, que se usarán para el dispositivo BLX, al módulo DPDK IGB UIO.
  • Configurar hugepages para DPDK

Utilice el script de configuración de DPDK (dpdk-setup.sh), que se encuentra en el subdirectorio usertools de DPDK, para realizar estas tareas.

Nota

Para su comodidad, se agregan los siguientes procedimientos relacionados con el DPDK. 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.

Inserte el módulo kernel de DPDK IGB UIO

Para insertar el módulo kernel de 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 indicador del usuario y pulse Intro.

    .
    .
    [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-->
    

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

Para enlazar 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 indicador del usuario y pulse Intro.

    .
    .
    [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 host de Linux, que desea vincular al módulo kernel de DPDK IGB UIO, en el símbolo del usuario y presione Entrar:

    ```

Dispositivos de red que utilizan un controlador compatible con DPDK ============================================

0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb

Dispositivos de red que usan el controlador kernel ===================================

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 ……….. Dispositivos Mempool que utilizan el controlador del núcleo ===================================

<none>

Otros dispositivos Mempool =====================

<none>

Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0

```
  1. Repita los pasos anteriores para vincular otro puerto de red host Linux al módulo DPDK IGB UIO.

Configurar hugepages para DPDK

hugepages Para configurar el DPDK:

  1. Ejecute el script dpdk-setup.sh:

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

  2. Escriba la opción 20 o 21, basada en la arquitectura de memoria del host de Linux, en el símbolo del usuario y presione Entrar.

    .
    .
    [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
    
    
  3. Escriba el número de hugepages, que se reservará para DPDK, en la línea de comandos del usuario y presione Intro:

    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
    
    

Configurar el dispositivo BLX para la compatibilidad con DPDK

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

  • Configuración de 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 usará el dispositivo BLX compatible con DPDK. El valor predeterminado se establece en 8 (0xff). La cantidad máxima de motores de paquetes admitidos por el dispositivo BLX compatible con DPDK es 28.

Nota

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

Para configurar el dispositivo BLX para que sea compatible con DPDK:

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

    /etc/blx/blx.conf

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

    # dpdk-config: -c 0xff

    Configuración de ejemplo

    En el siguiente extracto de ejemplo de un archivo blx.conf, se habilita el parámetro dpdk-config.

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

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 accede al dispositivo con fines de administración. La dirección IP de administración del dispositivo BLX también se denomina dirección IP (NSIP) de Citrix ADC.

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

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

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

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

    /etc/blx/blx.conf

  2. Elimine el comentario del siguiente parámetro y defina la dirección IP de administración:

    # ipaddress:

  3. Elimine el comentario del siguiente parámetro y defina la ruta predeterminada en la sección de ruta estática:

    # default

Configuración de ejemplo:

En el siguiente extracto de ejemplo de blx.conf file, se establecen la dirección IP de administración y la ruta predeterminada:

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.

Iniciar el dispositivo BLX compatible con DPDK

Inicie el dispositivo BLX ejecutando el siguiente comando:

systemctl start blx

El dispositivo BLX se encuentra ahora en estado Activo.

Compruebe de nuevo el estado del dispositivo BLX:

systemctl status blx

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

  • CLI de Citrix ADC
  • GUI de Citrix ADC
  • API de 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 funciones de Citrix ADC, consulte la documentación de Citrix ADC. ```

Implementar un dispositivo NetScaler BLX con soporte DPDK