ip_conntrack table full dropping packet解决方案

Posted 浮沉一梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ip_conntrack table full dropping packet解决方案相关的知识,希望对你有一定的参考价值。

在一台繁忙的服务器上,建议关闭ip_conntrack模块的加载;

当我们开启iptables后,会有这么个现象发生,丢包。ping的话会断断续续的丢包,ifconfig 会看到网卡dropped:XXX一直在增加,messages日志有以下内容:

技术分享

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

iptables导致ftp列表失败一例参见:pureftp读取目录列表失败解决

查看ip_conntrack最大大小:

查看当前ip_conntrack大小:

解决方法:

1. 更改ip_conntrack大小

这种解决方案,需要在每次iptables重启后,都要执行一遍sysctl -p, 也可以将sysctl -p写入到iptables启动脚本中。 不过ip_conntrack满的隐患还是存在的。

2. 不加载ip_conntrack模块

修改 /etc/sysconfig/iptables-config配置文件

/etc/sysconfig/iptables 不要配置状态的规则, 如:

设置了这些后,如果有设置方案1中内核参数,执行sysctl -p会报以下错误的:

error: "net.ipv4.netfilter.ip_conntrack_max" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait" is an unknown key

这种情况是因为没有加载ip_conntrack模块导致的。 这不正是我想要的么?

来看下是否加载了ip_conntrack模块:

技术分享

推荐使用方案2。





以上是关于ip_conntrack table full dropping packet解决方案的主要内容,如果未能解决你的问题,请参考以下文章

解决 linux 系统 nf_conntrack: table full, dropping packet 的几种思路

nf_conntrack: table full, dropping packet 解决方案

linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.

layui table有些电脑不识别full?

1114 - The table t1 is full

full join关联表