#原创分享#网络流量分析案例---互联网客户端导致的业务性能不足误报
  

KYLE_K 7425

{{ttag.title}}
本帖最后由 KYLE_K 于 2020-5-9 09:20 编辑

太长不看版:
    由于客户端性能或者网络质量不好,负载均衡原本立即转发给客户端的数据没有转发出去,数据包积压在负载均衡,导致TCP窗口资源耗尽,向后端设备发送TCP的0窗口数据包,造成业务监控系统误判负载均衡性能不足。

详细分析过程:
一.问题描述
  根据客户的业务性能监控系统,出现“服务器TCP窗口为0的次数”的警报信息,疑似SSL VPN出现性能不足的情况,触发警报的IP为172.18.35.21、172.18.35.22和172.18.35.23,经确认这三个IP为SSL VPN集群设备IP,需要对这异常情况进行分析。

二.触发“TCP 0窗口”警报情况分析
什么情况下服务器会向客户端发送0窗口报文?
根据TCP滑动窗口机制:某些情况下,服务器无法再处理从客户端发送的数据。可能是由于内存不足,处理能力不够,或其他原因。为避免造成数据被丢弃以及传输中断,服务器会发送窗口为0的报文。当客户端接收到此报文时,它会暂停所有数据传输,会以传输探测(keep-alive)报文的方式,保持与服务器的连接。探测报文在客户端以稳定间隙发送,以查看服务器接收窗口状态。一旦服务器能够再次处理数据,将会返回非零值窗口大小,传输会恢复。

三.数据包采集和分析
监测SSL VPN的CPU和内存负载情况,均无异常,则需要对SSL VPN进行网络数据采集分析,定位问题根源。

数据包采集
     一. 在SSL VPN 上采集TCP 的0窗口数据包进行分析,发现SSL VPN 向后端设备发送0窗口数据包之前,都会收到来自负载均衡的0窗口数据包,问题疑似与前置设备有关,遂对前置的负载均衡也进行抓包分析;

     二.因为负载均衡会将0窗口数据包发送到 SSL VPN上,所以在负载均衡上采集TCP 的0窗口数据包进行分析,发现负载均衡在发送0窗口数据包之前,都会收到来自互联网客户端0窗口数据包或者发现客户端有网络延迟的情况;

数据包关联
    数据包经过负载均衡后,会进行目的地址转换,可以通过对比数据内容,将地址转换前和转换后的数据包关联分析,确认是同一个体个数据流,在转换前和转换后的数据包。
数据包采集点1的数据解包情况如下:




数据包采集点2的数据解包情况如下:



数据包关联说明
    一.数据包1和数据包2的第一张图进行对比,客户端源地址一致,客户端与服务器载荷长度一致;
    二.数据包1和数据包2的第二张图进行对比,数据包时间相差不足0.001秒,MAC地址均和F5关联;
    三.数据包1和数据包2的第三张图进行对比,客户端发送的数据内容一致;
    四.基于以上三个对比结果,判断两个TCP会话是同一个数据流在不同网段的会话。

数据包分析
    一.F5在0.008828秒,已经完整接收SSL VPN发过来的数据包,并向SSL VPN 发送ACK确认包,确认已经完整接收相关数据,数据包截图如下图所示:

    二.F5在0.0673秒,将SSL VPN 发送过来的数据转发到客户端,F5从接收SSL VPN完整接收数据数是在0.0088秒完成,中间有0.0585秒的时间间隔;数据包截图如下图所示:

    三.互联网客户端与F50.058秒建立TCP连接,据数据包截图如下图所示:

    四.综合以上情况进行分析,判断客户端与F5建立TCP连接有延迟,F5未能第一时间转发相应的数据,未及时转发的数据暂存在F5相应的缓存中,当缓存空间不足时,导致F5向SSL VPN 发送TCP的0窗口数据包,如下图所示:

    五.F5除了会将TCP的0窗口数据包发送到SSL VPN 设备,也会发送到其他设备上,这一点得到F5方面的证实,如下图所示:

