基于XML的SNMP管理者和转换代理的研究与实现

2011-08-15 00:48郑州市电子信息工程学校周晓冬
河南科技 2011年8期
关键词:可扩展性网络管理报文

郑州市电子信息工程学校 周晓冬

基于XML的SNMP管理者和转换代理的研究与实现

郑州市电子信息工程学校 周晓冬

自从20世纪80年代SNMP(Simple Network Management Protocol)简单网络管理协议出现以来,网络管理在技术层面上的发展非常迅猛。随着部分管理功能的增强和管理对象的范围的扩大,网络管理技术的重要性也在逐步增强,并成为网络构建和维护的重要组成部分。

一、XML的概念

当XML(扩展标记语言)于1998年2月被引入软件工业界时,它给整个行业带来了一场革命风暴。自此,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅可以应用于Web,而且可以被用于任何网络中其他需要结构化的地方。

XML是可扩展置标语言(Extensible Markup Language,简称XML),又称可扩展标记,它是一种置标语言。置标是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。XML的设计理念是用来传输和存储数据,而不是显示数据,XML仅仅是纯文本而已。如何把这些标记重新定义,既可以选择国际通用的标记语言,例如HTML,也可以使用由相关人士商量而定的标记语言(例如XML),这就是语言的可扩展性。XML是从标准通用置标语言(SGML)中简化并修改出来的,主要用到的有可扩展置标语言、可扩展样式语言(XSL)、XBRL和XPath等。

二、基于XML的SNMP管理者和转换代理的研究

1. XML的实现模型。由于网络管理软件的管理方式有很多种(应用程序或Web方式等),而且不支持SNMP的被管对象也种类繁多,因此在系统实现的具体过程中,XML的通用性和可扩展性就显得十分重要。为了达到这一目的,人们将XML技术应用于系统的设计与实现中,于是就提出了一种基于XML的实现模型,并在用户接口、MIB文件解析、报文编码、设备模板的构造等方面引入XML,使系统具有良好的通用性和可扩展性。

2. SNMP的转换代理。一方面,目前面向IP网络的管理软件绝大多数都以SNMP协议作为与被管对象通信的接口,但是网络管理软件的研究重点往往放在如何实现网络管理功能上,而对底层SNMP协议管理操作的实现,则依赖于国外第三方的协议开发工具,致使产品的稳定性和可扩展性都受到了第三方软件的影响。因此,自行研制SNMP管理者协议,对于网络管理系统的开发具有十分重要的意义。

另一方面,SNMP协议并不是所有的网络设备都能支持的。比如很早开发的产品以及一些非网络核心设备(UPS、附网存储器等),还有一些重要软件服务(网络防火墙、数据库)等也逐步被纳入网络管理范围之内。要使基于SNMP的网络管理软件对这些不支持SNMP协议的被管对象可以通过相同的SNMP接口进行管理,最好的解决方法就是在SNMP管理者和被管设备之间增设转换代理(Proxy Agent),这个环节是目前网络管理软件的薄弱点。

三、基于XML的SNMP管理者和转换代理的实现途径

由于XML具有一些自己的特殊性是其他网络管理技术所不能提供的,因此将XML应用于网络管理是网络管理领域的必然发展趋势。本文,笔者在基于XML的SNMP管理者的实现方面进行了尝试,主要在以下方面运用了XML技术:利用XML描述管理对象的MIB文件。 从GUI/API中接收的输入数据一律采用统一的XML接口,使系统可以十分方便地采用不同模式来实现用户数据与系统的交换。数据在系统内部的处理以XML数据流为主:一方面通过成熟的XML解析器,可以降低数据处理的复杂性;另一方面,因为只在最后向传统SNMP Agent 发送BER编码时才进行格式转换,所以如果Agent支持XML格式报文管理,去掉转换层就可以达到管理XML的目标。通过XML配置文件对系统进行初始化配置。

1. ASN.1与XML的映射与转换。ASN.1是一种用于描述结构化客体结构和内容的语言。主要包括2部分:一部分描述信息内数据、数据类型及序列格式,另一部分描述如何将各部分组成消息。ASN.1广泛应用于通信协议(如SNMP、LDAP)、安全协议(如X509)以及数据格式(如PKCS#7)等领域。本文,笔者研究的SNMP管理者在实现过程中,SNMP报文和PDU采用的是ASN.1语法。例如,要向某一代理发送一个SNMPv1版本的Get-Request请求,请求获得sysDescr对象实例(OID∶.1.3.6.1.2.1.1.1.0)值。我们将XML引入SNMP PDU 编解码过程中,通过ASN.1和XML的互相转换,可以简化SNMP PDU的编解码难度,提高其正确率,并使得通过Web方式进行SNMP报文的传递和接收成为可能。

2. MIB文件的XML格式描述。SNMP管理者的实施过程中需要从管理端获取对被管设备管理信息的描述,才能完整地构造、解析出请求报文的请求管理对象,这需要通过对MIB文件采用ASN.1格式描述,可借助已有的LL(1)文法解析器进行基础分析。但是这种方法需要花费不少时间来构造大量的规则库,而且随着SNMP的发展,某些MIB文法很可能已不再符合LL(1)的标准,将无法采用上述方法进行MIB文件的解析。如果采用XML文档来描述MIB变量的定义,不但具有良好的可读性,而且只要编写一个SMI的DTD或XML Schema,就可以借助带有验证功能的XML解析器对XML格式的MIB文件进行语法解析,而且无论MIB文法是否符合LL(1)文法,都可以采用这一方法来实现。对于SNMP Agent,采用XML描述的MIB既可以进行动态修改,又可以使用不同的形式进行发布,便于管理者调用。因此,通过XML格式来描述MIB文件,必将成为网络管理的新发展和新趋势。

3. 系统原型的实现。基于SNMP协议的NMS管理工作站,通过本系统提供CUI/API发出SNMP管理请求,以XML数据格式传递给报文构造。在构造过程中,与MIB对象相关的所有信息都从MIB树的MIB Node中获得。如果是v3版本的报文,则需通过安全子系统进行安全变量初始化和安全信息的加载。

一旦XML报文构造成功,将其发往XML/ASN.1转换器(如果SNMP Agent 支持XML格式管理,则无需此步骤)转换为BER编码,并放入报文发送队列中准备发送。在系统启动时,会同时启动另一个守护线程来实现报文发送,接收器就会立即将其发送至目的地址和端口,并同时在发送端口等待响应报文的到来。只要检测到有响应报文的到来,就将其放入报文接收队列。接收到的报文按照上述发送的逆过程,经过XML/ASN.1转换器、报文构造解析器,最后通过CUI/API接口反馈给NMS管理工作站。

猜你喜欢
可扩展性网络管理报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
电动汽车充电服务网络管理初探
恩智浦推出全新i.MX 8X 处理器,为工业应用带来更高的安全性、可靠性和可扩展性
电力监控软件的可扩展性设计
基于EOC通道的SHDSL网络管理技术
基于微软技术的高可扩展性中小企业系统解决方案研究
ATS与列车通信报文分析
构建高可扩展性的物流装备管理系统