Solusi error nf_conntrack: table full, dropping packet

nf_conntrack

Baru-baru ini kami mendapatkan kasus perihal "kernel: nf_conntrack: table full, dropping packet."

Hal itu muncul ketika ada serangan DDoS ke salah satu server kami, dan hasilnya jumlah koneksi dalam sebuah server melebihi limit tertentu dan paket tersebut otomatis di drop. Hasilnya kita merasakan koneksi internet yang tidak stabil alias UP/Down terus-terus an.

 

Pengertian Awal

nf_conntrack (kependekan dari Network Filter Connection Tracking) adalah modul inti di dalam kernel sistem operasi Linux yang berfungsi untuk melacak dan menyimpan status koneksi jaringan yang melewati sistem tersebut.
Modul ini adalah bagian tak terpisahkan dari kerangka kerja firewall dan NAT di Linux.

 

Berikut adalah rincian fungsi, cara kerja, dan dampaknya pada sistem:

#1 Fungsi Utama

  • Penyaringan Stateful: Mengizinkan firewall (seperti iptables atau nftables) tidak hanya melihat satu paket secara mandiri, melainkan melihat keseluruhan alur koneksi. Ini memungkinkan Anda memblokir paket yang tidak dikenal dan hanya mengizinkan lalu lintas balasan yang sah dari koneksi yang sudah disetujui sebelumnya.
  • Dukungan NAT (Network Address Translation): Membantu mengubah alamat IP dan port untuk lalu lintas yang diteruskan (routing), serta mengingat rute balasan yang tepat agar komunikasi dua arah tetap berjalan lancar.
  • Penyeimbangan Beban (Load Balancing): Digunakan oleh perangkat lunak seperti IPVS atau kube-proxy untuk melacak paket dan mengarahkannya dengan benar ke node atau container dalam cluster.

#2 Cara Kerja

Saat sebuah paket jaringan masuk, modul conntrack mencatat informasi seperti alamat IP sumber dan tujuan, port, protokol (TCP/UDP), dan status koneksinya.
Setiap koneksi diklasifikasikan ke dalam status berikut:
  • NEW: Paket yang mencoba membuka koneksi baru.
  • ESTABLISHED: Paket yang merupakan bagian dari koneksi yang sudah aktif dan disetujui.
  • RELATED: Koneksi baru yang terkait dengan koneksi yang sudah ada (misalnya: transfer data aktif pada mode FTP pasif).
  • INVALID: Paket yang tidak sah atau rusak.

 

#3 Masalah Umum: Tabel Kepenuhan

 
Jika sistem menangani ribuan hingga jutaan koneksi simultan (seperti pada server sibuk atau lingkungan Kubernetes), tabel memori conntrack bisa kehabisan ruang penyimpanan.
  • Gejala: Anda akan melihat pesan error nf_conntrack: table full, dropping packet di log sistem, dan server mungkin akan mengalami packet loss atau gagal merespons permintaan baru.
  • Solusi: Anda dapat menambah batas maksimum koneksi di memori dengan mengubah parameter kernel melalui pengaturan sysctl seperti net.netfilter.nf_conntrack_max.

 

Cara Cek di server Linux

Mungkin kamu akan menemui di /var/log/messages muncul tulisan banyak seperti ini:

Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Jun 16 13:13:52 nvme2 kernel: nf_conntrack: nf_conntrack: table full, dropping packet

Ini mengindikasi adanya banyak koneksi yang masuk ke server kamu dan tabel-nya kepenuhan, sehingga paket trafik ada yang kena drop/cut.

Secara default angka nf_conntrack_max adalah sekitar 65536 untuk CentOS. Dimana kalo terjadi serangan DDoS, maka limit max connection tracking tersebut akan mudah melebihi limitnya.

 

Solusi : Menaikan value conntrack

Cara mudahnya adalah tinggal menaikan value conntrack.

  1. Cek dulu value saat ini berapa.

    cat /proc/sys/net/netfilter/nf_conntrack_count
  2. Cek max value dari nf_conntrack berapa.

    cat /proc/sys/net/netfilter/nf_conntrack_max
  3. Jika value saat ini sudah mendekati limit maksimal, maka sebaiknya segera dinaikan 2-3x lipat.

    echo 1000000 > /proc/sys/net/netfilter/nf_conntrack_max

  4. Namun jika di reboot akan kembali ke default value. Maka untuk membuat permanen, silahkan set di: /etc/sysctl.conf

    net.netfilter.nf_conntrack_max = 1000000

 

Kesimpulan

Jika terjadi anomali trafik / koneksi internet yang menggangu node server tertentu. Jangan lupa untuk sering-sering cek log linux. Ada dimana? Tentu bermacam-macam ya. Untuk linux RHEL / CentOS / Almalinux / Rocky Linux biasanya kamu bisa cek di /var/log/messages atau /var/log/dmesg . Biasanya dari sana kamu akan menemukan clue tertentu yang sangat membantu kamu untuk indentifikasi dan troubleshoot suatu masalah.

Dalam kasus kami, serangan DDoS ini selain menghabiskan bandwidth, juga menghabiskan jumlah maksimal nf_conntrack. Jadi sebelumnya bisa di cek posisi value penggunaan saat ini dibandingkan dengan kapasitas maksimal table yang mampu ditampung. Jika dirasa mepet, maka bisa kamu naikan 2-3x lebih besar. Mudah saja sebenarnya, namun lakukan troubleshoot dengan tenang dan tidak panik agar ide dan solusi terbaik kamu bisa muncul. Semoga artikel ini bermanfaat ya!

Sumber: https://support.cpanel.net/hc/en-us/articles/360058918393-Why-am-I-seeing-nf-conntrack-table-full-dropping-packet-in-my-logs

  • 0 Benutzer fanden dies hilfreich
War diese Antwort hilfreich?

Verwandte Artikel

VPS Linux server centos 7 menjadi linux desktop environment

Hiuntuk pelanggan setia natanetwork terutama pengguna VPS dan yang ingin menggunakan linux...

Perintah dasar linux

Sudah tidak asing lagi untuk para developer menggunakan OS Linux untuk develop suatu...

Tutorial Backup database dan source code pada VPS anda menggunakan shell script

backup adalah hal yang sangat penting jika anda merasa file/data anda berharga.terdapat berbagai...

Install Free SSL Let's Encrypt di VPS

free ssl dari Let's Encrypt sudah umum untuk shared hosting,tetapi untuk VPS silahkan cek di...

Tutorial membuat squid proxy pada VPS Linux

Membuat proxy pribadi sangat mudah jika anda memiliki VPS linux.umumnya aplikasi yg digunkan...

VPS Indonesia cuma 40rb Hosting Gratis Domain

Powered by WHMCompleteSolution