Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Aug 11, 2026

Lorsque vous ajoutez un service TCP à Anti-DDoS Proxy pour le protéger, celui-ci nettoie le trafic entrant et le transfère vers votre serveur d'origine. Comme le proxy s'intercale entre le client et votre serveur, ce dernier voit l'adresse IP du proxy au lieu de l'adresse IP réelle du client. Pour retrouver la visibilité sur les adresses IP d'origine, installez le module noyau TCP Option Address (TOA) sur votre serveur d'origine.

Cette rubrique concerne les serveurs d'origine sous Linux. Trois méthodes d'installation sont disponibles : choisissez celle qui correspond à votre système d'exploitation.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un serveur d'origine exécutant une distribution Linux prise en charge

  • Un service non web basé sur TCP ajouté à Anti-DDoS Proxy via des ports (les services basés sur UDP ne sont pas pris en charge)

  • Un accès Internet sur le serveur d'origine pour télécharger les packages d'installation

  • Les permissions sudo si vous n'êtes pas l'utilisateur root

Pour les services web, consultez Obtenir les adresses IP d'origine des requêtes.

Scénarios pris en charge

Scénario Description
Anti-DDoS Proxy - instance ECS Le serveur d'origine est déployé sur une instance Elastic Compute Service (ECS). Le trafic est nettoyé par Anti-DDoS Proxy et transféré vers l'instance ECS.
Anti-DDoS Proxy - instance Server Load Balancer (SLB) de couche 4 - instance ECS Le serveur d'origine est déployé sur une instance ECS. Le trafic est nettoyé par Anti-DDoS Proxy, puis une instance SLB de couche 4 le transfère vers l'instance ECS.
Anti-DDoS Proxy - Serveur dans votre centre de données Le serveur d'origine est déployé dans votre centre de données. Le trafic est nettoyé par Anti-DDoS Proxy et transféré vers le serveur du centre de données.

Choisir une méthode d'installation

Testez d'abord l'installation dans un environnement hors production. Si l'environnement reste stable, procédez à l'installation en production.

Méthode Systèmes d'exploitation pris en charge Quand l'utiliser
Méthode 1 : Charger le module VTOA via modprobe Alibaba Cloud Linux 3 uniquement Méthode la plus simple ; aucune compilation requise
Méthode 2 : Compiler à partir du code source CentOS, Ubuntu, Debian et autres distributions Linux À utiliser lorsque la méthode 1 ou la méthode 3 ne s'applique pas
Méthode 3 : Installer via RPM Package Manager (RPM) Red Hat Linux, CentOS 6.x, CentOS 7.x Privilégiée pour les distributions basées sur RPM

Méthode 1 : Charger le module noyau VTOA via modprobe

Cette méthode s'applique uniquement à Alibaba Cloud Linux 3.

  1. (Facultatif) Sauvegardez le module noyau TOA intégré. En cas d'échec du redémarrage, vous pourrez restaurer votre système d'exploitation en revenant au noyau d'origine.

  2. Chargez le module noyau VTOA.

    modprobe vtoa
  3. Vérifiez que le module VTOA est chargé.

    lsmod | grep vtoa
  4. Configurez le chargement automatique du module VTOA au démarrage.

    1. Créez /etc/sysconfig/modules/vtoa.modules avec le contenu suivant : ``bash #!/bin/bash modprobe vtoa > /dev/null 2>&1 ``

    2. Accordez les permissions d'exécution au fichier. ``bash sudo chmod +x /etc/sysconfig/modules/vtoa.modules ``

Méthode 2 : Compiler et charger le module noyau TOA à partir du code source

