Todos los productos
Search
Centro de documentos

Anti-DDoS:Install the TOA kernel module to obtain the originating IP addresses of requests

Última actualización: Sep 09, 2026

Cuando agrega un servicio TCP a Anti-DDoS Proxy para protegerlo, Anti-DDoS Proxy depura el tráfico entrante y lo reenvía a su servidor de origen. Dado que el proxy se ubica entre el cliente y su servidor, el servidor de origen ve la dirección IP del proxy en lugar de la IP real del cliente. Para recuperar la visibilidad de las direcciones IP de origen, instale el módulo de kernel TCP Option Address (TOA) en su servidor de origen.

Este tema abarca los servidores de origen basados en Linux. Hay tres métodos de instalación disponibles; elija el que corresponda a su sistema operativo.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Un servidor de origen que ejecute una distribución de Linux compatible

  • Un servicio no web basado en TCP agregado a Anti-DDoS Proxy mediante puertos (los servicios basados en UDP no son compatibles)

  • Acceso a Internet en el servidor de origen para descargar los paquetes de instalación

  • Permisos de sudo si no es el usuario root

Para servicios web, consulte Obtain the originating IP addresses of requests.

Escenarios compatibles

Escenario

Descripción

Anti-DDoS Proxy - instancia de ECS

El servidor de origen se despliega en una instancia de Elastic Compute Service (ECS). Anti-DDoS Proxy depura el tráfico y lo reenvía a la instancia de ECS.

Anti-DDoS Proxy - instancia de Server Load Balancer (SLB) de capa 4 - instancia de ECS

El servidor de origen se despliega en una instancia de ECS. Anti-DDoS Proxy depura el tráfico y, después, una instancia de SLB de capa 4 lo reenvía a la instancia de ECS.

Anti-DDoS Proxy - servidor en su centro de datos

El servidor de origen se despliega en su centro de datos. Anti-DDoS Proxy depura el tráfico y lo reenvía al servidor del centro de datos.

Elección de un método de instalación

Pruebe primero la instalación en un entorno que no sea de producción. Si el entorno permanece estable, continúe en producción.

Método

Sistemas operativos compatibles

Cuándo usarlo

Método 1: Cargar el módulo VTOA mediante modprobe

Solo Alibaba Cloud Linux 3

Es el método más sencillo y no requiere compilación

Método 2: Compilar desde el código fuente

CentOS, Ubuntu, Debian y otras distribuciones de Linux

Úselo cuando el método 1 o el método 3 no apliquen

Método 3: Instalar mediante RPM Package Manager (RPM)

Red Hat Linux, CentOS 6.x, CentOS 7.x

Recomendado para distribuciones basadas en RPM

Método 1: Cargar el módulo de kernel VTOA mediante modprobe

Este método aplica únicamente para Alibaba Cloud Linux 3.

  1. (Opcional) Haga una copia de seguridad del módulo de kernel TOA integrado. Si ocurre un error durante el reinicio, podrá restaurar el sistema operativo al volver al kernel original.

  2. Cargue el módulo de kernel VTOA.

    modprobe vtoa
  3. Compruebe que el módulo VTOA esté cargado.

    lsmod | grep vtoa
  4. Configure el módulo VTOA para que se cargue automáticamente al iniciar.

    1. Cree el archivo /etc/sysconfig/modules/vtoa.modules con el siguiente contenido: ``bash #!/bin/bash modprobe vtoa > /dev/null 2>&1 ``

    2. Otorgue permisos de ejecución al archivo. ``bash sudo chmod +x /etc/sysconfig/modules/vtoa.modules ``

Método 2: Compilar y cargar el módulo de kernel TOA desde el código fuente

Este método funciona en la mayoría de las distribuciones de Linux, incluidas CentOS, Ubuntu y Debian.

  1. (Opcional) Haga una copia de seguridad del módulo de kernel TOA integrado. Si ocurre un error durante el reinicio, podrá restaurar el sistema operativo al volver al kernel original.

  2. Descargue el paquete de código fuente de TOA. Su servidor debe tener acceso a Internet para descargar este archivo. Seleccione el archivo de origen según la versión de su kernel:

    Versión del kernel

    Archivo de origen

    2.x

    toa_kernel2.x

    3.x

    toa_kernel3.x

    4.x o 5.x

    toa_kernel_common

  3. Instale el entorno de compilación (gcc, kernel-headers y kernel-devel).

    • CentOS: ``bash yum install gcc kernel-headers kernel-devel -y ``

    • Ubuntu o Debian: ``bash apt-get install gcc linux-headers-$(uname -r) -y ``

    Importante

    Si el comando anterior falla en Debian, descargue manualmente los encabezados precompilados. En el siguiente ejemplo se usa Debian 11.11 de 64 bits con la versión de kernel 5.10.0-33-amd64.

    1. Descargue Debian_11.11_5.10.0-33-amd64.zip.

    2. Instale los paquetes en orden:

      sudo dpkg -i linux-headers-5.10.0-33-common_5.10.226-1_all.deb
      sudo dpkg -i linux-kbuild-5.10_5.10.237-1_amd64.deb
      sudo dpkg -i linux-compiler-gcc-10-x86_5.10.237-1_amd64.deb
      sudo dpkg -i linux-headers-5.10.0-33-amd64_5.10.226-1_amd64.deb
  4. Compile el módulo de kernel TOA. Descomprima el paquete de código fuente, vaya a la carpeta correcta y ejecute make. Si no aparecen advertencias ni errores, la compilación se completó correctamente. Confirme que toa.ko esté presente en el directorio actual.

    Para cargar el módulo de kernel TOA en otro servidor, copie el archivo toa.ko a ese servidor y siga los pasos restantes allí.
    # Navigate to the folder that matches your kernel version:
    # Kernel 2.x: cd toa_kernel2.x/
    # Kernel 3.x: cd toa_kernel3.x/
    # Kernel 4.x or 5.x: cd toa_kernel_common/
    cd toa_kernel3.x/
    make
  5. Cargue el módulo de kernel TOA.

    mv toa.ko /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko && depmod
    insmod /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko
  6. Compruebe que el módulo TOA esté cargado.

    lsmod | grep toa
  7. Configure el módulo TOA para que se cargue automáticamente al iniciar.

    • CentOS:

      1. Cree el archivo /etc/sysconfig/modules/toa.modules con el siguiente contenido: ``bash #!/bin/bash if [ -e /lib/modules/ uname -r /kernel/net/netfilter/ipvs/toa.ko ] ; then insmod /lib/modules/ uname -r /kernel/net/netfilter/ipvs/toa.ko > /dev/null 2>&1 fi ``

      2. Otorgue permisos de ejecución al archivo. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

    • Ubuntu o Debian: Cree el archivo /etc/modules-load.d/toa.conf con el siguiente contenido: `` toa ``

  8. Reinicie el sistema operativo.

    sudo reboot

