谭小波,李 冬
(沈阳理工大学 信息科学与工程学院,辽宁 沈阳 110159)
嵌入式SNMP网管代理系统的研究
谭小波,李 冬
(沈阳理工大学 信息科学与工程学院,辽宁 沈阳 110159)
针对OmniStar有线电视网络设备仅支持本地监控,难以满足远程网络管理的需求,在硬件方面设计了以ARM-S3C2416为基础的、具备15路串口的网管代理服务器;在软件方面设计了支持SNMP协议与设备专有协议之间转换的网管代理软件。网管代理服务器采用串并行相结合的方式,最多管理75台设备,降低了网络管理的成本。网管代理软件实现了OmniStar设备的集中远程管理,减轻了网管工作人员的负担。
有线电视网络;网络管理;网管代理;SNMP
网络管理是对网络中包括软件、硬件和人力的综合、使用以及协调,以实现对网络资源的监督、组合和控制[1]。随着有线电视网络技术的快速发展及业务规模的不断扩大,建立一个科学有效的网管系统,实现所有有线电视网络设备的集中管理,提高网络运营的可靠性与服务质量,成为有线电视网络管理研究的重点[2]。
SNMP(Simple Network Management Protocol )协议以其简单、实用的特点成为网络管理事实上的标准协议[3]。目前大部分网络设备都支持SNMP协议的网络管理[4-6]。然而仍然有部分有线电视设备不支持SNMP协议,因此针对不支持SNMP协议的有线电视设备,设计支持SNMP协议的代理转换器,使其能够融入到网管系统中,实现网络设备的集中管理。
GI公司的OmniStar光纤宽带高密度传输平台是为将来的宽带混合光纤/同轴网络(HFC接入技术)设计的一种光纤传输平台。前端监控软件HCS通过串口监控管理平台,即通过串行总线对OmniStar平台参数变量信息和告警信息通过A/D转换组成数据帧,返回给前端监控软件,达到管理平台的目的。在这种管理模式下每台PC只能对一台OmniStar设备进行本地监控,极大地增加了管理成本和工作人员的负担。
本文针对OmniStar设备只支持串口通信的本地监控,难以满足远程网络管理的需求,在硬件方面设计了以ARM-S3C2416为基础的、具备15路串口的网管代理服务器。该代理服务器采用串并行相结合的方式最多管理75台设备,一个机房只需要配备一台代理服务器和一台PC,降低了网络管理的成本。在软件方面设计了支持SNMP协议与设备专有协议之间转换的网管代理软件,实现了OmniStar设备的远程管理,减轻了网管工作人员的负担。测试结果表明,本嵌入式网管代理系统能够解析来自管理端的网管请求,通过协议转换向OmniStar光传输平台发送串口通信指令,进行实时数据采集和参数配置,并将采集的数据封装成SNMP应答报文,提交给管理端,实现了OmniStar设备的远程监控管理。
本网管代理硬件的设计不仅要尽量满足各种功能要求,还需要考虑到系统的整体性能、封装尺寸、数据传输速率、器件间干扰大小等诸多因素,并且确保系统的安全和稳定运行。根据网管代理系统的实际需求,并基于机房中通常放有60~70台OmniStar设备,考虑到整个系统的成本和所占空间大小等问题,用一个ARM处理器管理机房中所有设备。如果单纯采用S3C2416原有的四个串口,其中一个串口用于本地管理,剩余三个串口管理设备,则每个串口下需要级联20~30台的设备,这就大大加剧了数据的提取和轮询的缓慢程度。因此,考虑到数据轮询和传输速度等问题,设计了基于S3C2416的15路串口网管代理服务器设备,其设计如图1所示。
图1 网管代理服务器硬件设计
网管代理服务器除具有网管代理硬件组成的电源、DDR2、Nand Flash、复位芯片和Interface接口外,网管代理服务器把ARM-S3C2416的四路串口经与RS-485扩展为15路串口,其中一个串口为CONSOLE口,这样每路串口下串联5台OmniStar平台,最多可实现管理75台设备,满足系统需求,并降低了成本、节省了空间。
根据具体设计图设计了如图2所示的网管代理服务器。网管代理服务器的总体形态采用目前已经成熟的19英寸1U机箱,内部结构分为电源模块、Motherboard、CPU Core Board、Front Panel。
图2 网管代理服务器实物图
在基于开源开发包AGENT++和SNMP++的基础上,设计了网管代理系统,实现了信息参数轮询模块、DB模块和Agent代理模块。图3为网管代理系统的总体设计图。
图3 网管代理软件总体设计图
从图3可以看出,网管代理系统支持多个管理站同时对网管代理进行实时监控;参数轮询模块通过串口通信进程与OmniStar设备之间进行串口通信,得到网管代理服务器下所有级联机架数据,并把机架数据写入DB中,若在轮询过程中发现告警则直接通过Trap进程发送给管理端;数据库模块主要负责存储机架数据,为Agent代理进程提供数据支持;Agent代理模块将数据库提供的数据封装为SNMP报文上传给管理站,并能接受管理站信息对串口通信进程相应的参数进行设值;CLI界面提供了对串口通信进程的命令行界面管理;告警日志为Trap进程发送告警进行记录。
2.1 信息参数轮询模块
信息参数轮询模块也称参数轮询,主要负责轮询设备数据以及查找告警信息。当代理进程启动后,参数轮询对串口进程下的所有机架进行轮询,并把轮询得到的数据存储到内存DB中,若发现告警信息则直接通过Trap进程发送到管理端。图4为信息参数轮询模块查询和设置信息流程图。
图4 参数轮询模块流程图
从图4中可以看出,参数轮询模块接收来自AGENT代理模块的请求时,首先进行初始化操作(包块串口参数的设置、信号量的初始化、多进程的同步互斥和与OmniStar平台的握手操作等)。建立通信关系成功后,判断AGENT模块发出的请求,AGENT模块的请求有两种,分别为查询请求和设置请求。若为查询请求,则将查询请求封装成串口查询指令并传递给串口通信部分。串口通信将查询指令发送给OmniStar设备,设备接收到查询指令后返回相应的返回指令,通过指令解析把返回指令中的数据部分解析出来存到DB中, DB将数据信息提交给MIB库。这样,管理端就可以通过对MIB库的查看查询数据信息。若串口通信失败则重新封装指令继续发送。若为设置请求,则将设置请求封装成串口设置指令并传递给串口通信部分。串口通信将设置指令发送给OmniStar设备,接收到返回指令后,更新DB的相应设值信息,最后将设值成功返回给AGENT代理。若失败则重新封装指令继续发送。
2.2 DB模块
DB模块主要负责保存所有设备的数据信息,采用内存DB的方式。内存DB是在嵌入式内核开辟的内存,这样使数据的读写速度提高了几个数量级。DB模块也实现了MIB库设计。MIB 是网络管理系统中的重要构件,它由系统内的许多被管对象及其属性组成。MIB实际上是一个虚拟数据库。这个数据库提供相关被管理网络元素的信息,而这些信息由管理进程和各个代理进程之间共享。
针对OmniStar设备进行相应的MIB设计,MIB的根节点(1.3.6.1.4.1.11606)为企业节点,其中公共信息系统节点(从1.3.6.1.4.1.11606.29.1开始)定义为标量对象,其它OmniStar设备模块状态参数被定义为表对象,MIB节点从1.3.6.1.4.1.11606.29.3到1.3.6.1.4.1.11606.29.10。
我静下心来左思右想,突然想到以前我们都是一起吃汉堡的。3个人吃3个汉堡用了3分钟,1个人吃1个汉堡也是3分钟,那么9个人吃9个汉堡,也是3分钟。我反反复复地想了几遍,觉得应该没有问题了,就把答案告诉了妈妈。妈妈点点头笑了笑,夸我是个爱动脑筋的孩子。
2.3 Agent代理模块
Agent代理模块既能通过DB得到所有机架的相关数据信息,并将其封装为SNMP报文实时地提供给管理端,又能接受管理端的SET信息,对有修改权限的数值进行设值操作。
根据SNMP网管协议的特点,AGENT++开发包提供了一套解析SNMP消息报文的处理过程,图5为SNMP代理进程的状态转换图。
图5 状态转换图
(1)启动SNMP代理进程,由close状态转换成listen状态;
(2)listen状态监听来自管理端的Request请求,并发送该请求;
(3)SNMP代理模块将发送Request请求,并从listen状态转换成receive状态,由Request List类捕获管理端v1/v2C版本的SNMP Request,通过receive方法可以获取SNMP请求的ID号、变量绑定的数量、SNMP协议的版本、管理端IP地址、端口号及安全认证等,并发送OID;
(5)接收到参数后转换成answer状态,并将相应参数组装成报文发送;向管理端发送完报文后转换成finish状态,finish状态主动关闭进程回到close状态。
网管代理系统根据网管接口测试标准进行测试,包括标准MIB变量的读取和设置、告警信息的获取以及代理系统响应时间等测试。
表1 网管代理的取值响应时间
系统的响应时间主要分为网管代理的取值响应时间和告警响应时间。网管代理的取值响应时间是指网管代理系统发送一次或多次GetRequest请求,然后由嵌入式网管代理返回响应报文之间的时间间隔。表1为网管代理的部分响应时间。
通过分析上表中各个模块的所有数据响应时间和全部模块的响应时间,以及对数据进行逐渐增多而对响应时间进行测试,得到如图6所示的关系,可以看出随着数据的增多,响应时间呈现逐渐增大的线性关系。
网管代理的告警响应时间是OmniStar设备产生一个告警,在管理端接收到告警的响应时间。图7为手动在OmniStar设备上制造的告警信息,主要分为插入模块告警、拔掉模块告警、接入串口连接告警和断开串口连接告警。
图7 告警响应时间
由图7可以看出,Y轴为响应时间,X轴为第N次测试。从图中可以看出,插入模块的响应时间一般在5~20s之间,平均值为10s;拔掉模块的响应时间为5~8s之间,平均值为6.5s;接入串口连接的响应时间为5s;断开串口连接的响应时间为15s。从结果中得出告警类型不同,告警的响应时间也不同,经大量测试取平均值的告警响应时间大概为10s。
经测试网管代理系统响应时间符合网管代理软件要求,根据系统响应时间可以看出网管代理系统能够快速发送数据信息和告警信息,保证了对OmniStar平台实时的监控和管理。
本文根据有线电视网络设备的具体特点设计并实现了以ARM-S3C2416为基础的网管代理服务器设备,网管代理服务器具有15路串口,采用串并行相结合的方式对多机架进行级联,为OmniStar平台的网管代理系统提供了硬件支持。
在基于开源开发包AGENT++和SNMP++的基础上,设计了网管代理系统,实现了信息参数轮询模块、DB模块和Agent代理模块。测试结果表明本嵌入式网管代理系统满足了OmniStar设备的远程集中管理需求。
[1]胡成松,汪凯泽.SNMP网络管理[M].北京:中国电力出版社,2001:59-65.
[2]张会生.有线电视工程设计与新技术应用[M].北京:科学出版社,2006:65-73.
[3]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005:45-57.
[4]杨家海,任冲.网络管理原理与实现技术[M].北京:清华大学出版社,2000:43-61.
[5]William Stalling.SNMP网络管理[M].胡成松等译.北京:中国电力出版社,2001:42-68.
[6]Fu Guoqiang,Yang Wanpeng.Research on scheme of intelligent network management [J].Journal of Xi′an University of Engineering Science and Technology,2005,(19):89-92.
[7]G.Kramer,G.Pesavento.Ethernet Passive Optical Network (EPON):Building a Next-Generation Optical Access Network[J].IEEE Communications,2002,40(2):66-73.
(责任编辑:马金发)
Research on Embedded SNMP Network Management Agent
TAN Xiaobo,LI Dong
(Shenyang Ligong University,Shenyang 110159,China)
It is difficult for OmniStar cable TV network equipment to meet the needs of remote network management because it only supports local monitoring.So the network proxy server is designed with 15 serial ports based on ARM-S3C2416in terms of hardware and the network management agent supporting conversion between SNMP protocol and device proprietary protocol in terms of software.Adopting the method of combining series connection and parallel connection,network proxy server and managing OmniStar equipments up to 75,the network management cost is reduced.Network management agent is used to realize centralized remote management for OmniStar equipment,which reduces the management burden on staff.
cable television network;network management;network management agent;SNMP
2014-07-01
辽宁省优秀人才计划基金资助项目(LR201034)
谭小波(1977—),男,副教授,博士,研究方向:网络管理,嵌入式技术.
1003-1251(2015)03-0005-05
TP393.07
A