清阳 - 网络
type: channel
link: https://www.qingpc.com/tag/%E7%BD%91%E7%BB%9C/
items: iptables连接跟踪状态表conntrack爆满网络故障处理[已解决]

iptables连接跟踪状态表conntrack爆满网络故障处理[已解决]
type: item
date: 2024-09-15T03:32:00+00:00
description: iptables连接跟踪状态表conntrack爆满网络故障处理[已解决]本文记录了Openwrt 软路由，由于iptables连接跟踪状态表conntrack达到最大限制，触发一系列奇怪的网络。从故障现象到排查过程，到优化方案都做了详细的总结首先介绍下公司的网络设备连接方式：{message type="info" content=" 电信出口光猫->软路由openwrt->行为管理（深信服AC）->华为核心交换->二层交换机（有线和无线网络）"/}问题描述：某天接到公司同事反馈 IOS端的 Appstore应用打不开。一开始以为是同事电脑问题。报错如下：故按照管理，重启大法伺候，重启完之后，故障仍在。没多久，又有其他同事陆续范围，MAC笔记本电脑打不开 Appstore，断网重连，重启电脑都不行。看来网络确实有问题。开始排查排查接入点网络先尝试有线和无线，2.4G和5G两个WIFI频段都尝试一次，以上问故障都会出现。初步定位为和WIFI热点无关。应该是上层网络节点出问题。排查路由防火墙设置排查了常规的iptables防火墙，端口转发，行为管理行为策略。发现都正常。路由器tcpdump抓包登录openwrt路由器命令行界面，使用tcpdump -vn 192.168.24.31 抓包debug这里的 192.168.24.31 是其中的一台苹果手机IP，我们用这台手机访问appstore抓包测试。经排查发现打开appstore 这个app时网络数据包异常，从app服务器发来的udp数据包，无法被手机端接收，服务器发来的3次同样的Udp数据包，均没有被手机端接收到。问题就出在这里。那么是什么原因导致的呢？考虑到既然是网络数据包进不来，重置一下网络连接是否有效呢？然后在openwrt上面重载iptables，再测试发现app store可以正常访问了。然而。。。，过了1分钟之后，app store就又无法访问了，一脸懵逼。。。看来这个问题确实跟防火墙有关。防火墙上配置了一系列端口转发规则，都是业务在用的，无法通过关闭Iptables解决。在这里卡了大半天，实在找不到解决办法。并且在这期间app store有时候是能访问的，大部分时间都无法访问。看起来相当不稳定，很奇怪的问题。这里就想着如何追踪iptables工作状态，经过查资料发现。openwrt 网络连接主要和iptables有关，并且记录在 /proc/net/nf_conntrack 中，这个文件中。nf_conntrack详解nf_conntrack(在老版本的 Linux 内核中叫 ip_conntrack)是一个内核模块,用于跟踪一个连接的状态的。连接状态跟踪可以供其他模块使用,最常见的两个使用场景是 iptables 的 nat 的 state 模块。 iptables 的 nat 通过规则来修改目的/源地址,但光修改地址不行,我们还需要能让回来的包能路由到最初的来源主机。这就需要借助 nf_conntrack 来找到原来那个连接的记录才行。而 state 模块则是直接使用 nf_conntrack 里记录的连接的状态来匹配用户定义的相关规则。例如下面这条 INPUT 规则用于放行 80 端口上的状态为 NEW 的连接上的包。iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT。iptables中的状态检测功能是由state选项来实现iptable的/proc/net/nf_conntrack内容详解cat /proc/net/nf_conntrack ipv4 2 tcp 6 8 CLOSE src=115.231.78.3 dst=107.173.34.159 sport=64904 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dport=64904 [ASSURED] mark=0 zone=0 use=2 ipv4 2 tcp 6 119 TIME_WAIT src=115.231.78.3 dst=107.173.34.159 sport=45761 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dport=45761 [ASSURED] mark=0 zone=0 use=2 ipv4 2 tcp 6 6 CLOSE src=115.231.78.3 dst=107.173.34.159 sport=57985 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dpo…