基于Web的MIB浏览器的研究与实现
孙萌,刘雪飞
(北京信息科技大学计算机学院,北京100192)
摘要:为提高网络管理效率,实现网管数据的远程传输,设计并实现了基于Web的MIB浏览器。通过研究XML语言与ASN.1的转换来实现用XML描述MIB文档,并利用JQuery技术将其转换为MIB树状菜单呈现于浏览器页面,以便于网管人员获取MIB节点结构及其属性信息。基于SNMP4J对MIB对象实例值进行采集和配置,并通过DOM技术将采集到的数据解析转换为XML文件以用于Web前后端数据的传输。利用html和CSS等web技术进行了MIB浏览器前端页面的设计,并结合ajax、jsp等技术,实现了MIB数据在前后端交互以及动态地获取和呈现,带来了高效便捷的网络管理。
关键词:MIB可视化;WBM;网络管理;SNMP
中图分类号:TP302文献标识码:A
文章编号:1009-3044(2020)34-0238-04开放科学(资源服务)标识码(OSID):
随着全球经济和网络信息技术的飞速发展,尤其近几年随着大数据时代的到来,信息化在不断提高,网络技术也得到了进一步的推广及运用,网络系统呈现出复杂性的发展变化[1],因此需要对传统的网络管理技术进行改革和优化,以便提升管理质量,保障信息传递安全稳定[2]。同时,如何对网管数据进行可视化[3],使网管人员能够更直观便捷地发现数据背后的信息是当前网络管理中急需解决的问题。随着网络管理技术的蓬勃发展,网络管理出现了新的方式,B/S结构由于自身优势逐渐取代C/S结构,基于Web的网络管理成了网络管理技术发展的趋势。
在网络管理中,管理信息库(MIB)定义了受管网络设备必须保存的数据项、允许对每个数据项进行的操作及其含义,它是被管理网络设备中所有数据对象的集合[4]。网管的操作主要是对MIB节点对象的操作,对象之间的关系是网络管理信息模型中的重要组成部分并体现于MIB节点的属性值中[5],实现
MIB结构及信息的可视化有助于提高网络管理的效率。MIB浏览器为用户管理MIB对象提供了图形化界面,是对被管理设备中SNMP变量进行管理的图形化网络管理工具[6]。目前比较著名的MIB浏览器有NuDesign、Mg-soft、iReasoning等的MIB浏览器,但这些浏览器均基于C/S结构,无法实现跨系统、跨平台使用,且灵活性差,在升级、维护、跨平台使用等方面均存在不足,使其不再符合现代网络管理技术的发展趋势。
因此本文设计并实现了采用B/S结构的MIB浏览器,可以将Web技术有效地运用于网络管理当中,并结合SNMP4J进行MIB数据的采集和配置,能更好地适用于管理当代结构更加复杂的网络,使网管人员能够快速地进行MIB数据的存取以及对网管数据的进一步分析,实现了网管数据的跨平台分享和高效便捷的网络管理。1MIB浏览器总体设计
MIB浏览器是一种有效的网络管理工具,并且按照SNMP 协议中规定的操作来操控被管理网络设备的MIB的值[7],能够使网管人员方便地进行网络设备的管理。基于Web的MIB浏览器,采用了B/S架构,运用Web技术和SNMP4J框架实现了可跨平台访问的MIB浏览器,总体设计如图1所示。
图1MIB浏览器的总体设计
2浏览器端模块的设计与实现
2.1设计并实现用xml描述MIB文档
RFC1213即MIB-II文档是用于定义和描述MIB对象的文
收稿日期:2020-06-25
作者简介:孙萌(1994—),女,河北人,硕士,研究方向为网络管理和安全;刘雪飞,副教授,北京信息科技大学,研究方向为网络管理和安全。
Computer Knowledge and Technology电脑知识与技术第16卷第34期(2020年12月)
档,文档采用ASN.1语言进行描述,管理信息的管理树型结构中的SNMP管理对象节点在其中被分为了6个对象组。以节点对象实例表示方法来看,可以把节点分为标量对象和表对象,其中表对象是由行对象和列对象组成[8]。在文档中MIB对象的描述采用了宏定义OBJECT-TYPE作为对象类型的描述模板,该类型模板规定,对象类型由6部分组成:对象类型的名称、语法、访问权限、状态、描述信息以及对象标识符OID。
与ASN.1相比,XML能够更加清晰地表示MIB文件中被管理对象的树状层次结构,因此使用XML对网络管理数据进行建模更加合理[9]。作者采取了XMLSchema映射方法,设计将管理对象转换为XMLSchema中描述的复杂类型元素,而对象中必须定义的6种信息作为XML元素的属性进行转换,根据由
MIB对象映射后的XMLSchema,将MIB文档中管理对象的信息编写为xml文档,如图2所示(以system对象组为例)
。
图2system对象组的转换实现
2.2MIB树状菜单的设计和实现
MIB浏览器需要呈现所有的MIB节点,因MIB节点以树状结构组织,因此可以设计为树状菜单呈现到Web页面上,而且MIB节点对象的相关信息也需要获取并呈现。在HTML页面引入JS文件以生成菜单,JS文件采取了JQuery框架,利用ajax进行2.1章节xml文档的载入,并且通过Jquery遍历操作实现对载入各元素的操纵。利用Jquery中的attr方法对元素中的属性进行操作,通过解析xml文档中的id属性实现树形结构的层次布局。利用Jquery的each()、attr()、click()等方法实现对节点的操控及属性信息自动获取。对MIB树状菜单操控主要是:利用“class$=”属性通配符,获取所有class值以“-plus”“-minus”结尾的节点,对其进行展开和收起;通过find()、each()和prop()进行全选和取消全选。
2.3被管设备IP地址设置模块
通过SNMP访问被管网络设备,需要根据符合规范的设备IP地址来设置目标主机,否则会影响设备的连接及MIB对象值的获取。IP地址的正则表达式如下:
((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d| ((1\d{2})|([1-9]?\d)))。通过JavaScript中的
正则表达式的test()方法进行校验。
2.4SNMP共同体名设置模块
SNMP提供了基于共同体的安全机制用于保证网络管理信息的安全,共同体名设计为必填项,对应的正则表达式“$|”,通过test()方法校验。
2.5网管操作类型设置模块
本文根据网管常见操作设计了四种操作类型:Get:获取叶子节点即标量对象的信息;Walk:获取表对象的信息;
GetList:获取多个标量对象的信息;
Set:对MIB节点进行设置。
通过html的select控件来实现,onchange事件调用用户改变输入域的内容时执行的函数,函数中通过判断select中option 的value值来进行相应的操作。
2.6MIB对象值显示模块
MIB对象实例值在前台以表格形式呈现,通过按钮触发Getmib函数获取后台采集到的mib数据并且以表格形式呈现,编写cleartable函数用于清空表格数据,清除除表头外的其他行。
3服务端模块的设计与实现
3.1利用SNMP4J实现MIB信息的访问
3.1.1标量对象信息的获取
对于每个标量对象类型都只有唯一一个对象实例,对象类型及其对象实例之间不存在模糊性[10],按规定每个标量对象的对象标识之后加上“.0”组成它的对象实例标识,因此需默认在自动获取的对象标识符之后增加“.0”再进行添加VariableBind⁃ing。
创建SNMP、PDU对象,并且调用add方法添加变量绑定,调用setType()方法来确定该pdu的操作类型为GET,send()方法发送pdu,并且返回一个ResponseEvent对象,然后通过getRe⁃sponse()方法来获得SNMP请求的应答pdu。response不为空时,利用response的get(int index)方法返回VaribleBinding类型的对象vb,然后通过VaribleBinding的getOid和getVariable()获取变量绑定的对象实例标识符和对象值。
3.1.2多条标量对象信息的获取
在浏览器端同时通过MIB树状菜单自动获取多条对象标识符,多条对象标识符数据将封装为一个list集合传给后台SNMP4J代码。通过for-each遍历list集合中的OID并将其依次添加变量绑定,最后利用for循环通过应答pdu获取多条变量绑定的对象实例标识符和变量绑定的对象值。
3.1.3表对象信息的获取
表对象中具有多个列向量实例,需通过遍历的方式来获取。具体代码实现过程如图3所示。
其中根据调用checkWalkFinished方法返回finished值来判断是否结束遍历。方法中通过调用getErrorStatus()方法判断pdu的error状态是否正常;利用vb.getOid()判断vb中OID是否为空;通过OID类的size()方法,比对vb中子标识符数与targetoid 中子标识符数;利用leftMostCompare()方法逐一对比vb中OID 与targetoid的子标识符是否一致;利用isExceptionSyntax()方法
Computer Knowledge and Technology 电脑知识与技术第16卷第34期(2020年12月)
进行syntax 属性判断;利用compareTo 方法进行vb 中OID 与tar⁃getOID 的对比。
3.1.4设置MIB 对象实例值
网管人员常常需要通过修改MIB 对象值达到管理网络设备的目的,SNMP4J 中的PDU 的settype 提供
了set 操作类型。设置MIB 对象需要注意的是:该团体名有写的权限,同时该MIB 对象是可写的,并且写的值与MIB 对象类型中所声明的值的类型一致。
3.2利用DOM 解析转换MIB 数据为xml 文件
本文通过创建document 对象和节点对象,并且根据采集到的MIB 数据结构,来构建MIB 数据的xml 文档,将采集到的MIB 数据转换为XML
格式用于前后端之间的传输。
图2表对象信息获取流程
首先将采集的MIB 对象数据存入List 集合,以用于将数据值作为文本节点对象添加到document 中。创建DOM 解析器工厂、解析器对象,然后创建document 对象并利用createElement 方法创建根节点rootnode 。利用appendChild 方法在根节点下创建equipment 子节点,作为OID 和value 的节点集合,长度与Oidarlist 的长度保持一致。根据标签名equipment 获取由该元素包含的所有子元素组成的nodeList ,进行子元素添加。然后
根据标签名OID 和Value 分别获取元素包含的所有子元素组成的nodeList ,通过遍历获取集合(数组)的元素值并将其通过cre⁃ateTextNode 方法作为文本节点对象添加到document 中。最后,利用TransformerFactory 创建转换工厂对象和文件转换对象,并且利用domSource 把要转换的document 对象封装到DOMSource 类中。新建xml 文件并创建文件输出流,把转换得到的xml 文件保存到StreamResult ,利用transform (domSource,xmlResult )方法把节点树转换为XML 文件。3.3MIB 数据在前后端的交互3.3.1利用JSP 获取前端输入数据
用Parameter()方法获取前端页面的表单输入,并将其作为字符串类型的参数传入相应的方法中。并利用switch 语句进行前端传入的操作类型的判定:case “Get ”时,根据对象标识符加上".0"创建对象实例标识符,调用GetsingleOID 方法;
case “Walk ”时,调用GetMIBData 中的Walk 方法;case “GetList ”时,通过split 方法将前端传来的多个OID 字符串以逗号分割,并将其存放入名为oidlist 的数组,调用GetList 方法;
case “GetList ”时,需判断前端传入的节点access 属性是否
为可写"read-write",若可以调用setMIB 方法,否则弹框提示“该节点不允许此操作”。
3.3.2用ajax 呈现采集到的xml 格式的mib 数据
设计利用ajax 中XMLhttpRequest 请求3.2章节中生成的
XML 文件,并从XML 文件中提取节点信息以表格形式呈现到前端页面。
创建XMLHttpRequest 对象,使用XMLHttpRequest 对象的
open()和send()方法进行请求的发送,选用XMLHttpRequest 对象的responseXML 属性获得来自服务器的响应,具体实现代码
流程如图3所示。
Computer Knowledge and Technology电脑知识与技术第16卷第34期(2020年12月)
图3XMLHttpRequest读取xml文件代码流程
4结束语
本文从基于Web的观点出发,立足于研究Web、SNMP相关技术和方法,为解决传统C/S架构MIB浏览器的不足设计并实现了B/S架构的MIB浏览器。运用Web技术实现MIB数据的可视化并进行网络管理,便于网管人员能够快速地进行MIB数据的存取以及对网管数据的进一步分析,实现了网管数据的远程传输和高效便捷的网络管理。因为时间有限,本文未将MIB浏览器集成到网络管理系统,后续会进一步研究实现对网络数据的关联分析和图形展示。总体来说,基于Web的MIB浏览器符合未来网络管理发展趋势,能更好地适用于管理当代结构更加复杂的网络,有利于对信息爆炸的大数据时代带来的海量网络数据的处理。
参考文献:
[1]滕云于勃.基于Web管理技术的安全网络管理系统[J].电子
技术与软件工程,2019(17):205-206.
[2]赵子玉.计算机网络管理系统应用的现状与发展[J].中国管
理信息化,2018,21(5):187-189.
[3]陶诗羽.基于Web的网络设备配置管理系统的设计与实现
[D].北京邮电大学,2018.
[4]贾宇琪.基于MIB动态解析技术的集网络管理系统的设计
与实现[D].北京:北京邮电大学,2019.
[5]飞.基于XML的管理信息实例树可视化呈现和编辑方
jquery的attr属性法[D].北京邮电大学,2018.
[6]刘雪飞.基于SNMP++的MIB浏览器研究[J].计算机工程与应
用,2009,45(3):91-93.
[7]王勇.计算机网络管理教程[M].北京:清华大学出版社,2010.
[8]刘雪飞,王申强,吴伯桥.一种MIB-Ⅱ转换为XML文档格式
的DTD映射方法[C].//中国计算机用户协会.中国计算机用户协会网络应用分会2011年第十五届网络新技术与应用年会论文集.2011:104-106,128.
[9]吴黎兵,付帆,何炎祥,等.基于XML网络管理的MIB转换方法
研究[J].武汉理工大学学报(信息与管理工程版),2011,33(6): 851-854,863.
[10]沈亚琦.基于SNMP的网络计费管理系统的设计与实现[D].
武汉:华中师范大学,2006.
【通联编辑:唐一东】
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论