Meningkatkan ip_conntrack_max dengan aman?

9

Saya sering melihat yang berikut ini di log saya:

kernel: ip_conntrack: tabel penuh, menjatuhkan paket.

Saat ini, saya mengatur ip_conntrack_max ke 65536 (default, RHEL5).

Dengan mengingat penggunaan memori, seberapa banyak saya dapat dengan aman meningkatkan nilai ini? Saya punya ram 4GB di kotak ini. Salah satu fungsi yang dilayani mesin ini adalah sebagai server konten statis, yang mungkin menjelaskan jumlah koneksi yang tinggi, dan juga berarti saya ingin menyimpan sebanyak mungkin memori OS yang digunakan untuk cache sebanyak mungkin.

Juga, apa perbedaan antara keduanya? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Yang mana yang harus saya edit?

Terima kasih!

Neil
sumber

Jawaban:

9

Pertama, tanyakan pada diri sendiri pertanyaan: apakah pengaturan Anda memerlukan pelacakan koneksi? Jika itu hanya server dan firewall / NAT dilakukan di tempat lain, maka Anda mungkin dapat menonaktifkan conntrack bersama-sama.

Kedua, periksa apakah entri conntrack Anda masuk akal. Terkadang tabel conntrack diisi dengan sampah karena beberapa konfigurasi jaringan atau firewall. Biasanya itu adalah entri untuk koneksi yang tidak pernah dibangun sepenuhnya. Itu mungkin terjadi misalnya ketika server mendapat koneksi paket SYN yang masuk, tetapi server selalu kehilangan jawaban di suatu tempat di jaringan.

Satu-satunya mesin yang saya punya pesan 'ip_conntrack: table full' dan yang membutuhkan peningkatan ip_conntrack_max (bukannya memperbaiki konfigurasi), di mana router melakukan NAT untuk jaringan yang cukup besar (ribuan titik akhir).

Jika Anda tahu Anda perlu tanda kutip dan itu benar-benar harus lebih besar dari itu, tingkatkan jumlahnya sampai Anda tidak mendapatkan pesan 'tabel penuh' lagi. Dan perhatikan penggunaan memori.

Beberapa statistik tentang alokasi memori untuk objek conntrack dapat ditemukan di file / proc / slabinfo.

Jacek Konieczny
sumber
6

Path dengan "netfilter" adalah cara lama merujuk ke pengaturan yang sama. Anda dapat mengedit file mana pun.

# cat / proc / sys / net / ipv4 / ip_conntrack_max  
655360
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655360
# echo 655361> / proc / sys / net / ipv4 / ip_conntrack_max
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655361
BrianEss
sumber
Di ubuntu 10.04 / 2.6.32-45-server, hanya ipv4 / netfilter / ip_conntrack_max ada
okwap
Jawaban Anda berbeda dari antmeetspenguin.blogspot.tw/2011/01/…
okwap