主备模式,备机ping主机每隔一段时间会有几分钟回包dup ack的问题
现场问题排查记录:
现场反映的问题,每天早上会有部分用户正常认证成功,但是第三方无上线信息,导致无法访问外网。
其它模块日志排查发现:模块A没有将认证成功的信息通过模块B转发到模块C让其处理,导致用户没有无法上网(逻辑:转发成功模块B处理完可以上网,转发不成功无法访问外网)
现场服务是主备模式的。
现在我们去查看负责转发的模块B的日志,发现备机的转发模块B每隔四小时和主机的其他所有模块断开连接一次,每次持续几分钟,几分钟后重新建立连接。
在断开连接的时间点如早上9点,部分用户认证虽然成功,但是这时候转发模块B和其它所有模块断开连接了,导致转发模块B不能将信息发出去通知其他模块,结果是无法上网。
所以怀疑是网络问题,让现场同事在断开连接的时间点在备机一直ping主机
ping x.x.x.9 | awk ‘{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}’ >> outIP.info &
发现在断连时间点到来之前ping主机的回包都是正常的,但是断开连接的时间点主机回包都是dup ack,过了几分钟回包又正常,符合现场的现象
于是又在下一次时间间隔的时候抓了一次包
抓包的结果来看,都是主机的模块主动发送rst包给备机的转发模块,后面查了资料回头再看抓包结果,发现rst包的前面的所有的包的源mac地址都是一致的,但是出问题的rst包的源mac发生了变化,也就是说同一个ip的mac地址变了。
用一个ip其中在一段时间内服务都是好好的,但是过了四小时后的十分钟内,开始,这个ip的mac地址变了然后给备机的转发模块回了一个rst包(图中的ip9为主机,10为备机,主机虽然是多网卡,但是另一个网卡的mac地址也不是抓包看到的mac)
对于这种间隔时间mac地址变化的情况,通过arp静态绑定这种方式解决( 在mac地址变化的机器上执行arp -s ip mac进行ip和mac的绑定),再次观察模块日志(已经过去两天了),并没有出现断连的情况。问题解决
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理