Método 3: Instalar el módulo de kernel TOA mediante RPM

Sistemas operativos compatibles:

  • Red Hat Linux

  • CentOS 6.x

  • CentOS 7.x

  1. (Opcional) Haga una copia de seguridad del módulo de kernel TOA integrado. Si ocurre un error durante el reinicio, podrá restaurar el sistema operativo al volver al kernel original.

  2. Descargue el archivo de instalación correspondiente a su sistema operativo. Su servidor debe tener acceso a Internet para descargar este archivo.

  3. Instale el módulo de kernel TOA.

    • CentOS 7.x: vaya al directorio que contiene el archivo descargado y ejecute:

      sudo yum localinstall kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm
      Nota

      Note: Use yum localinstall para evitar problemas de dependencias. Como alternativa, ejecute sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm.

    • CentOS 6.x o Red Hat Enterprise Linux: vaya al directorio que contiene los archivos descargados y ejecute:

      sudo rpm -ivh kernel-firmware-2.6.32-696.13.2.el6.centos.plus.toa.x86_64.rpm
      sudo rpm -ivh kernel-2.6.32-696.13.2.el6.centos.plus.toa.x86_64.rpm
      Nota

      Note:

      • Si kernel-firmware ya está en la versión 2.6.32-696.13.2.el6.centos.plus.toa o posterior, ejecute solo el segundo comando.

      • Si ocurren errores de dependencias, agregue --nodeps al comando rpm.

      • Si la versión del kernel instalado es posterior a la versión del módulo TOA, agregue --force para instalarlo de todos modos.

  4. Configure el módulo TOA para que se cargue automáticamente al iniciar.

    1. Cree el archivo /etc/sysconfig/modules/toa.modules con el contenido correspondiente a la versión de su sistema operativo:

      • CentOS 7.x: ``bash #!/bin/bash if [ -e /lib/modules/ uname -r /kernel/net/toa/toa.ko.xz ] ; then modprobe toa > /dev/null 2>&1 fi ``

      • CentOS 6.x o Red Hat Enterprise Linux: ``bash #!/bin/bash if [ -e /lib/modules/ uname -r /kernel/net/toa/toa.ko ] ; then modprobe toa > /dev/null 2>&1 fi ``

    2. Otorgue permisos de ejecución al archivo. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

  5. Reinicie el sistema operativo.

    reboot

Resultados

Una vez instalado el módulo de kernel TOA, el servidor puede obtener las direcciones IP de origen de las solicitudes.

Si el servidor no logra obtener las direcciones IP de origen de las solicitudes, ejecute el siguiente comando para comprobar si el módulo de kernel TOA está cargado.

lsmod | grep toa

Si el módulo TOA no está cargado, ejecute el siguiente comando para cargarlo manualmente.

modprobe toa

Después de cargar el módulo de kernel TOA, revise los registros de acceso de su servidor para confirmar que el servidor de origen obtiene correctamente las direcciones IP de origen de las solicitudes.

Gestión del módulo de kernel TOA

  • Deshabilite temporalmente el módulo de kernel TOA:

    rmmod toa.ko
  • Desinstale el módulo de kernel TOA:

    rmmod toa
  • Compruebe que el módulo de kernel TOA se haya desinstalado. La salida de dmesg incluye "TOA unloaded" si el módulo se eliminó correctamente.

    dmesg -T

Preguntas frecuentes

¿Cómo afecta el módulo de kernel TOA al rendimiento de la red?

El módulo TOA se ejecuta en modo bypass, por lo que su impacto en el rendimiento de la red es mínimo.

¿Por qué no puedo obtener las direcciones IP de origen después de actualizar el kernel de Linux?

Tras una actualización del kernel, el módulo TOA existente deja de coincidir con el nuevo kernel. Recompile y reinstale el módulo TOA cada vez que actualice el kernel de Linux.

Pasos siguientes

Obtain the originating IP addresses of requests: para servicios web protegidos por Anti-DDoS Proxy