Cette méthode fonctionne sur la plupart des distributions Linux, y compris CentOS, Ubuntu et Debian.

  1. (Facultatif) Sauvegardez le module noyau TOA intégré. En cas d'échec du redémarrage, vous pourrez restaurer votre système d'exploitation en revenant au noyau d'origine.

  2. Téléchargez le package de code source TOA. Votre serveur doit avoir accès à Internet pour télécharger ce fichier. Sélectionnez le fichier source en fonction de votre version de noyau :

    Version du noyau Fichier source
    2.x toa_kernel2.x
    3.x toa_kernel3.x
    4.x ou 5.x toa_kernel_common
  3. Installez l'environnement de compilation (gcc, kernel-headers et kernel-devel).

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

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

    Important

    Si la commande ci-dessus échoue sur Debian, téléchargez manuellement les en-têtes précompilés. L'exemple suivant utilise Debian 11.11 64 bits avec la version de noyau 5.10.0-33-amd64.

    1. Téléchargez Debian_11.11_5.10.0-33-amd64.zip.

    2. Installez les packages dans l'ordre :

      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. Compilez le module noyau TOA. Décompressez le package de code source, accédez au dossier approprié et exécutez make. Si aucun avertissement ni erreur n'apparaît, la compilation a réussi. Confirmez que toa.ko est présent dans le répertoire actuel.

    Pour charger le module noyau TOA sur un autre serveur, copiez le fichier toa.ko sur ce serveur et suivez les étapes restantes.
    # 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. Chargez le module noyau 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. Vérifiez que le module TOA est chargé.

    lsmod | grep toa
  7. Configurez le chargement automatique du module TOA au démarrage.

    • CentOS :

      1. Créez /etc/sysconfig/modules/toa.modules avec le contenu suivant : ``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. Accordez les permissions d'exécution au fichier. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

    • Ubuntu ou Debian : Créez /etc/modules-load.d/toa.conf avec le contenu suivant : `` toa ``

  8. Redémarrez le système d'exploitation.

    sudo reboot

Méthode 3 : Installer le module noyau TOA via RPM

Systèmes d'exploitation pris en charge :

  • Red Hat Linux

  • CentOS 6.x

  • CentOS 7.x

  1. (Facultatif) Sauvegardez le module noyau TOA intégré. En cas d'échec du redémarrage, vous pourrez restaurer votre système d'exploitation en revenant au noyau d'origine.

  2. Téléchargez le fichier d'installation pour votre système d'exploitation. Votre serveur doit avoir accès à Internet pour télécharger ce fichier.

  3. Installez le module noyau TOA.

    • CentOS 7.x — accédez au répertoire contenant le fichier téléchargé et exécutez :

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

      Note: Utilisez yum localinstall pour éviter les problèmes de dépendances. Vous pouvez également exécuter sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm.

    • CentOS 6.x ou Red Hat Enterprise Linux — accédez au répertoire contenant les fichiers téléchargés et exécutez :

      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
      Remarque

      Note:

      • Si kernel-firmware est déjà à la version 2.6.32-696.13.2.el6.centos.plus.toa ou ultérieure, exécutez uniquement la deuxième commande.

      • En cas d'erreurs de dépendance, ajoutez --nodeps à la commande rpm.

      • Si la version du noyau installé est plus récente que la version du module TOA, ajoutez --force pour forcer l'installation.

  4. Configurez le chargement automatique du module TOA au démarrage.

    1. Créez /etc/sysconfig/modules/toa.modules avec le contenu adapté à votre version du système d'exploitation :

      • 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 ou 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. Accordez les permissions d'exécution au fichier. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

  5. Redémarrez le système d'exploitation.

    reboot

Résultats

Une fois le module noyau TOA installé, le serveur peut obtenir les adresses IP d'origine des requêtes.

Si le serveur ne parvient pas à obtenir les adresses IP d'origine des requêtes, exécutez la commande suivante pour vérifier si le module noyau TOA est chargé.

lsmod | grep toa

Si le module TOA n'est pas chargé, exécutez la commande suivante pour le charger manuellement.

modprobe toa

Une fois le module noyau TOA chargé, examinez les journaux d'accès de votre serveur pour confirmer que le serveur d'origine obtient bien les adresses IP d'origine des requêtes.

Gérer le module noyau TOA

  • Désactiver temporairement le module noyau TOA :

    rmmod toa.ko
  • Désinstaller le module noyau TOA :

    rmmod toa
  • Vérifiez que le module noyau TOA est désinstallé. La sortie de dmesg inclut « TOA unloaded » si le module a été supprimé avec succès.

    dmesg -T

FAQ

Quel est l'impact du module noyau TOA sur les performances réseau ?

Le module TOA s'exécute en mode bypass, son impact sur les performances réseau est donc minime.

Pourquoi ne puis-je pas obtenir les adresses IP d'origine après la mise à niveau du noyau Linux ?

Après une mise à niveau du noyau, le module TOA existant ne correspond plus au nouveau noyau. Recompilez et réinstallez le module TOA à chaque mise à niveau du noyau Linux.

Étapes suivantes

Obtenir les adresses IP d'origine des requêtes — pour les services web protégés par Anti-DDoS Proxy