Kiên trì nf_conntrack_max trên toàn bộ khởi động lại


10

Trong /proctôi có hai mục nhập cho nf_conntrack_max:

/ Proc / sys / net / netfilter / nf_conntrack_max
/ Proc / sys / net / nf_conntrack_max

Dường như chỉ đến cùng một giá trị như thay đổi cái này cũng thay đổi cái khác. Với cả hai thiết lập này trong /etc/sysctl.conf:

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

Giá trị vẫn là 32764 sau khi khởi động lại để những thay đổi không hoạt động. Có ai đã chạy vào đây trước? Tôi đoán là các giá trị này được áp dụng trước khi các mô-đun có liên quan được tải nhưng hy vọng có thể ai đó đã biết giải pháp.


Bạn đã bao giờ tìm thấy một giải pháp cho điều này?
Stu Thompson

@Stu: Không, tôi chỉ lười biếng và viết một công việc định kỳ để thiết lập những thứ này :-P
Kyle Brandt

Câu trả lời:


11

đó là vì /proc/sys/net/nf_conntrack_maxdựa vào mô-đun nf_conntrack. nhưng mô-đun này sẽ không được tải theo mặc định khi hệ thống khởi động.

nhưng nếu bạn chạy

iptables -t nat -L

hoặc là

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

mô-đun này sẽ tự động tải và được đặt thành số tối đa mà hệ thống của bạn hỗ trợ (số tối đa là 65536 nếu ram của bạn> 4G, nhưng nó khác nhau ở các hệ thống khác nhau.) bạn có thể đặt nó thành số lớn hơn (như 6553600) trong /etc/sysctl.conf) .

Giải pháp :

thêm một dòng ở cuối tập tin /etc/modules:

nf_conntrack

mô-đun này sẽ được tải khi khởi động hệ thống trước khi sysctlthực hiện.


cảm ơn bạn :) - mặc dù tôi cũng có một cấu hình xấu khiến nó ngừng tải
Christian

3

Bởi vì nó phải là:

net.netfilter.nf_conntrack_max = 65535

Và bây giờ bạn có thể thiết lập điều này mà không cần khởi động lại với: sysctl -p /etc/sysctl.conf


2

Tôi không sử dụng Ubuntu, nhưng nghĩ về điều này trong suy nghĩ về khung hình CentOS của tôi, tôi đã đưa ra một giả thuyết giống như bạn đã làm - các sysctls đang được áp dụng quá sớm. Một số tìm kiếm tiết lộ rằng đây là một lỗi được đệ trình từ năm 2006 .

Có vẻ như đặt một liên kết tượng trưng khác ở mức ưu tiên> S40 để chạy lại tập lệnh init của Procps có thể sẽ làm những gì bạn cần. Theo tóm tắt lỗi, có vẻ như một số kiến ​​trúc lại của phương pháp sysctl của Ubuntu đã được sắp xếp theo thứ tự (và, thật thú vị, lỗi đã được gán cho ai đó không biết nó đã được chỉ định và không thể giúp đỡ với nó).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.