笔者是某单位大楼的一名网络管理员,平时主要任务就是维护大楼局域网网络的安全、稳定运行。最近一段时间,隔三差五的,大楼局域网网络总会发生一些故障:有的时候某个工作子网能够正常访问Internet网络,但另外某个工作子网却不能正常上网访问;在同一个工作子网中,有的工作站能够正常上网,有的工作站却不能访问Internet网络;甚至有的时候,单位大楼中的所有工作子网都不能访问外部网络。除了单位同事的抱怨, 还经常被单位领导“请“去教训一下,弄得笔者焦头烂额的。
故障接二连三发生
以前单位大楼网络偶尔也发生过有的工作站能上网、有的工作站不能上网的故障现象,遇到这种故障现象时,笔者曾经使用专业的数据抓包工具进行抓包分析,不过仔细分析之后,并没有从中找到具体的故障发生根源,每次只是简单地重新启动一下大楼局域网的交换机设备以及防火墙设备,所有工作站的网络访问状态就都能恢复正常了。不过如此频繁地通过重新启动交换机和防火墙,来解决网络故障现象,也不是一个有效的办法啊,毕竟经常频繁地重新启动类似交换机这样的重要网络设备,不但会降低大楼局域网网络的运行稳定性,而且时间一长交换机之类的网络设备使用寿命也会缩短。更为严重的情况是,即使有的时候重新启动了交换机之类的网络设备,没有几分钟的时间,网络故障又会再次发生了;很明显,如果不从源头上找到网络故障根源的话,那么网络故障现象将会接二连三地发生,那么单位大楼网络的运行效率就会大大下降。
初步排查故障现象
单位大楼局域网网络的拓扑结构主要是一台通过宽带光纤与本地ISP直接相连的硬件防火墙,以及与硬件防火墙保持连接的核心路由交换机,其中核心路由交换机中划分了70个VLAN。为了寻找网络故障根源,笔者先是在局域网的任意一台普通工作站中依次单击“开始“/“运行“命令,在弹出的系统运行对话框中输入“cmd“命令,单击回车键后,将系统工作状态切换到DOS命令行状态,在该状态的命令行提示符下输入字符串命令“ping 10.176.1.2“(其中10.176.1.2是本地局域网网络的网关地址),单击回车键后,屏幕上返回了本地局域网网络的网关地址能够被正常Ping通的测试结果(如图1所示);接着,笔者又在命令行提示符下输入字符串命令“ping 10.176.1.3“(其中10.176.1.3是本地局域网网络的防火墙地址),单击回车键后,屏幕上同样返回了本地局域网网络的防火墙地址能够被正常Ping通的测试结果。通过上面的测试,笔者认为大楼内网到网络出口之间的网络连接一切都很正常。
为了检验防火墙到本地ISP之间的宽带连接线路是否处于通畅状态,笔者通过telnet命令远程登录到防火墙设备中,并在该设备的远程登录状态下Ping了一下本地ISP的网关地址,测试结果发现本地ISP的网关地址也能被正常Ping通,这说明单位大楼网络能够正常访问到本地ISP。对于上面的测试结果笔者百思不得其解,本地局域网的网关地址能够被正常Ping通,本地网络到本地ISP之间的网络连接也是通畅的,但偏偏局域网中的某些工作站就不能上网访问,难道问题出在局域网工作站身上?但转念一想,还是不太可能,如果网络不出问题的话,最多只有一台或几台工作站不能上网,但现在有的时候会出现某一个工作子网工作站都不能上网的故障现象,这说明网络肯定是有问题的!经过仔细分析故障现象,以及对比测试结果,笔者初步认为这种故障现象很可能是由网络中的ARP病毒造成的;因为一旦局域网网络感染了ARP病毒时,局域网工作站在上网访问时会将上网请求信息全部转发到虚假的网关设备上,最终会造成工作站都不能上网的故障现象。
深入解决故障现象
为了确认ARP病毒是不是最终的故障根源,笔者在局域网的一台普通工作站中打开MS-DOS窗口,在该窗口的命令行提示符下输入“arp -a“字符串命令,单击回车键后,笔者发现本地网关设备的物理地址变成了000d-87f8-36d3,这个地址与核心路由交换机上设置的网关真实物理地址完全不同,这说明局域网网络中果然存在ARP病毒。
那么局域网中究竟是哪一台工作站感染了ARP病毒呢?由于单位大楼局域网网络包含10个VLAN,每一个VLAN下面连接的计算机数量也是不断处于动态变化之中,因此单纯依靠传统方法很难快速找到感染了ARP病毒的目标工作站系统。想到在组建大楼局域网网络时,工作人员曾经创建了VLAN数据对照表,从该对照表中网络管理员能够快速查询到每一个VLAN中包含了哪些网络连接端口,每一个网络连接端口位于单位的哪一个房间。为此,笔者打算先找出究竟是哪些VLAN中存在ARP病毒,之后根据查找出来的虚假网关物理地址信息,寻找到感染了ARP病毒的工作站来自特定工作站的哪个端口,最后再查找对照表找到故障工作站所在的房间号码,最后电话联系房间主人隔离杀毒。
由于笔者单位使用的交换机支持诊断功能,于是笔者打算利用该功能寻找局域网中的ARP病毒。笔者先是利用超级终端程序连接到单位核心交换机上,并进入特权模式;在特权模式命令行状态下,输入字符串命令“dis dia“(显示诊断信息),单击回车键后,系统询问是否要进行诊断操作,为了能够查看到所有的诊断信息,笔者在进行回答之前,先依次单击超级终端界面中的“捕捉“/“捕捉到文本“命令,再设置好诊断信息保存的路径以及文件名称,最后单击“y“(如图2所示),开始进行诊断检查,诊断检查的结果会被自动捕捉保存到指定的文本文件中。
诊断结束后,笔者立即打开指定的文本文件,从中果然看到VLAN61中的网关设备物理地址变成了000d-87f8-36d3。之后,笔者使用telnet命令登录到VLAN61所在的交换机中,并在命令行提示符下输入“dis mac“字符串命令,单击回车键后,笔者看到了连接到VLAN61中的所有工作站网卡物理地址,从中笔者发现000d-87f8-36d3地址所对应的工作站连接在VLAN61的e0/9端口上(如图3所示);为了防止这台感染了ARP病毒的工作站继续影响网络的正常访问,笔者立即在对应交换机的后台管理界面,依次执行字符串命令“inter e0/9“(进入端口修改模式状态)、“shutdown“(关闭端口),将这台感染了ARP病毒的工作站从大楼网络中隔离开来。最后,笔者查看单位的VLAN数据对照表,根据VLAN号码、端口号码等信息,寻找到故障工作站是四楼文印室的,打电话联系他们,要求他们使用最新版本的杀毒软件进行杀毒操作,至此ARP病毒终于被揪出来了。