长江大学学报(自然科学版) 2008年3月第5卷第1期:理工 Journal of Yangtze University(Nat Sci Edit) Mar.2008.Vo1.5 No.1:Sci&Eng 基于SNMP及串口通信的网络监控与报警系统 阮宁君 (长江大学电子信息学院,湖北N J ̄\ll 434023) [摘要]将基于简单网络管理协议的网络管理编程与串口通信相结合,在Windows NT/98/2000平台下用 VC+4-6.0开发网络监控和自动报警系统,并描述了该系统的实现过程。 [关键词]网络管理系统;SNMP;代理管理;串口通信 [中图分类号]TP393 [文献标识码]A [文章编号]1673—1409(2008)01一N260—02 网络管理系统是一组完成网络管理功能的软件。国际标准化组织(ISO)在ISO/IEC 7498—4文档 中定义了网络管理系统的5个功能域:失效(故障)管理;配置管理;安全管理;性能管理;计费管 理。现在的网络管理系统有很多,其功能也很强大,但在网络的无人监控方面却无能为力。因此,有必 要开发一种网络无人监控系统,随时监控网络状态,当检测到网络中的异常事件发生时,立即向管理者 自动报警。 1网络管理协议 网络管理协议是一个管理者和代理之间通信的标准,它提供了一种访问由任何厂商生产的任何网络 设备,并获得一系列标准值的一致性方式。在所有适合于TCP/IP网络,特别是Internet的管理方案 中,简单网络管理协议(sNMP)由于其易于实现和广泛的TCP/IP应用基础被众多的厂商支持。现 在,SNMP已成为网络管理领域中事实上的工业标准,目前流行的绝大多数网络管理系统和平台都是 基于SNMP的。SNMP是在TCP/IP协议栈之上的应用层协议。它采用的是管理者/代理模型。代理和 管理站之间使用UDP(用户数据报协议)作为第4层即传输层协议。SNMP提供给网络管理应用程序一 套简单的命令集通过ISO的ASN.1相关的BER规则形成报文,以UDP/IP服务方式实现其功能。 SNMP还提供了一套Trap机制。所用的传输服务是UDP。由于UDP是面向无连接的协议,因此 SNMP应用实体问通信时无需先建立连接。 2网络监控系统体系结构 尽管绝大多数网络管理系统都是基于UNIX操作系统平台的,但由于UNIX下的串口通信不便实 现,因此将该网络监控和报警系统的操作系统平台选为Windows NT/98。通过Windows NT/98来代 替UNIX管理站实现网络监控和自动报警的功能,即代理管理。为实现代理管理,必须在网络管理站 的snmpd配置文件中的SNMP管理站域中加入代管主机(Windows NT/98/2000)的IP地址。这样当 网络管理站收到被管网络的Trap陷阱信号时会自动将该Trap转送给代管主机。代管主机收到Trap 后,进行过滤、解析及相应处理,然后通过modem拨打管理者的BP机,向身在异地的管理者报警。 整个网络监控和自动报警系统主要由SNMP Trap的接收、解析和拨号报警3部分构成(见图1)。 3 SNMP Trap的接收和解析 SNMP Trap(陷阱信号)是SNMP代理自动发送给管理站的非请求消息。这些消息通知管理站被 管网络发生了一个特定的事件。由于其无需管理者干预的非请求性和事件驱动机制,SNMP Trap的接 收和处理是网络自动监控系统实现的关键环节。SNMPTrapl; ̄仅可以提供网络的故障信息,还可以提 [收稿日期]2007—12 22 [作者简介]阮宁君(1 974一),男,1 997年大学毕业,讲师,现主要从事 ̄g-3:仪器和语音IP电话通信方面的教学与研究工作。 维普资讯 http://www.cqvip.com
第5卷第1期:理工 阮宁君:基于SNMP及串口通信的网络监控与报警系统 ・261・ 图1 网络自动监控系统框图 供网络安全(如收到authenticationFailure则表明有非法请求)和性能信息。 在SNMP管理站中,运行着一个后台进程snmpd,负责接收和确认SNMP请求及Trap信号、处 理请求并返回结果、向配置文件中的所有主机发送Trap信号。因此管理站中Trap的接收和处理是自 动实现的。而在代理管理站,Trap的接收和解析需要编程实现。该系统中使用了HP公司的SNMP+ +。Trap的接收过程如下: 1)在后台打开一个SNMP进程。 2)注册要接收的Trap类型,选择接收管理者关注的Trap信号,其他的Trap信号忽略。在回调 函数中定义针对Trap的处理。回调函数是指在事件驱动机制中,当事件到来时系统自动调用的函数。, 3)监听pdu第162号端口(SNMP的管理端口),如果有注册的Trap到来,则启动回调函数,将 Trap信息存储在一个pdu结构中。 4)在回调函数中利用SNMP++类的方法和属性解析Trap信息,相应解析结果保存在日志文件中 并交界面显示程序及拨号程序报警。 。’ :4 VC4-4-6.O中串口通信的实现 Microsoft公司的VC++6.0中提供了许多可重用的ActiveX控件,其中针对串口通信的控件名为 Microsoft Comm Control(简称为MSComm)。使用MSComm控件非常简单,基本步骤如下: 1)在对话框中插人MSComm控件,其Contral-ID为IDC-MSCOMM。在ClassWizard中为它增加 一个变量(variable):m—com。在程序中只需对m—com进行操作。 2)设置Modem参数,事件发生时打开串口。 corn2:m-corn SetCommPort(2); if(!m-corn.GetPortOpen()) m—corn.SetPortOpen(true) 一. 3)收到Trap参数,激活Modem,拨号。串口的Modem拨号过程可通过MSComm的SetOutput 函数实现。 4)挂断连接,关闭串口 m-com.SetPortOpen(false)。 5 结 语 简单网络管理协议(SNMP)是最早提出的网络管理协议之一,它一推出就得到了广泛的应用和支 持,特别是很快得到了数百家厂商的支持,其中包括IBM,HP,SUN等大公司和厂商。目前SNMP 已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于 SNMP的。而这种基于SNMP及串口通信的监控和报警系统在很多领域将会得到广泛的应用。 [编辑] 易国华
因篇幅问题不能全部显示,请点此查看更多更全内容