Todos os produtos
Search
Central de documentação

Anti-DDoS:Instale o módulo de kernel TOA para obter os endereços IP de origem das requisições

Última atualização: Jun 27, 2026

Ao adicionar um serviço TCP ao Anti-DDoS Proxy para proteção, o Anti-DDoS Proxy filtra o tráfego de entrada e o encaminha para o servidor de origem. Como o proxy fica entre o cliente e o servidor, o servidor de origem vê o endereço IP do proxy em vez do IP real do cliente. Para restaurar a visibilidade dos endereços IP de origem, instale o módulo de kernel TCP Option Address (TOA) no servidor de origem.

Este tópico aborda servidores de origem baseados em Linux. Há três métodos de instalação disponíveis. Escolha o método correspondente ao seu sistema operacional.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um servidor de origem executando uma distribuição Linux compatível

  • Um serviço não web baseado em TCP adicionado ao Anti-DDoS Proxy usando portas (não há suporte para serviços baseados em UDP)

  • Acesso à internet no servidor de origem para baixar os pacotes de instalação

  • Permissões sudo caso você não seja o usuário root

Para serviços web, consulte Obter os endereços IP de origem das requisições.

Cenários compatíveis

Cenário

Descrição

Anti-DDoS Proxy - instância ECS

O servidor de origem está implantado em uma instância do Elastic Compute Service (ECS). O Anti-DDoS Proxy filtra o tráfego e o encaminha para a instância ECS.

Anti-DDoS Proxy - instância Server Load Balancer (SLB) Camada 4 - instância ECS

O servidor de origem está implantado em uma instância ECS. O Anti-DDoS Proxy filtra o tráfego e uma instância SLB Camada 4 o encaminha para a instância ECS.

Anti-DDoS Proxy - Servidor no seu data center

O servidor de origem está implantado no seu data center. O Anti-DDoS Proxy filtra o tráfego e o encaminha para o servidor do data center.

Escolha um método de instalação

Teste a instalação primeiro em um ambiente de não produção. Se o ambiente permanecer estável, prossiga para a produção.

Método

Sistemas operacionais compatíveis

Quando usar

Método 1: Carregar o módulo VTOA via modprobe

Apenas Alibaba Cloud Linux 3

Método mais simples; sem necessidade de compilação

Método 2: Compilar a partir do código-fonte

CentOS, Ubuntu, Debian e outras distribuições Linux

Use quando o Método 1 ou Método 3 não se aplicar

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

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

Preferido para distribuições baseadas em RPM

Método 1: Carregar o módulo de kernel VTOA via modprobe

Este método aplica-se apenas ao Alibaba Cloud Linux 3.

  1. (Opcional) Faça backup do módulo de kernel TOA integrado. Se ocorrer falha na reinicialização, restaure o sistema operacional revertendo para o kernel original.

  2. Carregue o módulo de kernel VTOA.

    modprobe vtoa
  3. Verifique se o módulo VTOA foi carregado.

    lsmod | grep vtoa
  4. Configure o módulo VTOA para carregar automaticamente na inicialização.

    1. Crie o arquivo /etc/sysconfig/modules/vtoa.modules com o seguinte conteúdo: ``bash #!/bin/bash modprobe vtoa > /dev/null 2>&1 ``

    2. Conceda permissões de execução ao arquivo. ``bash sudo chmod +x /etc/sysconfig/modules/vtoa.modules ``

Método 2: Compilar e carregar o módulo de kernel TOA a partir do código-fonte

