logo资料库

论文研究-基于SNMP4J的MIB浏览器的设计与实现 .pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
引言
原理概述
2.1SNMP网络管理模型
2.2管理信息库MIB
MIB浏览器的设计与实现
3.1MIB文本解析器的设计与实现
3.2MIB树的构造
3.3SNMP操作的实现
3.4变量绑定的翻译
3.5MIB浏览器原型
总结与展望
参考文献
DesignandimplementationofMIBbrowseronSNMP4J
Abstract
中国科技论文在线 http://www.paper.edu.cn SNMP4J 的的的的 MIBMIBMIBMIB 浏览器的设计与实现 SNMP4J SNMP4J 基于基于基于基于 SNMP4J 浏览器的设计与实现1111 浏览器的设计与实现 浏览器的设计与实现 王炎炎 西安电子科技大学计算机学院,陕西西安(710071) E-mail:luckymagi@163.com 摘摘摘摘 要要要要:MIB 浏览器是一种基于 SNMP 的常用网络管理工具。本文分析了开发 MIB 浏览器 必须解决的关键问题,并在此基础上给出了 MIB 文本解析器的设计方法、及双哈希表构造 MIB 树的算法,并实现了 SNMP 管理功能和变量绑定翻译功能。本文设计的 MIB 浏览器可 动态加载 MIB 文件,并支持多管理对象的一次性变量绑定。 关键词:MIB 浏览器;解析;双哈希表;树;变量绑定翻译 关键词: 关键词: 关键词: 中图分类号:TP393.07 中图分类号: 中图分类号: 中图分类号: 1.1.1.1. 引 言 SNMP是当前广泛应用的网络管理协议,而MIB(Mangement Information Base,管理信息 库)浏览器则是基于SNMP的常用网络管理软件之一。 它既可以作为网管员管理设备的简单 工具,也可以作为大型可视化网管软件开发的一个第三方测试工具。 目前,国外已经有一些MIB浏览器的成品,例如,MG-SOFT MIB Browser、HiliSoft SNMP MIB Browser[1-2]等,都是比较强大的MIB浏览器;但是他们的专业版都较贵,而试用版的功 能则比较局限;国内对于MIB浏览器的研究相对较少。本文的研究目的,即自主开发一个操 作简便的MIB浏览器,以方便机房网络设备的管理,并作为网络管理课程的辅助实验工具。 MIB浏览器的实现,需要解决三个关键问题:MIB文件的解析、MIB目录树的生成以及 SNMP操作功能的实现;其中,MIB文件的解析和MIB目录树的快速生成是两大难点问题。 另外,为了增强MIB浏览器的易用性,还应当对返回的SNMP报文进行变量绑定的翻译工作 。 本文首先简要介绍了SNMP的网络管理模型和MIB的基础知识,并在此基础上,给出了 MIB文件的解析算法和MIB目录树的构造方法;同时,实现了基于SNMP4J[3](java环境下的 SNMP开源开发包)的SNMP管理功能和变量绑定翻译的辅助功能。 2.2.2.2. 原理概述 2.12.12.12.1 SNMP SNMP SNMP SNMP 网络管理模型 SNMP 网络管理模型基于 C/S 的组织模式(如图 1)。管理工作站(NMS)充当客户方,而 安装了 SNMP 代理(SNMP Agent)的被管理节点担任服务器方,每个被管理节点上都包含一 个管理信息库 MIB,工作站和代理通过 SNMP 协议进行通信[4]。 网 管 工 作 站 网 管 协 议 被 管 设 备 管 理 信 息 库 管 理 器 请 求 响 应 /通 告 代 理 M I B 图 1 SNMP 网络管理模型[4] 1 本课题得到国防预研基金(项目编号:2006QB1069)的资助。 - 1 -
中国科技论文在线 2.2.2.2.2222 管理信息库 MIBMIBMIBMIB http://www.paper.edu.cn 管理信息库 MIB 是一个网络管理系统的基础,它定义和描述了通过网络管理协议可以 获得和修改的信息[5-6]。 按照 SMI[7]的定义规则,MIB 中所有被管对象在概念上形成了一个树状结构,树的枝干 和叶表示被管对象,由从根节点开始的一条路径来无二义地识别。对于网管开发者,首先面 对的是 MIB 文件。每一个 MIB 文件都是一个遵循 ASN.1[8](Abstract Syntax Notation One,抽 象语法标记)语法定义的被管理对象(Managed Object,MO)的集合。MIB 文件描述了被管理 对象的标识、组织、操作以及 MIB 库的被管对象到实际资源的映射等信息。 3.3.3.3. MIBMIBMIBMIB 浏览器的设计与实现 MIB浏览器的实现,需要解决三个关键问题:MIB文件的解析、MIB目录树的生成以及 SNMP操作功能的实现;同时,为了增强可用性,还应当对返回的SNMP报文进行变量绑定 的翻译。 下面是本文实现的 MIB 浏览器的结构图(图 2)。 M I B 浏 览 器 M I B 文 件 管 理 模 块 M I B 文 件 解 析 器 M I B 树 管 理 模 块 SN M P 操 作 模 块 显 示 模 块 (G U I) 图 2 MIB 浏览器的结构图 3333.1.1.1.1 MIBMIBMIBMIB 文本解析器的设计与实现 对 MIB 文本的解析是实现 MIB 浏览器的难点之一。本文设计了一个可以动态加载 MIB 文件的 MIB 解析器,网管员在程序运行过程中,可以根据需要,按照单个、多个文件或目 录,自主地选择需要加载的 MIB 文件。 对于单个 MIB 文件的处理,首先借助 JAVA 的 BufferedReader[9]类,一次性将文件流读 入缓存,并逐行进行 ASN.1 语法解析。具体实现过程中,需要先判断读入行是否含关键字 “OBJECT IDENTIFIER”、“MODULE-IDENTITY”、“OBJECT-IDENTITY”或“OBJECT- TYPE”,然后根据各个关键字对应的格式进行相应处理。 例如,对于“OBJECT IDENTIFIER”定义的节点,一般的格式有三种,如图 3 所示: 图 3 MIB 文件语法定义示例 该定义一般在一行或两行结束,“OBJECT IDENTIFIER”标记前的单词为节点标识名; “::= {”标记后的第一个有意义的单词是该节点的父节点标识名;第二个单词为该节点在兄 弟节点中的位置;“}”标记表明该对象定义结束。 3333.2.2.2.2 MIBMIBMIBMIB 树的构造 SNMP 采用层次结构命名方案来识别被管理对象,通过构造 MIB 树,可以清晰地展示 MIB 节点之间的层次关系,方便管理。 本文在实现过程中,为了保存 MIB 节点的层次关系,采用了 javax.swing.tree 包中的树 数据结构通用节点类(DefaultMutableTreeNode) 来存储解析出来的 MIB 节点。 - 2 -
中国科技论文在线 http://www.paper.edu.cn 由于每生成一个节点,都需要根据该节点的属性信息,将其添加到对应的父节点分支 下 , 这就涉及到树节点的定位问题。为了实现 mib 树节点的快速定位,这里采用查找效率为常 量级的哈希表来存储树节点,并在树节点数据结构中存储其孩子节点的引用。这样,只要给 定一个键值,就可以从哈希表快速定位到该节点,同时,根据树节点的数据结构也可以很方 便地找到上下层关联关系。 另外,由于 MIB 文件解析先后顺序的影响,可能造成一些上层节点在孩子节点之后才 被解析,并不能保证第一次解析过程中构造的 mib 树具有准确的层次关系;因此,本文在 设计过程中,除了使用一张主树存储结构表——root 哈希表之外,还使用了一张辅助哈希 表——orphans 哈希表,来保存暂时没有找到父节点的孤儿节点。在所有文件解析完成后, 更新主树结构,确定最终的 MIB 树。 添加树节点的过程如下: (1)在 root 哈希表中,查找待添加的节点,找到,返回该节点的地址;否则,转(2); (2)在 root 哈希表中,查找待添加节点的父节点,若找到,将待添加节点加到该父节点的 分支下,并设置节点的 OID 属性,同时添加该节点到 root 哈希表中,并返回节点地址;否 则,转(3); (3)将节点添加到 orphans 哈希表中,并返回节点地址。 在解析 MIB 文本的过程中,每生成一个 MIB 节点,就调用一次添加树节点的函数。当 所有文本解析完成后,更新 orphans 哈希表,将其中存在父节点的“孤儿”节点“剪切”到 主树存储结构——root 哈希表中。 3333.3.3.3.3 SNMP SNMP SNMP SNMP 操作的实现 基于 SNMP 的网络管理主要是通过发送 SNMP 报文来设置和获取被管对象的参数值。 借助开源的 SNMP 开发包 SNMP4J,可以大大简化 SNMP 报文的构造过程。为了减少频繁 构建 SNMP 报文的开销,设计时,增加了对多对象的一次性变量绑定的支持,即在发送 get 和 set 报文时,允许一次性绑定多个 OID。SNMP4J 提供了详尽的开发文档,这里不再赘述 SNMP 操作的具体实现。 3333.4.4.4.4 变量绑定的翻译 利用 SNMP4J 开发包可以自动解析发送和接收的 SNMP 报文,但是解析出来的变量绑定 采用的是 OID 的点分整数序列形式(如图 4),可读性不强。因此,本文具体实现时,在将 响应消息显示在 MIB 浏览器之前,根据 MIB 文本解析器(参见 2.1)解析出来的 MIB 对象 集,预先进行了 SNMP 变量绑定的翻译工作,即将 OID 转换成网管人员较为熟悉的标识名 形式。例如:将 OID“1.3.6.1.2.1.1.7.0”翻译成“sysServices”(见图 5)。 图 4 经过 SNMP4J 初步解析后的 SNMP 报文 3333....5555 MIBMIBMIBMIB 浏览器原型 图 5 是本文实现的 MIB 浏览器原型。 - 3 -
中国科技论文在线 http://www.paper.edu.cn 4.4.4.4. 总结与展望 图 5 基于 SNMP4J 的 MIB 浏览器 MIB 浏览器是 SNMP 网络管理的常用工具,通过它可以获取网络运行中的动态信息, 极大地方便网络管理。本文设计和实现的 MIB 浏览器具有以下特色:(1)动态加载 MIB 文件 ; (2)支持多管理对象的一次性变量绑定,可减少频繁构建 SNMP 报文的开销;(3)可实时查看 MIB 变量的文本描述信息;(4)支持对 MIB 变量绑定的翻译;(5)具有层次化鲜明的目录树 。 参考文献 参考文献 参考文献 参考文献 [1] MG-SOFT MIB Browser[EB/OL].http://www.mg-soft.si/index.html. [2] HiliSoft SNMP MIB Browser[EB/OL]. http://hilisoft.com/。 [3] SNMP4J[EB/OL].http://www.snmp4j.org/. [4] 杨家海,任宪坤,王沛瑜.网络管理原理与实现技术[M].北京:清华大学出版社,2000. [5] K.McCloghrie,M.Rose.Management Information Base internets[S/OL]. RFC1156, 1990, http://www.ietf.org/rfc/rfc1156.txt. [6] Perkins D T, McGinnis E.Understanding SNMP MIBs[M]. PrenticeHall, 1996 [7] Structure of Management Information Version2 [S/OL]. RFC2578,1999,http://www.ietf.org/rfc/rfc2578.txt. [8] Specification of Abstract Syntax NotationOne(ASN.1) [S]. Recommendation X.208,1988. [9] Java Platform,Standard Edition 6 API Specification [EB/OL]. http://java.sun.com/javase/6/docs/api/. for Network Management of TCP/IP-based Design and implementation of MIB browser on SNMP4J School of Computer Science, Xidian University, Xi’an Shanxi, PRC,(710071) Wang Yanyan Abstract Abstract Abstract Abstract MIB browser is a commonly used tool for network management on SNMP.This article analyzed the key issues in developing a MIB browser. On that basis, a MIB text parsing method and a MIB tree construction algorithm based on double hash table had been given. The SNMP management functions and the variable-binding interpretation function were also implemented. This MIB browser can load MIB files dynamically and support the one-time variable binding of multi-managed objects. Keywords: Keywords: Keywords: MIB(Mangement Keywords: variable-binding interpretation Information Base) browser; parsing; double hash table; tree; 作者简介:王炎炎,女,1984 年生,硕士研究生,主要研究领域为计算机网络与信息处理。 - 4 -
分享到:
收藏