三、故障发生及排查故障的过程
配置完上面的命令后,在办公区用户的电脑上,应该就能访问到核心区服务器上的资源。例如在办公区有一用户PC的IP地址为192.168.115.2,子网掩码为255.255.255.0,默认网关为192.168.115.254。它应该是能访问到核心区的FTP服务器,FTP服务器的IP地址为192.168.5.2,子网掩码也是255.255.255.0,默认网关为192.168.5.254。一般在PC浏览器的地址栏中输入ftp://192.168.5.2回车后,就能显示出一个对话框,提示输入用户名和密码,然后就能访问到FTP服务器上的资源。但结果却访问不成功,根本就没有对话框提示输入用户名和密码。
▲图2 办公用户访问FTP服务器的数据流向图示
办公区用户PC访问核心区FTP服务器的数据流向如图2所示。因为在办公区的两台Cisco 3750,和核心区的两台防火墙、两台Cisco 2960,以及两台核心交换机Cisco 6509-E都是双机热备或负载均衡的运行模式,所以数据流向只要通过两台中的任意一台就都是正常的。
▲图3 可能发生故障的网络简洁拓扑图
既然已经知道了数据的流向,也就能大致确定故障发生在什么地方。为了图示的简洁明了,把图2再进一步精简,得到如图3所示的拓扑图。从图3中可以看出,整个的数据流向就一条线,这样排查故障也就比较简单,排查故障的步骤如下:
第一步:在办公区用户的PC“命令行”CMD中执行命令“telnet 192.168.5.2 21”得到的输出结果为:
“正在连接192.168.5.2...无法打开到主机的连接。 在端口 21: 连接失败”。
这就说明在PC上不能登录到FTP服务器的21端口上。原因可能有很多种,可能是用户PC和FTP服务器之间的网络不通,也可能是FTP服务器上的21端口根本就没有打开。
第二步:确定是不是网络的故障。在办公区用户的PC“命令行”CMD中执行命令“ping 192.168.5.2”,得到如下的输出结果:
C:UsersAdministrator>ping 192.168.5.2
正在 Ping 192.168.5.2 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
192.168.5.2 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失)
从上面的输出结果可以看出PC和FTP服务器之间的网络是不通的。既然不通就要找出在图3中的“一条线”中到底是在那个设备上出了问题。
第三步:在办公区用户PC的“命令行”CMD中执行命令“tracert 192.168.5.2”,它可以定位到数据包在传输过程中到底在哪个设备上出了问题。执行命令得到如下的输出结果:
C:UsersAdministrator>tracert 192.168.5.2
通过最多 30 个跃点跟踪到 192.168.5.2 的路由
1 1 ms <1 毫秒 <1 毫秒 192.168.115.254
2 * * * 请求超时
3 * * * 请求超时
上面的输出在第“3”行的下面本来还有很多,都省略了。因为数据包不能成功到达目的地192.168.5.2,所以它只能像第“3”行那样往下延续的输出。从输出的结果可以看出,PC上发出的数据包只能到达Cisco 6509上,因为第“1”行输出中的192.168.115.254就是6509上Vlan 115的IP地址。也就是PC和6509之间的路由是通的,为了验证这个结果,我们在PC的命令行中执行了命令“ping 192.168.115.254”,结果能成功ping通。
其实,这也很好理解,PC发出的数据包,通过两个交换机Cisco 2960和Cisco 3750的二层广播功能,直接把数据包发送到了6509的三层端口VLAN 115上,VLAN 115收到数据包后发现是Ping命令,就再把收到的数据包返回给PC。所以,在PC上能ping通6509。但是,从电脑PC上发出的Ping数据包,在6509上就不能路由到FTP服务器,因为从执行命令“tracert 192.168.5.2”,输出的第“2”行一直往下,收不到返回的数据包。所以现在可以把故障定位在6509和FTP服务器之间。
第四步:这一步需要确定是不是因为FTP服务器引起的这种故障现象。所以就找了一台状态良好的笔记本电脑,把插在FTP服务器上的网线拔下来插到笔记本电脑的网口上,然后把笔记本电脑网口的IP地址、子网掩码和默认网关,都配置成和FTP服务器完全一样的。然后,再次在办公区的电脑上执行和上面一样的Ping命令、Telent命令和Tracert命令。结果与上面前三步的测试结果一样,还是不通。这就排除了不是FTP服务器引起的这种故障现象。其实,在这一步中所使用排除故障的方法,就是最简单,也是最常用的“替换法”。
第五步:因为在6509和FTP服务器之间,所经过的网络设备就只有6509、防火墙和2960,而2960上都是非常简单的二层配置,出现错误配置的可能性不大。6509在前三步的测试中,也没有发现有什么异常现象。所以问题最有可能出在防火墙上。
打开防火墙的WEB管理配置界面,查看其中的安全策略配置,发现其中并没有配置允许192.168.115.2访问192.168.5.2的策略。因为所使用的防火墙策略,默认是全禁止的,也就是默认情况下防火墙不允许任何数据包通过,除非在它上面配置了允许某个数据包通过的策略。所以,只要在防火墙上添加了允许办公区用户访问FTP服务器的安全策略,就可以解决上面的问题。同时也要添加允许192.168.115.2的IP地址Ping地址192.168.5.2的策略,这样在PC上也就能Ping通FTP服务器了。