ip_conntrack table full dropping packet解决方案

网友投稿 756 2023-02-15

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

ip_conntrack table full dropping packet解决方案

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

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

查看ip_conntrack最大大小:

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

查看当前ip_conntrack大小:

1
# wc -l /proc/net/ip_conntrack

解决方法:

1. 更改ip_conntrack大小

1
2
3
4
5
6
7
# /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启动脚本中。 不过ip_conntrack满的隐患还是存在的。

2. 不加载ip_conntrack模块

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

1
2
# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES=""

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

1
-AINPUT-mstate--state RELATED,ESTABLISHED-jACCEPT

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

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

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

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

推荐使用方案2。

上一篇:it运维人员绩效考核(运维工程师绩效考核表)
下一篇:网络告警处理(网络告警处理原则)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~