Wireshark TS | MTU 引发的一系列问题

问题描述

我司业务网广域网双专线(联通+电信)对接 AWS ,日常联通主用,电信备用。某日业务中心反馈线路业务 Ping 有丢包,网络进行检测后发现联通线路丢包严重,遂正常流程切换至电信备线路运行,之后报故障至联通。联通经过两三天鼓捣后,反馈线路已恢复,周末网络回切后,业务反馈发现一系列问题,主要如下:

a. 业务数据积压;
b. 业务运维跳板机至 AWS 服务器,新 SSH 访问卡机,老 SSH 连接正常;
c. …

线路继切换至电信备线路后,故障现象消失,但一切换至联通主线路后,则继续发生上述问题。


问题处理

就所反馈的问题来说,因为不了解业务,所以业务方面的种种异象,不好研究分析,只有从 SSH 访问方面试着下手。

简单整理了拓扑,如下:
MTU-01

简化了架构,实际上 R1 和 R2 分属于双数据中心,下连内部区域实际也为两个同类区域。

依次在广域网设备上检查了 BGP、OSPF 路由,包括来回端的 Ping 和 Trace ,都无明显问题,也一度怀疑双中心线路切换造成了来回路径不一致,穿过了不同的防火墙造成的问题,经过详细排查,也一一排除。在问题联通线路上,SSH 访问卡在某个画面的故障现象仍然必现。

[C:\~]$ ssh 10.1.1.1

Connecting to 10.1.1.1:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

大概是上面这种提示,一直卡着,不跳用户名和密码输入提示框。

光看现象,简直抓瞎,只能抓包试着分析一下。


问题分析

因为 SSH 协议较为简单,且问题现象较为明确,则在问题复现时直接抓包分析。

SSH 问题第一次(运维跳板机处抓包)
MTU-02

三次握手以及 SSH 初始均正常,无法弹出用户名和密码框时的抓包信息如下:
MTU-03
33 分组 提示 TCP Previous segment not captured,TCP上一分段( Seq 3050 )未捕捉到,可能是真的未收到,也可能是抓包问题没捕获到。紧接着运维跳板机(客户端)192.168.1.1 一直请求 Seq 3050 分段未果( TCP Dup ACK 34 #), 之后一直服务器无回应。


SSH 问题第二次(运维跳板机处抓包)

尝试第二次抓问题包,对比看是否是类似现象。
MTU-04
问题依旧,仍然是在 37 分组 提示 TCP Previous segment not captured,仍然是 TCP 上一分段( Seq 3050 )未捕捉到。额。好吧,又刚好是分段 3050 丢失,差不多可以判断认为是对端发了,但是本端没收到。


SSH 正常(运维跳板机处抓包)

正常线路运行时 SSH 的抓包,对比有问题的时候,看具体是哪个环节出了问题。就在苦苦人肉看包的同时,一同事在边上幽幽的来了一句:估计是运营商问题,Ping 哪哪哪小包就通,大包就不通,MTU 问题了。

额。MTU,好吧,点醒了我们,继续看数据包,果然是这样。
MTU-05
联通问题线路时:
图3中 分组32(长度122)、分组33(长度326),中间丢失分段;
图4中 分组36(长度122)、分组37(长度326),中间丢失分段;

电信正常线路时:
图5中 分组35(长度122)、分组37(长度326),中间分组36(长度1514)。

至此实锤确认联通线路问题,在运营商中间设备存在 MTU 设置小于 1500 的问题,这样 SSH 也包括业务在内,AWS 服务器正常发送数据字段长度 len = 1460 的包时,即大小在 1500 长度的数据包时,走到运营商设备上,因为 IP 字段 Don’t fragment 设置的原因造成数据包丢包,之后引起一系列问题。
MTU-06

问题总结

总结,没啥好总结,切换至问题线路后,业务有问题一切都找运营商 🤣



感谢阅读,更多技术文章可关注个人公众号:Echo Reply ,谢谢。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值