四.分析结论
结合以上的数据包分析情况,得出以下结论:
    一.互联网客户端与F5建立某个TCP会话,互联网客户端性能不足时,会直接向F5发送TCP的0窗口数据包,客户端不再接收F5发送的数据包,导致F5上会积压SSL VPN 发过来的数据包;

    二.互联网客户端与F5建立某个TCP会话,互联网客户端网络质量较差时,接收F5的数据包会产生延迟,导致F5上会积压SSL VPN 发过来的数据包;

    三.当F5上积压的数据包到一定的程度,消耗尽某一个TCP会话的TCP窗口,F5就会向SSL VPN 发送TCP0窗口,不再接收SSL VPN 发过来相关的TCP会话数据;

    四.当SSL VPN上积压的数据包到一定的程度,消耗尽某一个TCP会话的TCP窗口,SSL VPN 就会向相应的后端设备发送TCP0窗口,不再接收相应后端设备发过来相关的TCP会话数据;

    五.TCP窗口发送0窗口,仅针对当前TCP会话,证实F5与SSL VPN上其他已经建立的TCP会话并无影响,也不会影响设备正常运行;

    六.综上所述,F5和SSL VPN发送TCP的0窗口数据包的问题,是由于互联网客户端性能不足或者网络延迟引发的。

答疑说明:
为什么负载均衡的数据包没有转发到客户端?
因为负载均衡转发一个数据到客户端,必须要收到客户端的确认包(ACK包),才会再转发下一个数据包。可能是客户端网络质量不好或者是客户端性能不足,迟迟没有发送ACK包给负载均衡,导致负载均衡没法转发数据包。

打赏鼓励作者,期待更多好文!

打赏
6人已打赏

南小卒 发表于 2020-5-5 12:34
  
在涉及协议层次异常时,楼主通过抓取数据包,并深入分析数据包异常的原因和可能性,体现了楼主强大和扎实的网络基础,并且楼主对负载均衡设备和VPN设备的使用原理也较为详尽
不过,楼主在文章中直接呈现的是数据分析的结果和信息,大部分人员面对同样的问题时,可能最大的问题是获取到数据后不知道使用工具和分析,如果楼主可以增加这部分的分享,就可以从根本上上造福更多人了,非常感谢楼主分享,内容非常详实
sxfusr 发表于 2020-5-1 13:19
  
打赏学习,很棒的文章
一个无趣的人 发表于 2020-5-1 19:45
  
多谢楼主的分析,对于网络流量分析很透彻。
Sangfor_闪电回_朱丽 发表于 2020-5-4 23:21
  
您好,感谢您参与社区原创分享计划8,您的文章已被收录到计划中,交由专家评审小组评审,文章标签在专家评审后设置,S奖励预计在一周后到账,其他奖励在活动结束后统一安排发放!发文越多,奖励越多,期待您更多的精彩文章哦!:感恩:
关于技术文章的管理流程,请参考:http://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=90279
good_Knight 发表于 2020-5-5 18:00
  
遇到问题时候,楼主通过原理层分析,然后通过实际验证来推测问题原因,抓包分析结果,这个思路值得学习,感谢分享
头像被屏蔽
新手031815 发表于 2020-5-6 10:46
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手780102 发表于 2020-5-7 09:37
  
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
新手770264 发表于 2020-5-8 09:54
  
提示: 作者被禁止或删除 内容自动屏蔽
新手589624 发表于 2020-5-8 15:56
  
感谢分享
发表新帖
热门标签
全部标签>
每日一问
新版本体验
纪元平台
GIF动图学习
功能体验
产品连连看
安装部署配置
标准化排查
安全效果
高手请过招
社区新周刊
测试报告
【 社区to talk】
每周精选
信服课堂视频
答题自测
技术笔记
西北区每日一问
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
平台使用
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案

本版达人

feeling

本周分享达人

新手29676...

本周提问达人