ip_conntrack table full dropping packet错误的解决方法

Centos5.X

ip_conntrack表满导致的,iptables开启后会加载ip_conntrack模块,来跟踪包。默认情况下ip_conntrack_max大小为65536。

查看ip_conntrack最大大小:

# cat /proc/sys/net/ipv4/ip_conntrack_max

查看当前ip_conntrack大小:

wc -l /proc/net/ip_conntrack

 

解决方法:更改ip_conntrack大小

# /etc/sysctl.conf 
net.ipv4.netfilter.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 12
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
# sysctl -p  使其生效

 

这种解决方案,需要在每次iptables重启后,都要执行一遍sysctl -p, 也可以将sysctl -p写入到iptables启动脚本中。 

 

 Centos6.X

查看nf_conntrack最大大小:

cat /proc/sys/net/nf_conntrack_max

查看当前nf_conntrack使用量:

wc -l /proc/net/nf_conntrack

 

centos6.5以上如果使用5.x的配置参数则报错:

error: "net.ipv4.netfilter.ip_conntrack_max" is an unknown key

改成如下:

net.nf_conntrack_max = 655360
net.netfilter.nf_conntrack_max = 655360
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

  

posted @ 2016-11-26 11:18  rorshach  阅读(761)  评论(0编辑  收藏  举报