故障环境
故障描述
某互联网的结构比较简单,通过核心和防火墙直接相连,中间没有任何的网络监控、管理设备,示意图如下所示:
某互联网的防火墙走的是路由模式,内部员工上网通过防火墙进行地址转化,转换成公网地址。
故障现象
打开网页速度比较慢,但是下载的速度很快,而且利用web页面上传邮件附件也很慢,几兆的附件经常上传不上去。同时利用WEB页面登陆防火墙的速度也很慢。
故障分析
确认故障点
通过上面的介绍,我们可以发现在上网慢时只经过了核心交换机和防火墙,所以可疑的故障点有以下几个位置:
部署科来网络分析系统
为了找到故障的具体位置,我们找一台慢的主机装上科来网络分析系统,然后在核心交换和防火墙之间部署上科来网络分析系统,通过端口镜像来捕获通信的数据包:
数据包分析
分析防火墙有无丢包、延时。
同样的,我们做故障还原测试,并利用防火墙自带的抓包功能来抓取网络通信的数据包,同时在客户端进行抓包。
通过测试得到如下的数据包:
客户端数据包
防火墙入口数据包
防火墙出口数据包
通过上面的数据包我们可以得出一个数据包交互图:
通过比较数据包,我们可以发现在防火墙入口处有数据包丢失!造成这种丢失的最大可能性就是防火墙和中间设备之间有其他网络设备导致数据包丢失,但是在防火墙和客户端之间没有其他设备,只有一个核心交换机,为了能够准确找出故障点,我们再捕获防火墙和核心交换之间的数据包与客户端发送的数据包进行比较。
检测核心交换和客户端之间有没有丢包、延时。
部署好分析软件后,我们做故障还原测试,并同时开启在客户端和核心交换处的抓包工具,得到如下的数据包:
客户端数据包
核心交换处数据包
从上面的数据包对比可以看到,凡是客户端发送的数据包都转发到了核心交换处,核心交换处捕获的数据包和在客户端捕获的数据包是一样的,所以可以得出在核心交换到客户端之间没有数据包丢失。
分析结论
通过上面的分析我们可以知道,客户端和核心交换出并没有丢包,但是在防火墙的入口处抓包发现确实有丢包,所以该故障的可能原因如下:
防火墙故障,防火墙丢弃了数据包交互的数据包,在入口处没有捕获到是因为防火墙收到数据包后的处理流程导致,因为防火墙有很多的匹配模块,如果丢包的匹配模块在Tcpdump之前,我们使用Tcpdump抓包就抓不到数据包;
路由设置有问题,客户端的网关地址不是核心交换的VLAN地址或是防火墙的内网口地址,而是接在核心交换上的另外的设备,如下图所示:
而在核心交换到网关设备之间,或是网管到防火墙之间有设备丢包。(可以通过TTL来判断,但是发现 TTL 在防火墙和客户端是一样的!)
交换和防火墙之间有设备,只是没有发现!需要认真的查一下设备。
总结
我们在上面的分析中可以看到,在防火墙上开启抓包功能时,发现凡是到防火墙入口的数据包都转发到防火墙出口处了,从这看故障应该和防火墙没有关系,丢包应该是防火墙前面的设备造成的!
但是在核心交换处看数据包并没有丢包,数据包应该都到达防火墙了(因为防火墙和核心交换机之间没有其它设备了)!
那为什么会出现上面防火墙抓包的现象呢?需要具体的联系防火墙厂家查看具体的原因。