故障描述
故障环境
司法厅的网络中有办公区和服务器区,在办公区的客户端要访问服务器区的服务器要经过防火墙,再通过CA认证服务器进行认证后,最后才与应用服务器通信,具体网络结构如下图所示:
客户端和服务器之间使用的是B/S架构,客户端通过IE浏览器对服务器进行访问,在进行访问时,IE浏览器中输入的地址是认证服务器的地址,认证服务器在认证后完成后起代理的作用。
故障现象
客户端在访问某个应用服务器时,页面打开的速度非常的慢!要等好几分钟才能完全打开页面,打开页面后进行站内访问时,速度也很慢。但是除了访问该服务器外的其他服务器,一切正常!而且直接将客户端接在服务器区,访问也正常。
故障分析
分析方法
数据包捕获法
通过部署科来网络分析系统到抓包位置,捕获客户端和服务器之间的数据交互,然后进行详细的分析,找到产生故障的位置。
通过分析,可以知道当前有以下几个可疑的故障点:
通过在可疑故障点处部署科来网络分析系统进行抓包分析,以便找到故障产生的位置。
对比分析法
通过分析软件捕获到的数据包,做前后对比,找到网络中丢包、延误出现在那些地方,可以在同一个捕获的数据包中对比数据的请求、响应是否一致,也可通过两端同时捕获,然后通过数据包特定的标记对应对比。比如说,在客户端捕获的数据包跟在服务器端捕获的数据包做对比,查看数据有没有到达服务器或客户端。
部署方式
通过在核心交换机上做端口镜像,将交换机与防火墙相连的端口数据镜像到一个空端口上,把科来网络分析系统部署到镜像端口上,抓取经过防火墙的数据包。然后在客户端上安装科来网络分析系统,抓取客户端访问的数据包。具体部署如下图所示:
捕包分析
我们将科来网络分析系统部署好以后,在客户端进行访问测试,还原故障现象,并同时进行抓包,发现网页的打开速度的确非常的慢,在通过一段时间的数据包捕获后,得到下图所示的数据包:
核心交换处数据包
因为访问过程中,网页打开的速度非常的慢,所以我们找到连接时间最长的会话。因为我们镜像的是防火墙的端口,通过分析上图中的数据包信息可以看出,客户端在与服务器有通信的数据包,证明防火墙转发了访问的数据。
我们知道一个TCP会话的建立需要通过TCP三次握手,TCP三次握手成功后才可以进行数据交互,但是通过上图的分析我们看出客户端向服务器端发送了一个请求数据包(标号为1的数据包),服务器端响应了客户端的请求(标号为2的数据包),但是我们看后面的数据包客户端并没有确认服务器的数据包,服务器由于没有收到客户端的确认,所以每隔一段时间就会重传一次响应包,但是整个TCP会话并没有建立成功,所以导致网页无法打开!
通过上面的分析可以看出是客户端没有确认服务器端的数据包,导致的网页无法打开,但是不能确定是客户端本身造成的,还是由于客户端到防火墙这条链路中有其他设备导致的将服务器的响应数据包丢弃造成的,我们在客户端安装上科来网络分析系统,捕获访问时的数据包,看数据包到底有没有到达客户端,捕获的数据包如下图所示:
客户端数据包
我们在可以从上图看出,在客户端处直接抓包,和在交换机处抓取的数据包一样!至此我们可以判断出导致这种故障的原因是客户端本身的问题。
分析结论
通过上面的分析,可以得出该故障是由客户端本身造成的。
总结
通过我们的分析定位,找到故障的源头是客户端,通过与程序提供的厂商沟通后,发现程序中有一段代码编写有问题,优化代码后问题得到解决。一般对于这类故障都是属于疑难的故障,如果不通过网络分析技术进行深层次的定位分析,很难找到问题的根本原因,所以网络分析技术为我们解决疑难故障提供了一个十分有效的手段。