对于整天与网络打交道的网络管理员来说,遇到网络故障几乎是一件不可避免的事情!而网络故障现象一般都局限于无法上网、频繁掉线或者是访问缓慢这几种,但是引起网络故障的原因可谓是花样繁多,既有人为操作因素引起的,也有网络设备自身状态引起的, 还有可能是外界干扰引起的;但是在实际解决网络故障的过程中,我们有时会发现在排除了上面列出的各种可能因素后,网络故障仍然无法消除,这是怎么回事呢? 事实上,上面列出的几项因素只是对网络故障产生直接影响,也有一些不容易引起人注意的细小因素会对网络故障产生间接的影响,例如电源的接地、空气中的灰尘以及网络应用软件甚至操作系统的稳定性等细节因素,也会造成网络故障,对于由这些细节因素引起的故障现象排除起来往往比较困难,毕竟这些细节因素很容易被网络管理人员所忽视。这不,本文下面的一则网络故障竟然是由路由器中的软件BUG引起的,相信各位看了下面的故障排除过程之后,一定会有新的启发! 故障现象 单位局域网是通过租用本地电信部门的2M光纤通道直接访问Internet的,局域网中的所有工作站都连接到一个48口的交换机中,交换机又与一只TP-LINK型号的宽带路由器直接相连,笔者在该路由器中启用了防火墙功能、DHCP服务器功能以及静态地址组功能等。局域网中还有一台保存有重要数据信息的服务器,为了保护服务器的安全,单位还特地在服务器中安装了Norton防火墙,该防火墙被笔者设置成了服务器工作模式,平时局域网中的所有工作站都能正常访问到服务器中的重要信息。 可是最近这几天,笔者的一位同事打电话“求援”说,他使用的工作站无法访问服务器了。接到同事的电话后,笔者下意识地在自己的工作站中尝试访问了一下服务器,以确认是否是服务器遇到了故障,但是尝试访问的结果告诉笔者,服务器自身工作状态很正常,因为笔者的工作站可以顺畅地访问到服务器中的内容。后来,笔者来到服务器现场,想从服务器日志文件中寻找一些端倪,可是当笔者打开服务器计算机的显示屏幕时,竟然看到系统屏幕上出现了IP地址冲突的错误提示,看到这个提示,笔者几乎断定同事的工作站肯定使用了一个与服务器相冲突的IP地址;于是笔者迅速来到故障工作站旁,打开该工作站的TCP/IP属性设置窗口,并为该工作站重新分配了另外一个IP地址,原以为更换IP地址操作能够解决该工作站无法访问服务器的故障,可是当笔者重新进行访问连接时,发现服务器仍然无法访问。难道同事的工作站与服务器之间的网络连接有问题?笔者不放心,于是打开该工作站的网上邻居窗口,尝试通过该窗口访问一下局域网中的其他工作站,结果发现故障工作站能够顺利地访问局域网中的其他工作站,偏偏就不能访问服务器。 故障分析 为了测试故障工作站与服务器之间是否存在线路故障,笔者先在故障工作站中执行了“Ping”命令,结果看到服务器无法被正常Ping到,后来笔者又到服务器系统中执行了一次“Ping”命令,这次却发现服务器能够正常Ping通故障工作站了,很明显服务器与该故障工作站之间的线路连接是正常的。会不会是故障工作站中的网卡设备工作不稳定呢?想到这里,笔者立即打开故障工作站中的设备管理器窗口,从中找到目标网卡设备,并用鼠标右键单击该设备的图标,从弹出的快捷菜单中执行“停用”命令(如图1所示),之后又重新执行该快捷菜单中的“启用”命令,在网卡设备启动过程中,笔者突然看到该工作站的IP地址是动态获取的,这时笔者想到宽带路由器中已经启用了DHCP服务功能。难道是DHCP服务器运行不正常,导致故障工作站无法获取稳定的IP地址?想到做到,笔者又登录进宽带路由器的后台管理界面,将其中的DHCP服务器暂时停用掉,然后保存好路由器的后台参数并重新启动了一下该路由器,最后又为故障工作站分配了一个静态的IP地址,但是这样一系列的操作还是没有换来任何效果,同事的工作站依然还是不能访问局域网服务器。到了这里,笔者索性进入到宽带路由器的后台管理界面,将其中的静态地址组以及MAC地址记录全部删除掉,再重新启动一下宽带路由器,但是最后得到的结果还是无法访问服务器。
图:设备管理器图1 在万般无奈之下,笔者登录进交换机后台管理界面,并在该界面中执行“Ping”命令,来测试一下服务器系统与交换机之间是否正常,结果发现也不能够 Ping通;后来,笔者尝试在其他工作站中Ping服务器,结果发现局域网中所有工作站都无法Ping通服务器,只不过其他工作站能够访问到服务器中的内容。 故障解决 经过上面的测试操作,笔者认为局域网中的所有工作站都无法Ping通服务器,那很有可能是服务器中的防火墙禁止了Ping测试功能,于是笔者迅速以系统管理员身份登录进服务器系统,然后将防火墙的工作模式从服务器模式修改成普通模式,并将防火墙中的一些过滤规则重新调整了一下,之后重新启动了一下服务器系统。待服务器系统重新启动成功后,笔者又尝试在交换机的后台管理界面中,执行了“Ping”命令,来测试此次是否能够正常ping通服务器,结果发现这次服务器能够正常Ping通,而且笔者尝试从局域网中的其他工作站Ping服务器时,也发现服务器现在能正常 Ping通了。最后,笔者又重新启用了路由器中的DHCP服务功能,然后来到故障工作站旁,进入到工作站的TCP/IP属性设置窗口,打开如图2所示的IP地址设置页面,选中其中的“自动获得IP地址”选项,再单击“确定”按钮,这样一来该工作站仍然向路由器中的DHCP服务器申请IP地址;结束上面的设置操作后,笔者再一次尝试了服务器访问操作,让人感到欣慰的是这次服务器终于能够被访问到了,至此服务器无法访问的故障就被成功地解决了!
图二:故障总结虽然故障已经被解决了,但让笔者感到疑惑不解的是,为什么故障工作站无法访问服务器,而局域网中的其他工作站能够访问到服务器呢?而在对服务器的防火墙参数进行适当修改之后,故障工作站为什么又能正常访问服务器了呢?其实,故障工作站之所以无法访问服务器,是因为故障工作站所获得的IP地址恰好与服务器系统的IP地址发生了冲突,这也正是服务器系统屏幕中弹出地址冲突提示的原因所在;而故障工作站由于是从DHCP服务器中获得IP地址的,因此地址冲突现象也只能说明宽带路由器中的软件存在BUG,导致了DHCP服务器居然为工作站分配了一个不在其地址池范围内的IP地址。故障工作站的IP地址一旦与服务器的IP地址发生冲突后,服务器中的防火墙就会自动禁止故障工作站继续访问服务器,所以当笔者将服务器防火墙的工作模式修改成普通模式,并重新启动服务器系统后,服务器中的防火墙就会自动取消故障工作站的访问操作了,那样一来在修改完防火墙参数后,故障工作站自然也就能正常访问到服务器中的内容了。 总结上面的故障排除过程,笔者发现要是起初就按照服务器屏幕中的地址冲突提示进行针对性排查,并结合具体的网络工作环境,说不定就能在故障排除过程中少走许多弯路了!