刘润苗,鲍建波,张志华,刘润青
(1.国电南瑞科技股份有限公司,江苏 南京 210061;2.江苏金智科技股份有限公司,江苏 南京 211100)
随着配电自动化系统网络的规模日益增大,使得网络管理的难度也大大增加,面对多厂家、多设备型号等特点,要实现网络高效、合理地管理就必须使用统一的网络管理协议进行网络设备的管理及监视,SNMP是一套覆盖服务、协议和管理信息库的标准,定义了管理站(NMS)与网络设备(Agent)间交换管理信息的协议、管理信息的结构框架、通用的管理信息库(MIB),因其简单而有效的特点已经在网络管理中得到了广泛的应用。
在配电自动化系统中,计算机通信网络是一个基础性的平台设施,在电力生产、系统管理等方面有着举足轻重的作用,也是配电自动化系统是否优越的重要环节,为配电自动化系统的综合管理提供有力支持和基本保证。近年来,随着国家建设坚强智能电网的继续推进,配电自动化系统得到了快速的发展,日常业务对网络的依赖性不断增强,网络规模日益扩大,但是对配电自动化信息网的管理尚不完善,还有待进一步提高,如何更加高效合理的管理和使用网络,保证系统的可靠运行就显得至关重要。
随着配电自动化建设的推进,配电自动化网络规模变得日益庞大,网络节点数量成级数的增加,使得网络管理人员管理网络设备的难度大大增加,网络管理人员如何及时监控所有设备的状态、发现并修复故障就成了必须解决的问题;而且在复杂的网络系统中,网络设备可能来自多个设备厂家,众多的设备厂家及不同的设备型号也增加了网络管理的难度。因此,所有设备必须提供给管理者统一的设备管理接口,方便对网络设备的管理及维护,所以,覆盖服务、协议及管理信息库的网络管理协议对配电自动化系统来说就显得尤为重要。
SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集[1]。
SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议[2],它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。
图1 SNMP协议网络架图
SNMP协议网络架构如图1所示,其主要由三个部分组成:管理站NMS、被管理站Agent和管理信息库MIB[3]。
NMS是管理站,是利用SNMP协议对网络设备进行管理和监视的系统,被作为管理员与管理系统的接口。管理站可以是独立的设备,也可以利用共享系统设备来实现,即某个设备中执行管理功能的应用程序。NMS可以通过Set/Get指令修改/获得代理Agent中的一个或者多个信息,也可以接收Agent主动发送的Trap信息,以获知被管理设备当前的状态。
Agent是被管理者,即代理站,是网络设备中的应用模块,及装备了SNMP平台的被管理对象,用于维护被管理设备的信息数据,接受来自管理站NMS的信息请求和动作请求进行应答,把管理数据汇报给发送请求的NMS,同时随机地为管理站报告一些重要的意外事件。Agent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送Trap信息给NMS[4],通知设备当前的状态变化。
MIB为管理信息库,是被管理对象的结合[5]。SNMP中每个被管理的资源都表示成对象,称为被管理对象。MIB作为NMS和Agent之间的接口,它定义了每个被管理对象的名称、访问权限、数据类型等属性,通过这个接口,管理站可以读取代理者中的信息,也可以通过修改变量值改变代理者处的配置,从而达到管理和监控设备的目的。
在配电自动化系统中使用SNMP协议进行网络管理时,版本使用支持SNMPv1/SNMPv2c的net-snmp-5.2.1,在终端开发环境编译生成Agent代理进程后,只需要对代理Agent的配置文件snmpd.conf对相关信息进行配置,启动Agent进程即可。
SNMP传输协议的数据传输单元包括Get-request、Get-Next- Request、Get- Response、Set- Request 和 Trap[6],SNMP 协议中所有由管理站NMS到代理Agent的数据(Get/Set)均通过UDP端口161进行传输,所有由代理Agent到管理站NMS的数据(Response/Trap)均由 UDP端口162进行传输。其中 Get-request和Get-Next-Request是由SNMP管理站NMS发送给管理代理Agent的报文,用于请求检索设备信息,代理以Get-Response作为响应;SNMP管理站NMS使用Set-Request对代理所在网络设备实现远程设置的参数及修改,这些都通过对管理信息库的读写操作实现;而陷阱Trap是代理Agent主动送出的非请求信息,用于向SNMP管理站NMS报告如设备启动、关闭和其他等异常事件的发生。
代理Agent在收到管理站NMS的报文后,首先按照ASN.1的基本编码规则对收到的数据进行解码生成用内部数据表示的报文,如果解码正确,则进行下一步的操作,否则分析结束;然后取出报文中的版本号与SNMP所支持的版本号进行比较,如果比较一致,则进行下一步的处理,否则分析过程结束;再将报文中的团体名取出与本设备认可的团体名进行比较,如果团体名比较正确,则进行下一步的操作,否则分析结束;最后再从验证通过的ASN.1对象中提取数据单元PDU,如果成功,则按照PDU生成一个回复报文,通过UDP端口162将报文回复给管理站NMS。
在配电终端中实现SNMP协议时,配电终端作为代理Agent运行以响应管理站NMS的请求参数及设置参数指令,在配电终端成功嵌入代理Agent进程后,只需要对其配置文件snmpd.conf进行简单配置就可以实现简单的SNMP代理Agent功能,这里以管理站IP为192.168.10.77,代理站IP为192.168.10.15为例进行说明:
(1)首选是定义一个共同体名(community),这里是public,及可以访问这个 public的用户名(sec?name),这里是 mynetwork,Public相当于用户mynetwork的密码:
# sec.name source community
com2secmynetwork 192.168.10.77 public
(2)定义一个组名(groupName)这里是MyROGroup,及组的安全级别,把MyRWGroup这个用户加到这个组中:
# sec.model sec.name
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
(3)定义一个可操作的范围(view)名,?这里是 all,范围是?.1,如下:
# incl/excl subtree mask
view all included .180
(4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了MyROGroup组的成员可对.1这个范围做可读可写操作
# context sec.model sec.levelmatch read write notif
access MyRWGroup"" any noauth exact all all none
至此,一个简单的SNMP代理Agent配置就完成了,当然,如果需要配置进一步的信息,还可配置诸如syslocation、syscontact等选项。
SNMP测试环境的搭建需要一台嵌入了SNMP代理进程的配电终端和一台作为管理站使用的设备,管理站一般是一个分立的设备,也可以利用共享系统实现。这里选择一台运行了Windows XP系统的PC机作为管理站NMS使用,一台运行Linux系统的配电终端作为代理Agent进行SNMP相关功能的测试。
Windows XP系统自带了SNMP协议,在配置时值需要启用相关功能即可。具体方法为:进入“控制面板”→“添加或删除程序”→“添加/删除Windows组件”→“管理和监视工具”,然后点击下一步安装即可完成SNMP功能的启用。
首先将管理器NMS的IP地址设为192.168.10.77,代理A-gent(配电终端)IP地址设为192.16.10.15,在作为管理器的PC机命令提示符输入snmpwalk指令即可从代理处获取相应的数据,部分测试结果举例如表1所示。
表1 NMS的部分测试结果
配电自动化系统通信网络建成后,随着系统规模的不断扩大,需要对配电自动化系统进行不断的优化和维护,以提高网络性能,在配电终端实现对SNMP协议的支持后,可以采集和分析得到配电自动化通信系统的平均速率、丢包率、差错率、吞吐量等性能数据,从而进一步掌握网络资源的利用情况,并通过对各种性能参数的提取,反映网络的实际运行质量,分析网络资源的使用情况,维持网络传输品质,保障网络应用系统与服务顺畅运行,
为网络的优化运行及带宽的调整提供决策支持。同时通过
SNMP网管协议对配电自动化对网络性能数据的监测、收集、统计和分析等功能,为配电自动化通信系统运维管理人员进行网络的维护和优化提供依据。
[1] 卓丽,徐钊,孙磊.网络管理协议SNMP在千兆以太网交换机中的设计与实现[EB/OL].(2007-12-26)[2013-2-3].中国科技论文在线.http://www.paper.edu.cn/releasepaper/content/200712-740.
[2] 肖俊彦.基于SNMP可管理以太网交换机的设计与实现[D].成都:成都电子科技大学,2004.
[3] 王博,刘强,陈明,等.基于VC++和SNMP的网络性管理的设计[EB/OL].(2009-12-17)[2013-2-5].中国科技论文在线.http://www.paper.edu.cn/releasepaper/content/200912-588.
[4] 王雁博.基于SNMP协议的网络流量管理[J].西安文理学院学报:自然科学版,2011,14(3):86 -89.
[5] 刘立胜.基于SNMP的Web网络管理系统的设计与实现[D].沈阳:东北大学,2010.
[6] 步园明,徐钊.基于Linux的SNMP代理的设计与实现[EB/OL].(2008-06-25)[2013-2-5].中国科技论文在线,http://www.paper.edu.cn/releasepaper/content/200806-588.