Este método funciona na maioria das distribuições Linux, incluindo CentOS, Ubuntu e Debian.

  1. (Opcional) Faça backup do módulo de kernel TOA integrado. Se ocorrer falha na reinicialização, restaure o sistema operacional revertendo para o kernel original.

  2. Baixe o pacote de código-fonte do TOA. O servidor deve ter acesso à internet para baixar este arquivo. Selecione o arquivo de source conforme a versão do seu kernel:

    Versão do kernel

    Arquivo de source

    2.x

    toa_kernel2.x

    3.x

    toa_kernel3.x

    4.x ou 5.x

    toa_kernel_common

  3. Instale o ambiente de compilação (gcc, kernel-headers e 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 ``

    Importante

    Se o comando acima falhar no Debian, baixe manualmente os headers pré-compilados. O exemplo a seguir usa Debian 11.11 64 bits com versão de kernel 5.10.0-33-amd64.

    1. Baixe o arquivo Debian_11.11_5.10.0-33-amd64.zip.

    2. Instale os pacotes na ordem:

      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 o módulo de kernel TOA. Descompacte o pacote de código-fonte, navegue até a pasta correta e execute make. Se nenhum aviso ou erro aparecer, a compilação foi bem-sucedida. Confirme se o arquivo toa.ko está presente no diretório atual.

    Para carregar o módulo de kernel TOA em outro servidor, copie o arquivo toa.ko para esse servidor e siga as etapas restantes nele.
    # 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. Carregue o 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. Verifique se o módulo TOA foi carregado.

    lsmod | grep toa
  7. Configure o módulo TOA para carregar automaticamente na inicialização.

    • CentOS:

      1. Crie o arquivo /etc/sysconfig/modules/toa.modules com o seguinte conteúdo: ``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. Conceda permissões de execução ao arquivo. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

    • Ubuntu ou Debian: Crie o arquivo /etc/modules-load.d/toa.conf com o seguinte conteúdo: `` toa ``

  8. Reinicie o sistema operacional.

    sudo reboot

Método 3: Instalar o módulo de kernel TOA via RPM

Sistemas operacionais compatíveis:

  • Red Hat Linux

  • CentOS 6.x

  • CentOS 7.x

  1. (Opcional) Faça backup do módulo de kernel TOA integrado. Se ocorrer falha na reinicialização, restaure o sistema operacional revertendo para o kernel original.

  2. Baixe o arquivo de instalação correspondente ao seu sistema operacional. O servidor deve ter acesso à internet para baixar este arquivo.

  3. Instale o módulo de kernel TOA.

    • CentOS 7.x: navegue até o diretório que contém o arquivo baixado e execute:

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

      Note: Use yum localinstall para evitar problemas de dependência. Alternativamente, execute sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm.

    • CentOS 6.x ou Red Hat Enterprise Linux: navegue até o diretório que contém os arquivos baixados e execute:

      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:

      • Se o kernel-firmware já estiver na versão 2.6.32-696.13.2.el6.centos.plus.toa ou posterior, execute apenas o segundo comando.

      • Se ocorrerem erros de dependência, adicione --nodeps ao comando rpm.

      • Se a versão do kernel instalada for posterior à versão do módulo TOA, adicione --force para forçar a instalação.

  4. Configure o módulo TOA para carregar automaticamente na inicialização.

    1. Crie o arquivo /etc/sysconfig/modules/toa.modules com o conteúdo adequado à versão do seu SO:

      • 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. Conceda permissões de execução ao arquivo. ``bash sudo chmod +x /etc/sysconfig/modules/toa.modules ``

  5. Reinicie o sistema operacional.

    reboot

Resultados

Após a instalação do módulo de kernel TOA, o servidor obtém os endereços IP de origem das requisições.

Se o servidor não obtiver os endereços IP de origem das requisições, execute o seguinte comando para verificar se o módulo de kernel TOA está carregado.

lsmod | grep toa

Se o módulo TOA não estiver carregado, execute o seguinte comando para carregá-lo manualmente.

modprobe toa

Depois que o módulo de kernel TOA for carregado, revise os logs de acesso do servidor para confirmar que ele obtém os endereços IP de origem das requisições.

Gerencie o módulo de kernel TOA

  • Desative temporariamente o módulo de kernel TOA:

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

    rmmod toa
  • Verifique se o módulo de kernel TOA foi desinstalado. A saída do dmesg inclui "TOA unloaded" se o módulo tiver sido removido com sucesso.

    dmesg -T

FAQ

Como o módulo de kernel TOA afeta o desempenho da rede?

O módulo TOA opera em modo bypass, portanto tem impacto mínimo no desempenho da rede.

Por que não consigo obter os endereços IP de origem após atualizar o kernel do Linux?

Após uma atualização do kernel, o módulo TOA existente deixa de ser compatível com o novo kernel. Recompile e reinstale o módulo TOA sempre que atualizar o kernel do Linux.

Próximos passos

Obter os endereços IP de origem das requisições — para serviços web protegidos pelo Anti-DDoS Proxy