校园网中网络设备的正常运行是网络通畅的保证,如何发现与定位网络故障是网络管理员最关心的问题。本监测系统经在校园网内运行测试,能够及时的发现并定位故障的位置,管理员只需通过图形界面即可以看到网络故障的位置,并同时能够接到短信报警通知。管理员也可以配置是否支持短信报警,以减少短信报警所花费的成本。本系统的应用,给校园网络管理带来了较大的方便,有实用价值。
Ping命令用于TCP/IP协议的探测
随着校园信息化系统的建设,校园网用户和网络设备急剧增加,特别是日常的教学与科研活动越来越多的依托于校园网络,对校园网的可靠性要求越来越高。网络设备故障自动监控是保证校园网稳定运行的重要手段之一。
Ping命令是Windows系列操作系统中的一个可执行命令,Ping命令主要由一组ICMP(因特网控制消息协议)回送请求报文组成,是用于TCP/IP协议的探测工具。ICMP使用IP在网络间进行通信,是TCP/IP协议簇的一个子协议,提供传输差错报文、控制报文和询问报文的功能。Ping命令正是使用了ICMP协议众多报文中的请求报文和请求应答报文来测试目的主机是否可达,Ping使用ICMP Echo Request(回送请求)包向远程主机发送简单的报文,当远程主机接收到消息后使用ICMP Echo Reply(回送回复)包进行应答,报告其与主机之间的连接性,网络故障很容易就被探测出来。仅从网络线路连通性诊断的角度来讲,与用于网络管理的SNMP相比,在响应速度及简单程度上Ping命令具有得天独厚的优势。Ping命令只需要发送大小为几十字节的数据包即可完成对网络线路的探测,需要在网络上传输的数据量少,因此响应速度很快。同时Ping命令常用的格式不多,与冗繁的SNMP相比更简单易用。
基于Ping命令的网络故障发现已经被广泛的研究和运用,但命令行的交互方式给网络管理员带来不便。C#.NET中对Ping类进行了封装,这样很容易通过程序利用Ping命令对校园网络的连通性进行探测。本文利用C#中的Ping类实现对校园网络连通性的自动探测,对探测的结果通过软件的用户界面及短信的形式向管理员进行报警,使管理员无需操作就可以发现并定位网络故障。
监测原理
在校园网络的树形拓扑结构中,拓扑树中的每一个节点为交换机的一个端口,节点中存储有端口的IP地址,父节点号等信息,这些信息用于辅助整棵拓扑树的扫描。Ping处理模块会定时通过遍历算法扫描树中的节点,并对节点进行Ping操作,对于Ping通的节点则继续扫描它的下一级节点,并清除报警信息表中关于该节点的报警信息;如果该节点Ping不通则停止扫描下一级节点,并把该节点写入报警信息数据库表中,转向扫描它的兄弟节点,直至树中的节点全部扫描结束,等待下次扫描时间的到来。短信报警模块定时扫描报警信息表,如果报警信息表中存在需要报警的信息,短信报警模块将报警信息通过用户界面(UI)在网络拓扑树中醒目的显示出来,并利用AT指令把报警信息通过串口写入短信猫,实现报警信息以短信的方式通知管理员。监测原理如图1所示。
扫描算法的设计
树的遍历算法包括前序遍历、中序遍历和后序遍历,这些遍历算法都有一个共同的特点,就是从根节点开始遍历,这就要求系统要运行在校园网络拓扑树的根节点位置,否则将会产生错误的报警信息。如在图2中,系统运行在节点301处,假设此时3号节点出现故障,若采用前序、中序或后序遍历算法则需要先对根节点进行Ping操作,由于3号节点出现故障,很显然根节点Ping不通,这时错误的认为根节点出现故障,但实际故障出现在3号节点。因此,为了摆脱系统需要运行在根节点的限制,及避免产生错误的报警信息,需对树的遍历算法进行改进。
监测系统允许用户配置系统运行所在的节点位置,这时系统运行时不再从根节点进行拓扑树的遍历,而是先从用户配置的运行节点处开始运行,扫描过程如下:
第一步:寻找根节点。从用户配置的节点处开始向祖先方向扫描,并对每个节点进行Ping操作。
a)节点Ping不通,扫描结束(向上一级一定Ping不通),将节点信息写入报警信息表;
b)节点能Ping通,检查并清楚报警信息表中关于该节点的报警信息。继续向祖先方向扫描 ,直至找到根节点为止。
第二步:从根节点开始扫描整棵拓扑树。从第一步中找到的根节点开始向该子节点方向进行先序遍历扫描(注意不进行中序遍历和后序遍历扫描,因为只有父节点连通的情况下孩子节点才有可能是连通的,如果父节点是故障的,则孩子节点一定是不连通的),并对每个节点进行Ping操作。
a)节点Ping不通,将该节点的信息写入报警信息表,停止向该节点的该子节点扫描,转向扫描该节点的兄弟节点;
b)节点能Ping通,检查并清除报警信息表中关于该节点的报警信息,继续扫描该节点的孩子节点,直至整个网络拓扑树扫描完毕。
同样以系统运行在301节点处为例,按照上述扫描算法,系统首先扫描父节点3号节点,此时假设3号结点故障,监测系统终止拓扑树的扫描,把报警信息直接写入报警信息表,从而准确的发现和定位故障位置。如果3号节点正常,则系统会向上扫描到根节点,转而按树的先序遍历完成整个校园网交换机设备的监测。
报警处理
系统经Ping处理模块处理后将故障信息写入报警信息数据库表中,报警信息表中每一条记录会记录节点的IP地址、网络故障发生时间、是否已经做了报警处理以及该条报警信息是否已经过期等信息。报警模块会定时扫描报警信息表,对于信息表中没有过期的报警信息做出检查,如果是没有进行报警处理的信息则直接进行报警处理,对于已经做过报警处理的信息还要进一步判断是否到达重复报警时间。报警模块对检查过的报警信息在用户界面上用醒目的方式显示出来,同时,报警模块还将故障信息利用AT指令通过串口写入短信猫,从而以短信的方式向网络管理员报告故障信息。系统部分监测界面如图3所示。
(作者单位为安徽工业大学现代教育技术中心)
文章来源:《中国教育网络》杂志2010年8月刊
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。