全部产品
Search
文档中心

Anti-DDoS:Pasang modul kernel TOA untuk mendapatkan alamat IP asal permintaan

更新时间:Nov 11, 2025

Jika Anda menggunakan instance Elastic Compute Service (ECS) atau server di pusat data Anda sebagai server asal dan menambahkan port layanan Anda ke Anti-DDoS Pro atau Anti-DDoS Premium untuk perlindungan, trafik permintaan untuk layanan tersebut akan dibersihkan oleh Anti-DDoS Pro atau Anti-DDoS Premium lalu diteruskan ke server asal. Server asal tidak dapat langsung memperoleh alamat IP asal dari permintaan tersebut. Untuk mendapatkan alamat IP asal, Anda dapat menginstal modul kernel TCP Option Address (TOA) pada server asal. Topik ini menjelaskan cara menginstal modul kernel TOA pada sistem operasi berbasis kernel Linux.

Skenario

Skenario

Deskripsi

Anti-DDoS Proxy - Instance ECS

Server asal berada pada instance ECS. Trafik disaring oleh Anti-DDoS Proxy dan diteruskan ke server asal yang berada pada instance ECS.

Anti-DDoS Proxy - Instance SLB Lapisan 4 - Instance ECS

Server asal berada pada instance ECS. Trafik disaring oleh Anti-DDoS Proxy, lalu instance SLB Lapisan 4 meneruskan trafik ke server asal pada instance ECS.

Anti-DDoS Proxy - Server di pusat data Anda

Server asal berada di pusat data Anda. Permintaan pertama kali disaring oleh Anti-DDoS Proxy, kemudian diteruskan ke server asal di pusat data Anda.

Catatan penggunaan

  • Metode ini hanya dapat digunakan pada layanan non-situs web berbasis TCP yang ditambahkan ke Anti-DDoS Proxy melalui port. Layanan berbasis UDP tidak didukung. Untuk informasi lebih lanjut tentang cara mendapatkan alamat IP asal permintaan dari layanan situs web, lihat Dapatkan alamat IP asal permintaan.

  • Kami sarankan Anda melakukan operasi ini di lingkungan pengujian terlebih dahulu dan memeriksa apakah operasi tersebut memengaruhi stabilitas lingkungan. Jika operasi tidak memengaruhi stabilitas, lakukan operasi tersebut di lingkungan produksi.

  • Jika Anda bukan pengguna root, Anda harus memiliki izin sudo.

Metode 1: Muat modul kernel VTOA dengan menjalankan perintah modprobe

