最近收到Iptables服务器报警"nf_conntrack: table full, dropping packet."。经过对日志分析,最终将问题解决了。给大家分享一下。
问题分析:
ip_conntrack是linux NAT的一个跟踪连接条目的模块,与Iptables相关,ip _conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误,由于该物理机运行多虚拟机,哈希表满的几率很大。
处理办法:
处理方法有两种。
修改/etc/modprobe.d/nf_conntrack.conf配置并关闭iptables服务:
more /etc/modprobe.d/nf_conntrack.conf
开启options nf_conntrack hashsize=131072 调整nf_conntrack表大小。
service iptables stop
chkconfig iptables off
2.修改/etc/sysctl.conf中ip_conntrack的值
net.netfilter.nf_conntrack_max = 655350 #设置最大跟踪连接数655350,该设置会增大内存开销。
net.netfilter.nf_conntrack_tcp_timeout_established = 300 #设置跟踪连接保存5小时。
sysctl -p
3.总结
防火墙有条件交给上层硬件设备完成会更好,使用系统防火墙一定要做调优;如果不需要防火墙的跟踪功能,规则简单的可以开启NOTRACK选购,条件允许的情况下就删除它。
本文出自 “系统运维” 博客,请务必保留此出处http://davidbj.blog.51cto.com/4159484/1431961
启用nf_conntrack模块,避免table full dropping,布布扣,bubuko.com
启用nf_conntrack模块,避免table full dropping
原文地址:http://davidbj.blog.51cto.com/4159484/1431961