手戈 發表於 2023-8-26 00:00:00

ip_conntrack table full dropping packet解决方案

<p>当我们开启iptables后,会有这么个现象发生,丢包。ping的话会断断续续的丢包,ifconfig 会看到网卡dropped:XXX一直在增加,messages日志有以下内容:</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/4367b9e1de950c279a19984d603c257d.jpg" width="589" height="67"></p>
<p>ip_conntrack表满导致的,iptables开启后会加载ip_conntrack模块,来跟踪包。默认情况下ip_conntrack_max大小为65536。</p>
<p>iptables导致ftp列表失败一例参见:pureftp读取目录列表失败解决</p>
<p>查看ip_conntrack最大大小:</p><pre class="brush:bash;toolbar:false"># cat /proc/sys/net/ipv4/ip_conntrack_max</pre><p>查看当前ip_conntrack大小:</p><pre class="brush:bash;toolbar:false"># wc -l /proc/net/ip_conntrack</pre><p>解决方法:</p>
<p>1. 更改ip_conntrack大小</p><pre class="brush:bash;toolbar:false"># /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使其生效</pre><p>这种解决方案,需要在每次iptables重启后,都要执行一遍sysctl -p, 也可以将sysctl -p写入到iptables启动脚本中。 不过ip_conntrack满的隐患还是存在的。</p>
<p>2. 不加载ip_conntrack模块</p>
<p>修改 /etc/sysconfig/iptables-config配置文件</p><pre class="brush:bash;toolbar:false"># vim /etc/sysconfig/iptables-config
IPTABLES_MODULES=""</pre><p>/etc/sysconfig/iptables 不要配置状态的规则, 如:</p><pre class="brush:bash;toolbar:false">-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</pre><p>设置了这些后,如果有设置方案1中内核参数,执行sysctl -p会报以下错误的:</p>
<p>error: "net.ipv4.netfilter.ip_conntrack_max" is an unknown key<br>
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established" is an unknown key<br>
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait" is an unknown key<br>
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait" is an unknown key<br>
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait" is an unknown key</p>
<p>这种情况是因为没有加载ip_conntrack模块导致的。 这不正是我想要的么?</p>
<p>来看下是否加载了ip_conntrack模块:</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/fee8ba1c894dccf0cb952d3ba6c5b381.jpg" width="613" height="368"></p>
<p>推荐使用方案2。</p>
<p>如需转载请注明出处:ip_conntrack table full dropping packet解决方案  http://www.ttlsa.com/html/2303.html</p>
頁: [1]
查看完整版本: ip_conntrack table full dropping packet解决方案