Tôi đã có thiết lập tự nhiên với hàng nghìn thiết bị được kết nối với nó. Cổng có internet do eth0 cung cấp và các thiết bị ở phía LAN kết nối với eth1 trên gateway.ip_conntrack_tcp_timeout_established không được áp dụng cho toàn bộ mạng con
tôi có các thiết lập sau đây với iptables:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
eth1 được cấu hình như sau:
ip: 192.168.0.1
subnet: 255.255.0.0
Khách hàng được giao 192.168.0.2 ip qua 192.168.255.254.
Trong /etc/sysctl.conf tôi có các thiết lập sau đây cho ip_conntrack_tcp_timeout_established
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1200
Do số lượng các thiết bị client kết nối với cửa ngõ này, tôi không thể sử dụng thời gian chờ mặc định 5 ngày.
Điều này có vẻ hoạt động tốt và đã thử nghiệm thiết lập với hơn 10.000 thiết bị khách.
Tuy nhiên, vấn đề tôi thấy là thời gian chờ thiết lập tcp 1200 chỉ được áp dụng cho các thiết bị trong phạm vi ip 192.168.0.2 đến 192.168.0.255. Tất cả các thiết bị có ips trong khoảng 192.168.1.x đến 192.168.255.x vẫn đang sử dụng thời gian chờ mặc định là 5 ngày.
Điều này đang để lại quá nhiều kết nối "THÀNH LẬP" trong bảng/proc/net/ip_conntrack và cuối cùng sẽ được lấp đầy, mặc dù chúng sẽ hết thời gian trong vòng 20 phút, chúng cho thấy chúng sẽ hết thời gian trong 5 ngày .
Rõ ràng là tôi thiếu cài đặt ở đâu đó hoặc có cấu hình nào đó không chính xác.
Mọi đề xuất?
Cảm ơn
+1 cho câu hỏi hay, nhưng có thể được giải quyết tốt hơn bởi những người trên serverfault.com –
Chỉ trong trường hợp bất kỳ ai khác có vấn đề tương tự. Về cơ bản, tôi đã cài đặt conntrack_tools và chạy một sudo/usr/sbin/conntrack -F để đặt lại bảng và sau đó tất cả các kết nối dường như bắt đầu sử dụng thời gian chờ của 1200 thay vì thời gian chờ 5 ngày. –