张文川
(兰州石化职业技术学院,甘肃 兰州 730060)
在计算机网络技术迅速发展趋势下,其在逐步影响与改变着人们的日常生产生活。所以人们迫切要求稳定性与可靠性较高的网络环境,以供给更为优质、高效的网络服务。然而随着网络规模扩大,网络也越来越复杂,结构也愈发多元化,网络故障状况也随之增多,而受制于网络故障传播性、时间性、相关性等,导致故障诊断倍受阻碍,由此引发的损失也越发不可估量。为确保网络通畅,提供更良好的服务,需及时发现网络潜藏隐患,并快速准确定位、诊断故障,以迅速排除故障,恢复网络性能。所以提升网络自诊断能力,实现故障快速诊断与恢复,保障网络稳定可靠非常关键[1-2]。网络自诊断需以网络管理为载体,IETF 于1990年提出了SNMP协议(简单网络管理协议),获得网络设备厂家大力支持,以此发展为了因特网正式标准。SNMP 协议可管控大多数与Internet 标准相符的设备,基于定义新MIB 对象,可简单扩展管理范围,且具备健壮性,管理人员工作不受管理设备故障影响。通过逐步优化与完善,SNMP 协议组与规范,可由设备采集网络管理信息,以实现网络自诊断。当前市场上最普遍的SNMP产品有IBM的Net View、HP的Open View,以及Cisco、Protean、Hughes 等等,但其共性在于计算机网络故障自诊断功能单一化,无法满足实际应用需求。据此,本文基于SNMP协议设计了计算机网络自诊断系统。
SNMP可支持网络管理系统,负责监测网络连接设备的异常状况。SNMP 管理模型由管理代理、网络管理协议、管理信息库MIB、管理工作共同构成。SNMP管理模型中网络管理站负责连接网络管理人员与系统接口,这就要求其必须具备独立的可数据分析与故障排查的应用软件;可监控网络,有效控制网络接口;可转变网络监控管理人员命令为网络各个模块监控;需保障可由网络被管理实体MIB 中获得有效信息数据库[3]。
基于信息流向,计算机网络自诊断系统划分为信息采集层、信息处理层、信息管理层三层次,具体[4]如图1所示。
图1 系统整体框架
3.1.1 采集层分析
采集层负责采集原始数据,由数据采集模块与管理设备群构成。其中,采集模块基于主动传输SNMP报文与ICMP报文,被动接受Trap报文,尽量获取设备相关信息。所采集信息传送于告警检测模块加以处理分析。
3.1.2 处理层分析
处理层为计算机网络自诊断系统核心组成部分,包含告警检测、故障定位、故障诊断。其中,告警检测是故障定位、故障诊断的前提条件,系统可检测的告警类型越多,则可诊断的故障类型越多,应用价值越大;通过接收数据采集模块所采集原始数据信息,基于检测算法或规则,明确告警是否需要触发。故障定位即通过所观察到的故障现象推理实际故障源;以因果图故障定位算法与告警序列相结合的方式进行故障源定位。故障诊断则基于明确故障源,寻找故障成因,以助于排除故障;接收告警与故障源定位结果,以最终诊断分析故障。
3.1.3 管理层分析
管理层为人机交互的重要接口,为故障诊断提供支持功能,即设备管理、故障定位管理,并提供后台数据库相关功能[5-6]。
计算机网络自诊断系统想要及时发现故障并作出正确诊断,需配置管理设备,即添加设备,其将接受系统故障实时监测。在此基础上获取网络状态信息,即设备运行状态与网络性能参数,其是网络故障诊断的重要基础。对网络运行是否正常进行分析检测,据此结果明确触发告警的必要性。在系统出现告警时,便代表着计算机网络很有可能出现故障,以定位故障源,并作出诊断分析。基于以上分析,计算机网络自诊断系统功能[7]具体如图2所示。
图2 系统功能
告警为网络故障外在特征表现,而定位故障需先检测告警信息。当前,告警信息检测基于数据采集方式划分为主动式、被动式、混合式三种检测方式。其中,主动式检测即系统自动探测计算机网络状况,以采集告警信息;被动式检测即等待故障设备或由于受其他故障设备影响出现故障的设备主动上报故障告警信息;混合式检测即结合主动式检测与被动式检测,以检测告警信息。本文网络告警信息检测方式为基于SNMP 的Trap 被动式检测;Polling 轮询主动式检测;基于ICMP报文的Ping主动式检测。
告警间的因果关联关系可通过有向图表征,其节点代表告警,弧代表告警间的因果关联关系。就关联关系而言,在因与果代表的告警同时出现的时候,则关联结果的告警极可能是受关联原因告警影响所产生的。基于告警因果图与告警序列的故障定位算法[8]为:
输入:T时间之内的告警序列AS=(c1,c2,c3,…,cm);节点集合为ANU,节点关系集合为ANRU;输出:故障源集合为S。
首先,对比AS与ANU,如果AS的ce在ANU内不存在,那么告警所代表故障为独立的,添加于故障源集合。相反判断ce是否存在在临时故障集合,如果不存在,则添加于临时故障集合内。(比较计算机网络告警序列与既有因果图告警节点,如果告警不存在在既有因果图内,则此节点可能是独立故障源或新故障)。
其次,详细检查ANU组合节点cf,如果属于AS一些节点组合,则将其添加于临时故障集合。(添加告警序列中在因果图中存在的节点于临时故障集合内,为检测组合告警,把在因果图及告警序列中同时存在的组合节点也添加于临时故障集合)。
再次,就ANRU内各条关系ce→cg,如果二者都存在于临时故障集合,那么将集合内的cg设置非故障源标志。(检测因果图的每条边,如果边的头节点与尾节点都存在于临时故障集合中,则尾节点是由头节点所引发的,所以将尾节点设置非故障源标志)。
最后,就临时故障集合的所有告警节点而言,如果没有设置非故障源标志,便将其添加于故障源集合。(删除临时故障集合内组合节点与非故障源标志节点,剩下节点则为故障源节点)。
基于规则库的故障诊断方法,就是以规则为载体的推理。基于规则推理的结构示意图[9]具体如图3所示。
图3 规则推理结构示意图
推理结构包含工作内存、推理引擎、规则库。其中,工作内存,负责载入故障信息、现象、类型等基础信息,并规范化处理信息,于规则库中提取信息的条件标识;推理引擎负责由工作内存获得条件标识之后,基于正向推理方式将其与规则库的规则条件相匹配,条件满足,则利用此规则,并提取规则结论项,以当作后续推理条件,然后进入后续推理环节。系统中反复推理即获取结论相应条件标识,并以此继续推理,直到获取故障结论。若规则结论不存在相应条件标识,则结束推理。
计算机网络自诊断系统运行流程[10]具体如图4所示。
图4 系统运行流程示意图
系统启动之后,会自动加载管理设备相关信息。如果需进行信息添加、修改、删除,则进入设备管理阶段。基于实际情况实施因果图管理,若网络设备构成的网络拓扑结构未变化,且已存在告警因果图,则进行因果图加载,否则重新输入告警关联关系,以生成因果图,并加以保存。在此基础上,启动数据采集功能模块,将所采集数据信息输入告警检测功能模块,所触发告警便添加于告警列表内。故障定位功能模块则以列表的告警序列为输入,通过因果图推导故障源。故障定位的故障信息与部分告警信息,流入诊断功能模块,以诊断并给定故障成因。
为测试系统实效性,构建了虚拟网络环境进行验证[11],具体如图5所示。
图5 虚拟网络环境
基于计算机网络自诊断系统监测所构建虚拟网络,启动数据采集功能模块采集网络状态信息,通过告警检测功能模块的检测算法与规则实现告警与触发,并自动面向告警序列完成故障定位与诊断。以虚拟网络环境模拟各种故障状况,以验证系统各功能模块准确性与方法实效性。
由图5 可知,计算机网络自诊断系统、服务器a、交换机a、路由器接口共同构成可子网。而路由器a、b、c之间彼此连接,形成了虚拟网络的核心网络。整个网络设备都支持SNMP协议,且开启SNMP Service,设定管理站端口为161。所有网络设备都接受计算机网络自诊断系统的实时监测与诊断。
6.2.1 设备管理分析
将虚拟网络环境中的全部设备添加于计算机网络自诊断系统,其中监测设备具体如图6所示。
图6 监测设备
其中,Route代表路由器;Server代表服务器;Switch代表交换机。
6.2.2 因果图管理分析
就新构建网络而言,需生成因果图。基于网络拓扑结构分析,可获得具体告警关联关系,即:
启动新建因果图对话框,输入关联关系界面具体如图7所示。
图7 关联关系输入界面
在完成输入之后,系统自动调取因果图生成算法,以生成图ANU 与ANRU,基于设置格式储存于文件内,并载入因果图于内存中,同时启动自动故障定位功能。
6.2.3 故障模拟验证分析
首先,数据采集与告警检测功能模块启动。其次,单项无响应故障模拟机(交换机a)停止运行,系统所检测的告警序列具体如图8所示。
图8 故障告警检测结果示意图
交换机a中断运行之后,系统和其他设备之间的通信随之中断,告警检测功能模块接收数据采集功能模块传输的设备无响应消息,然后于列表中给定告警信息。基于分析,理论层面应检测到11个告警,而实际所接收到11个告警,告警检测结果与模拟告警一致。
基于故障定位功能模块面向告警序列定位故障,以获取故障源,具体如图9所示。
图9 故障定位结果示意图
基于分析,故障定位结果与模拟故障相同。
再次,多项无响应故障模拟(路由器d与服务器c)停止运行,系统所检测告警序列具体如图10所示。
图10 故障告警检测结果示意图
路由器d 与服务器c 中断之后,计算机网络自诊断系统与服务器d、PC2、服务器b、服务器c之间的通信也随之处于中断状态。基于分析,理论层面应检测到4 个告警,而实际所接收到4个告警,告警检测结果与模拟告警相一致。
基于故障定位功能模块面向告警序列定位故障,以获取故障源,具体如图11所示。
图11 故障定位结果示意图
基于分析,故障定位结果与模拟故障相同。
然后,Trap故障告警检测,模拟设备面向系统传输Trap报文,系统可有效捕捉解析报文,触发告警。Trap是被管理设备主动面向管理系统传输的,上报自身错误状况的报文,因此系统自动将Trap 告警认定为直接故障,融入故障信息列表,具体如图12所示。
图12 Trap故障告警检测结果示意图
最后,Polling 轮询故障告警检测。轮询程序面向设备开展MIB扫描,所检测故障具体如图13所示。
图13 Polling轮询故障告警检测结果示意图
设备接口异常关闭,即接口运行状态与设定状态存在偏差,这主要是由于接口发生硬件故障,已损坏。
6.2.4 故障诊断验证分析
由故障信息列表中选择故障进行诊断验证。通过故障诊断模块以故障信息为输入,基于规则库相关规则正向推理,以诊断故障成因。以故障1 为例进行诊断,结果具体如图14所示。
图14 故障诊断结果示意图
以故障15为例进行诊断,结果具体如图15所示。
图15 故障诊断结果示意图
综上,通过系统验证,可清楚了解到计算机网络自诊断系统可及时检测告警,准确定位故障源、诊断故障,并给定故障成因。此外系统故障诊断支持功能的有效实现,在很大程度上为故障定位与故障诊断奠定了有力支持[12]。
综上所述,及时准确发现计算机网络潜藏隐患,在故障出现时,快速定位、诊断故障,以高效排除故障,对于提高计算机网络健壮性具有十分重要的现实意义。因此,本文基于SNMP 协议设计了计算机网络自诊断系统。通过系统设计与验证,结果表明,系统可及时检测告警,准确定位故障源、诊断故障,并给定故障成因,这就说明系统具备优秀的网络自诊断能力,且告警检测技术、故障定位算法、故障诊断方法有效且实用。