启用nf_conntrack模块,避免table full dropping

    最近收到Iptables服务器报警"nf_conntrack: table full, dropping packet."。通过对日志分析,最终将问题解决了。给你们分享一下。
linux


问题分析:服务器

ip_conntrack是linux NAT的一个跟踪链接条目的模块,与Iptables相关,ip _conntrack模块会使用一个哈希表记录 tcp 通信协议的 established connection记录,当这个哈希表满了的时候,便会致使nf_conntrack: table full, dropping packet错误,因为该物理机运行多虚拟机,哈希表满的概率很大。 tcp


处理办法:ide

处理方法有两种。spa

  1. 修改/etc/modprobe.d/nf_conntrack.conf配置并关闭iptables服务:.net

more    /etc/modprobe.d/nf_conntrack.conf
日志

wKiom1OunH_ifpMcAAAxzWICCsA919.jpg

开启options  nf_conntrack hashsize=131072 调整nf_conntrack表大小。orm

service  iptables  stopblog

chkconfig iptables  offip


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选购,条件容许的状况下就删除它。

相关文章
相关标签/搜索