Metode ini hanya cocok untuk Alibaba Cloud Linux 3.

  1. (Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.

  2. Muat modul kernel VTOA.

    #modprobe vtoa
  3. Periksa apakah modul VTOA dimuat.

    #lsmod | grep vtoa
  4. Konfigurasikan modul kernel VTOA untuk dimuat secara otomatis saat sistem operasi mulai.

    1. Buat file /etc/sysconfig/modules/vtoa.modules dan tambahkan konten berikut ke dalam file tersebut:

      #!/bin/bash
      modprobe vtoa > /dev/null 2>&1
    2. Jalankan perintah berikut untuk memberikan izin eksekusi pada file vtoa.modules:

      sudo chmod +x /etc/sysconfig/modules/vtoa.modules

Metode 2: Muat modul kernel TOA dengan menggunakan kode sumber

  1. (Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.

  2. Akses tautan unduh kode sumber TOA untuk mengunduh paket kode sumber. Pastikan server Anda dapat mengakses Internet untuk mengunduh file ini.

    • Jika versi kernel adalah 2.x, gunakan file toa_kernel2.x .

    • Jika versi kernel adalah 3.x, gunakan file toa_kernel3.x.

    • Jika versi kernel adalah 4.x atau 5.x, gunakan file toa_kernel_common.

  3. Pasang lingkungan kompilasi (gcc, kernel-headers, dan kernel-devel).

    • CentOS

      #yum install gcc kernel-headers kernel-devel -y
    • Ubuntu atau Debian

      #apt-get install gcc linux-headers-$(uname -r) -y
      Penting

      Jika terjadi kesalahan saat menjalankan perintah ini pada sistem Debian, ikuti langkah-langkah berikut untuk menginstal lingkungan kompilasi. Contoh berikut menggunakan server yang menjalankan Debian 11.11 64-bit dengan versi kernel 5.10.0-33-amd64.

      1. Akses Debian_11.11_5.10.0-33-amd64.zip untuk mengunduh file tersebut.

      2. Jalankan perintah berikut untuk menginstal lingkungan kompilasi.

        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. Kompilasi modul kernel TOA.

    Ekstrak paket kode sumber, jalankan perintah cd untuk membuka folder, lalu kompilasi file kode sumber. Jika tidak ada pesan peringatan atau kesalahan selama proses kompilasi, kompilasi berhasil. Periksa apakah file toa.ko dibuat di direktori saat ini.

    //Path paket kode sumber. Dalam contoh ini, path file toa_kernel3.x digunakan.
    //Jika versi kernel adalah 2.x, #cd toa_kernel2.x/ 
    //Jika versi kernel adalah 3.x, #cd toa_kernel3.x/ 
    //Jika versi kernel adalah 4.x atau 5.x, #cd toa_kernel_common/
    #cd toa_kernel3.x/ 
    //Lakukan kompilasi.
    #make
    Catatan

    Jika Anda ingin memuat modul kernel TOA di sistem operasi lain, salin file toa.ko ke server lain dan lakukan langkah-langkah berikut untuk memuat modul kernel TOA.

  5. Muat modul 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. Periksa apakah modul kernel TOA dimuat.

    # lsmod | grep toa 
  7. Konfigurasikan modul kernel TOA untuk dimuat secara otomatis saat sistem operasi mulai.

    • CentOS

      1. Buat file /etc/sysconfig/modules/toa.modules dan tambahkan konten berikut ke dalam file tersebut:

        #!/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. Jalankan perintah berikut untuk memberikan izin eksekusi pada file toa.modules:

        sudo chmod +x /etc/sysconfig/modules/toa.modules
    • Ubuntu atau Debian

      Buat file /etc/modules-load.d/toa.conf dan tambahkan konten berikut ke dalam file tersebut:

      toa
  8. Jalankan perintah sudo reboot untuk me-restart sistem operasi.

Metode 3: Muat modul kernel TOA dengan menggunakan Manajer Paket RPM (RPM)

Sistem operasi yang didukung:

  • Redhat Linux

  • CentOS 6.x

  • CentOS 7.x

  1. (Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.

  2. Unduh file instalasi modul kernel TOA berdasarkan sistem operasi server Anda. Pastikan server Anda dapat mengakses Internet untuk mengunduh file ini.

  3. Pasang modul kernel TOA.

    • CentOS 7.x

      Pergi ke direktori file instalasi dan jalankan perintah berikut:

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

      Untuk mencegah masalah dependensi, kami menyarankan Anda menggunakan perintah yum localinstall. Anda juga dapat menggunakan perintah sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm.

    • CentOS 6.x atau Red Hat Enterprise Linux

      Pergi ke direktori file instalasi dan jalankan perintah berikut:

      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
      Catatan
      • Jika kernel-firmware menjalankan versi 2.6.32-696.13.2.el6.centos.plus.toa atau lebih baru, gunakan hanya perintah kedua sebelumnya.

      • Jika terjadi masalah dependensi selama instalasi, tambahkan parameter --nodeps ke perintah rpm.

      • Jika versi kernel lebih baru daripada versi modul kernel TOA, tambahkan parameter --force ke perintah rpm untuk memaksa instalasi kernel.

  4. Konfigurasikan modul kernel TOA untuk dimuat secara otomatis saat sistem operasi mulai.

    1. Buat file /etc/sysconfig/modules/toa.modules dan tambahkan konten berikut ke dalam file tersebut:

      • CentOS 7.x:

        #!/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 atau Red Hat Enterprise Linux:

        #!/bin/bash
        if [ -e /lib/modules/`uname -r`/kernel/net/toa/toa.ko ] ;
        then 
        modprobe toa > /dev/null 2>&1
        fi                            
    2. Jalankan perintah berikut untuk memberikan izin eksekusi pada file toa.modules:

      sudo chmod +x /etc/sysconfig/modules/toa.modules
  5. Jalankan perintah reboot untuk me-restart sistem operasi.

Hasil

Setelah modul kernel TOA dipasang, server dapat mendapatkan alamat IP asal permintaan.

Jika server tidak dapat memperoleh alamat IP asal permintaan, kami menyarankan Anda menjalankan perintah lsmod|grep toa untuk memeriksa apakah modul kernel TOA telah dimuat. Jika modul TOA belum dimuat, jalankan perintah modprobe toa untuk memuat modul tersebut secara manual. Setelah modul kernel TOA dimuat, Anda dapat melihat log akses server dan menguji apakah server asal dapat memperoleh alamat IP asal permintaan.

Operasi Terkait

  • Untuk menonaktifkan sementara modul kernel TOA, jalankan perintah rmmod path/nama modul.

    rmmod toa.ko
  • Copot pemasangan modul kernel TOA.

    rmmod toa
  • Periksa apakah modul kernel TOA telah dicopot. Jika pesan "TOA unloaded" ditampilkan, modul kernel TOA telah dicopot.

    dmesg -T

Pertanyaan Umum

Bagaimana modul kernel TOA memengaruhi kinerja jaringan saat mengonversi koneksi jaringan?

Modul kernel TOA dideploy dalam mode bypass. Oleh karena itu, dampaknya terhadap kinerja jaringan sangat minimal.

Mengapa saya tidak dapat memperoleh alamat IP asal setelah kernel Linux ditingkatkan?

Setelah kernel Linux ditingkatkan, modul kernel TOA yang asli tidak lagi sesuai dengan kernel Linux yang telah ditingkatkan. Anda harus mengompilasi ulang dan menginstal modul kernel TOA setiap kali Anda meningkatkan kernel Linux.