视频点播服务间歇性中断故障分析案例

作者:易隐者 发布于:2012-8-1 22:15 Wednesday 分类:网络分析

故障环境

1 网络拓扑

点击查看原图


2 说明

1、VOD在线视频是通过web页面观看的,通讯流全部使用HTTP的80端口传输数据;
2、客户端与服务器是纯路由环境下完成数据交互的。

故障现象

1、客户端通过浏览器在线观看VOD视频时,不定时(有时几分钟、有时十几分钟,没有规律)的出现中断情况;
2、使用ping命令长时间测试VOD服务器的连通性,一直正常;
3、异常时,VOD服务器的web页面访问正常。

故障分析

1前期分析

1、Ping命令测试正常,说明不存在连通性问题;
2、不定时出现、无规律性说明应该不是策略(时间控制等)原因导致的;
3、其他应用未反应异常,说明是单个具体应用问题。
通过简单分析,没有什么明显的突破口,此类故障应属于较高层次的故障,只能借助数据包分析来找突破口了。

2 数据包分析

1、首先在客户端在线视频时,开启科来抓包,在故障出现后停止抓包,并分析故障时间段的数据包。
一般而言,这种应用都是服务器向客户端传输数据,而客户端仅对服务器端发送确认即可,这种确认不包含任何的数据,其大小在填充完后只有64B。而在故障发生时,我们竟然发现了客户端向服务器发送的大小为70B的确认数据包,如下图所示: 

点击查看原图

2、我们查看这些70B的确认包的具体封装,如下图所示: 

点击查看原图


从这个数据包的封装解码图示,我们可以看出,这个数据包是一个带有TCP选项的确认报文。这个选项是可选择性确认选项(SACK)。
3、我们在选取几个70B的确认数据包做对比分析,发现,这些SACK选项的块左边界都是一样的,如下图所示:
 

点击查看原图


这说明客户端没有收到来自服务器的某个数据段。
4、我们在服务器端同时抓包,确认服务器端是否收到来自客户端的带有SACK选项的报文,以及服务器端是否重传了这个客户端未收到的报文。如下图所示:
 

点击查看原图


通过查看服务器给客户端传输数据段的次序与序列号,我们可以看出服务器重传了客户端未收到的数据报文。
既然服务端收到了来自客户端的带有SACK选项的确认数据报,同时服务器端也重传了客户端未收到的数据段,那么就说明这个数据段在传输的过程中被丢弃了。
5、我们重新确认一下可能丢弃这个数据段的关键点:
 

点击查看原图


由于交换机丢弃数据包的可能性极小,因此,我们应该将分析的重点放在网关设备上。
6、在服务器端开启网络分析工具,并在防火墙上利用防火墙自带的tcpdump抓包功能同时抓取防火墙进口、出口的数据报文。
7、分析服务器端的数据报文,确认被中间设备丢弃的数据报的IP标识,如下图所示:
 

点击查看原图


根据服务端收到的来自客户端的SACK报文的块左边界值和ACK值以及服务端重传的序列号,我们可以确定被中间设备丢弃的数据报文的IP标识为28232。
8、通过IP标识,在防火墙上抓取的数据包中查找相应的IP标识的数据包,如下图所示:
 

点击查看原图


从上图中我们可以看出,防火墙从ETH6口接收了这个IP标识为28232的数据包,并从ETH0口转发了这个数据包,防火墙没有丢弃这个包,利用同样的分析方法,可以确定两台防火墙都转发了服务器重传的数据报,并没有丢弃服务器的数据段。
9、那么丢弃服务器端数据段的位置到底在哪里呢?由于交换机主要功能为数据转发,其丢弃数据包的可能性是很小的,我们决定重新理一下网络拓扑,发现在互联网防火墙与核心交换机之间还串接了1台IPS设备。如下图所示: 

点击查看原图

点击查看原图

10、通过在IPS进出接口间同时抓包,使用前面同样的方法定位是IPS丢弃了来自服务器端的数据段。分析过程在此不再详述。

故障原因验证确认

       在IPS的日志上,可以查看到被IPS丢弃的来自服务器端的数据报相关日志,由此我们基本上可以确认是IPS检测过滤策略误报导致IPS丢弃VOD服务器部分数据报文导致了这个故障。
为验证我们分析的结论,我们将IPS拿下来,测试在线视频,一切正常,确认的确是IPS的原因导致了故障的产生。

故障解决

       调整IPS的相关检测策略,针对VOD服务器放行产生误报的策略,故障现象消失。

标签: IP标识 sack tcpdump 重传 IPS 策略误报 视频点播故障 IPID


您对本文的评分:
当前平均分: 10.0(8 次打分)

版权所有:《蚂蚁网-多维人生,三实而立!》 => 《视频点播服务间歇性中断故障分析案例
本文地址:http://www.vants.org/?post=73
除非注明,文章均为 《蚂蚁网-多维人生,三实而立!》 原创,欢迎转载!转载请注明本文地址,谢谢。

评论:

todayzhou
2015-12-27 23:35
太给力了,这个必须点赞!
之前还没怎么深入了解SACK,这下明白啦!

发表评论:

Powered by 易隐者 基于emlog 皖ICP备12002343号-1