SNMP在电信设备远程故障检测中的应用

(整期优先)网络出版时间:2019-06-16
/ 2
摘 要 本文在SNMP之上设计了一种专供设备检测使用的协议框架,弥补了SNMP的缺陷,从而能够基于SNMP构建一个完整的设备远程配置、监测、控制和检测系统。笔者多次在电信设备的管理系统中使用该设计,效果显著。
关键词 设备检测;SNMP0 引言
在NGN电信网中,其管理中心一般是通过以太城域网和各种设备联接在一起的;管理中心对电信设备实现远程的配置,监测和控制。在管理工作站和设备之间[1],SNMP(简单
网络管理协议)成为理想的网络通讯协议。SNMP对网络设备的监测和控制提供了良好的通讯机制和通用的设计模式[2],使用SNMP的GET命令可以获取设备运行是某个参数的值,使用SNMP的SET命令可以设置设备运行的参数,从而可以对设备运行实行动态监测和控制[1][3]。该协议简单,通用,有利于系统的开发和扩展。
然而一直以来,电信设备的检测,特别是用户线路和用户外电路的检测,却是由工程师在机房单线操作的;工作费时费力,及时性和准确性都不理想。为了减轻工程师的劳动强度以及节约运营成本,越来越多的电信运营商希望管理中心能够对设备进行远程的在线测试。笔者参加了几个相关的项目设计,在项目实践中,笔者发现SNMP对设备在线检测功能的支持有限。这是由于1)检测设备的动作有一定的时间延时,而且时延有长有短,SNMP的GET命令不能适应这种变化。2)有些检测项目需要一些特定的测试参数,这不是单条命令能够完成的。为了使得SNMP能够较好支持设备的远程测试,本文提出一种协议框架,从而使为电信设备的远程在线检测的实现提供通讯支持。

1 方案设计
本文以一个实际项目为例,介绍这种设计方案。该项目是一个NGN接入网的在线设备检测系统,要求1)能够指定测试项目和必要的测试参数;2)一条测试命令能够选中多条用户线路进行测试;3)支持并发的测试请求。
该设计方案引入DCSM模块,如图1(包括,DCSM(C)在管理工作站,DCSM(A)在设备侧)对测试会话进行管理。DCSM工作在应用层之下,SNMP之上;在管理工作站,DCSM(C)提供设备测试接口,并能够将相应的测试结果上报给Manager;在设备测,DCSM(A)将DCSM(C)同步而来的数据组装成测试命令,传递给DEVICE,并将DEVICE传来的测试结果同步到DCSM(C)。

838177053.jpg


图1 系统模块关系
DCSM(C)和DCSM(A)模块都包含两个类:dispatch类和session类。dispatch负责消息的分发,它将DCSM(C/A)收到的消息根据sessionId分发给相应的session。系统中一个disptch类的实例对应于多个session类的实例;每一个session类的实例对应于一个检测请求,由sessionId唯一标识。session类负责管理测试状态,并利用SNMP消息在DCSM(C)和DCSM(A)之间同步状态和信息。

838181936.jpg

图2 系统类图
为了实现管理工作站和设备两侧检测会话数据和状态的同步,session支持以下几个命令:1)NEW_REQUEST;2)CMD_PARAM;3)TARGET_PARAM;4)START_WORK;5)END_TEST;6)REPORT_RESULT;7)REPORT_STATUS。
以上7个命令在DCSM(C)和DCSM(A)之间实现sesssion的数据和状态的同步,具体有以下几个应用场景。
1)测试请求。在DCSM(C)收到测试请求后,DCSM(C)发送一系列命令给DCSM(A):1)NEW_REQUEST,通知其接受新的测试请求并分配资源;2)CMD_PARAM,同步命令参数;3)TARGET_PARAM,同步测试用户线标识;4)START_WORK,指示参数传递结束,开始测试。

838187463.jpg


图3 检测请求场景
2)结果/状态报告。DCSM(A)得到设备的测试结果后发送REPORT_RESULT,得到设备测试状态后发送REPORT_STATUS给DCSM(C)。

838189728.jpg


图4 检测报告场景
2)结束测试。DCSM(C)在收齐测试结果或测试超时时发送END_TEST给DCSM(A)结束测试。DCSM(C)和DCSM(A)释放资源。

838188258.jpg


图5 检测结束场景
2 MIB库定义
本文使用SNMP来实现DCSM模块的7个命令的功能需求,其MIB库定义如图六所示。

838191066.jpg

838194332.jpg

图6 MIB库的定义
其中:
① dcCmdFlag,为Gauge32的对象。该字段负责传递NEW_REQUEST(新检测请求),DC_START(启动测试),END_REQUEST(结束检测请求)命令。其高16bits表示会话流水号(dcSeqNo);其低16bits表示命令类型。
② 命令参数表,表中包含(1)会话流水号,表的索引;(2)设备检测所需的参数。
③ 测试目标表,(1)会话流水号,表的索引;(2)用户线标识。


④ dcSignalReport,包含测试状态报告(TRAP)的内容。
⑤ dcResultReport,包含测试结果报告(TRAP)的内容。
3 结语
在项目实现中,本文选择了SNMP协议栈的开源实现snmp++/Agent++来实现我们的方案。该项目在投入运营的半年多时间以来,运行良好;能够满足客户实现远程设备检测的要求,
使用该方案实施设备远程检测,由明显优势:1)协议简单,互通性好;2)使用简单方便,减轻现场工程师劳动强度;3)反应敏捷,自动化程度高。所以,该设计方案能够提高企业效率,适应时代发展需要。
参考文献
1 于涧, 韩瑛, 王飞. 电信网管数据采集技术的研究和实现[J]. 沈阳师范大学学报(自然科学版) 2005年 04期
2 李 俊, 熊文龙, 宫浩然. SNMP原理及安全性分析[J]. 交通计算机, 2003, (1)
张朕, 应吉康. 基于SNMP的统一网管框架的设计与实现[J]. 微机发展, 2006年 01期