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.
(Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.
Muat modul kernel VTOA.
#modprobe vtoaPeriksa apakah modul VTOA dimuat.
#lsmod | grep vtoaKonfigurasikan modul kernel VTOA untuk dimuat secara otomatis saat sistem operasi mulai.
Buat file
/etc/sysconfig/modules/vtoa.modulesdan tambahkan konten berikut ke dalam file tersebut:#!/bin/bash modprobe vtoa > /dev/null 2>&1Jalankan 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
(Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.
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.
Pasang lingkungan kompilasi (gcc, kernel-headers, dan kernel-devel).
CentOS
#yum install gcc kernel-headers kernel-devel -yUbuntu atau Debian
#apt-get install gcc linux-headers-$(uname -r) -yPentingJika 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.
Akses Debian_11.11_5.10.0-33-amd64.zip untuk mengunduh file tersebut.
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
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. #makeCatatanJika 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.
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.koPeriksa apakah modul kernel TOA dimuat.
# lsmod | grep toaKonfigurasikan modul kernel TOA untuk dimuat secara otomatis saat sistem operasi mulai.
CentOS
Buat file
/etc/sysconfig/modules/toa.modulesdan 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 fiJalankan 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.confdan tambahkan konten berikut ke dalam file tersebut:toa
Jalankan perintah
sudo rebootuntuk 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
(Opsional) Cadangkan modul kernel TOA bawaan sistem operasi. Jika terjadi kegagalan saat restart, Anda dapat memulihkan sistem operasi dengan beralih ke kernel asli.
Unduh file instalasi modul kernel TOA berdasarkan sistem operasi server Anda. Pastikan server Anda dapat mengakses Internet untuk mengunduh file ini.
CentOS 7.x: kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm
CentOS 6.x atau Red Hat Enterprise Linux:
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.rpmCatatanUntuk mencegah masalah dependensi, kami menyarankan Anda menggunakan perintah
yum localinstall. Anda juga dapat menggunakan perintahsudo 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.rpmCatatanJika 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
--nodepske perintahrpm.Jika versi kernel lebih baru daripada versi modul kernel TOA, tambahkan parameter
--forceke perintahrpmuntuk memaksa instalasi kernel.
Konfigurasikan modul kernel TOA untuk dimuat secara otomatis saat sistem operasi mulai.
Buat file
/etc/sysconfig/modules/toa.modulesdan 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 fiCentOS 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
Jalankan perintah berikut untuk memberikan izin eksekusi pada file
toa.modules:sudo chmod +x /etc/sysconfig/modules/toa.modules
Jalankan perintah
rebootuntuk 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.koCopot pemasangan modul kernel TOA.
rmmod toaPeriksa 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.