centos6.2日志:kernel: nf_conntrack: table full, dropping packet的解决方法

发布时间:2020-08-02编辑:脚本学堂
centos6.2日志:kernel: nf_conntrack: table full, dropping packet的解决方法

最近服务器/var/log/messages中经常有大量跟踪的连接超(如下:)
Feb 11 13:19:12 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:13 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:15 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:56 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.

服务器版本信息:
linux DNS 2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux

如果高负载系统使用了netfilter/iptables,调整以下参数:
net.ipv4.ip_conntrack_max = 655350

在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 10800
跟踪的连接超时结束时间
然后执行/sbin/sysctl -p让参数生效:
[root@ns1-shpbs netfilter]# cat nf_conntrack_max
65536
[root@ns1-shpbs netfilter]# cat nf_conntrack_tcp_timeout_established
432000
nf_conntrack_tcp_timeout_established在默认情况下为 default value is 432000sec ,5 days
[root@dns1 /]# echo 655350 > /proc/sys/net/netfilter/nf_conntrack_max
[root@dns1 /]# echo 10800 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
# sysctl -a | grep conntrack
# vi /etc/sysctl.conf
net.netfilter.nf_conntrack_tcp_timeout_established = 10800
net.netfilter.nf_conntrack_max = 655350
# sysctl -p