Bertahan nf_conntrack_max Across Reboots

10

Di /procSaya punya dua entri untuk nf_conntrack_max:

/ proc / sys / net / netfilter / nf_conntrack_max
/ proc / sys / net / nf_conntrack_max

Tampaknya menunjuk ke nilai yang sama dengan mengubah yang satu juga mengubah yang lain. Dengan keduanya diatur dalam /etc/sysctl.conf:

net.netfilter.nf_conntrack_max = 65528
net.ipv4.netfilter.ip_conntrack_max = 65535

Nilai tetap 32764 setelah reboot sehingga perubahan tidak berfungsi. Adakah yang pernah mengalami ini sebelumnya? Dugaan saya adalah bahwa nilai-nilai ini diterapkan sebelum modul yang relevan dimuat tetapi berharap mungkin seseorang sudah mengetahui solusinya.

Kyle Brandt
sumber
Apakah Anda pernah menemukan solusi untuk ini?
Stu Thompson
@Stu: Tidak, saya baru saja malas dan menulis tugas cron untuk mengatur ini :-P
Kyle Brandt

Jawaban:

11

itu karena /proc/sys/net/nf_conntrack_maxbergantung pada modul nf_conntrack. tetapi modul ini tidak akan dimuat secara default saat sistem dimulai.

tetapi jika Anda berlari

iptables -t nat -L

atau

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

modul ini akan memuat secara otomatis dan mengatur ke jumlah maksimum yang didukung sistem Anda (jumlah maks adalah 65536 jika Anda ram> 4G, tetapi bervariasi dalam sistem yang berbeda.) Anda dapat mengaturnya ke angka yang lebih besar (seperti 6553600) di /etc/sysctl.conf ) .

Larutan :

tambahkan satu baris di akhir file /etc/modules:

nf_conntrack

modul ini akan dimuat pada sistem start sebelum sysctldijalankan.

Ethan Xu
sumber
terima kasih :) - walaupun saya juga memiliki konfigurasi yang buruk yang menghentikannya memuat
Christian
3

Karena itu seharusnya:

net.netfilter.nf_conntrack_max = 65535

Dan sekarang Anda dapat mengatur ini tanpa memulai ulang dengan: sysctl -p /etc/sysctl.conf

Maciej Lasyk
sumber
2

Saya tidak menggunakan Ubuntu, tetapi memikirkan hal ini dalam kerangka pikiran CentOS saya, saya menghasilkan hipotesis yang sama dengan yang Anda lakukan - sysctl sedang diterapkan terlalu dini. Beberapa pencarian mengungkapkan bahwa ini telah menjadi bug yang diajukan sejak 2006 .

Sepertinya menempatkan symlink lain di prioritas> S40 untuk menjalankan skrip init procps lagi mungkin akan melakukan apa yang Anda butuhkan. Per ringkasan bug, sepertinya beberapa perancangan ulang dari metodologi sysctl Ubuntu sedang dalam urutan (dan, anehnya, bug ditugaskan untuk seseorang yang tidak tahu itu ditugaskan dan tidak dapat membantu dengan itu).

Evan Anderson
sumber