摘 要: 介绍了用XML表示SNMP及Telnet(SSH,SSL)管理信息的方法,提出了一种基于XML的网络管理系统模型,实现了对基于Web代理的网络设备的直接管理,并利用转换网关实现了对基于SNMP代理和Telnet(SSH,SSL)代理的网络设备的管理。
关键词: 可扩展标记语言(XML) 网络管理 转换网关 简单网络管理协议(SNMP)
随着计算机网络的爆炸性发展,其规模不断扩大,复杂性不断增长,传统的基于SNMP的网络管理系统及基于Web的网络管理系统在网络管理方面的局限性日益突出,因此迫切需要新的网络管理系统。新的网络管理系统需要新技术的支持。可扩展标记语言(eXtensible Markup Language,XML)是一种元标记语言,它具有HTML和SGML的双重优点,并且在对网络管理信息的模型化方面更有优势,可以方便地表示、传输、管理、存储、显示结构化的网络管理信息。当前,对基于XML网络管理的研究已经成为热点,它被认为是传统网络管理的补充与替代。本文介绍了一种利用XML技术和转换网关技术构建的全新的网络管理模型,它具有实时性好、扩展性好、安全性高、跨平台并能管理任何类型的大规模异构网络等优点。
1 背景及相关技术
1.1 基于SNMP的网络管理
1990年,IETF提出了简单网络管理协议(Simple Network Management Protocol,SNMP),1995年提出了SNMPv2,1999年提出了SNMPv3。SNMP是一种基于TCP/IP的网络管理协议,主要用于计算机互连网络的管理。虽然SNMP在当时是作为一个临时的网络管理协议而设计的,然而由于它具有易于实现和互操作性强等优点,而被广泛应用。但随着计算机网络的飞速发展,其规模越来越大,复杂性越来越高,SNMP在网络管理方面的局限性也越来越突出,主要表现在扩展性和效率上。扩展性指单个Manager所能管理的Agent数目;效率指管理系统如何快速、有效地传输和处理数据。网络规模增大,管理信息库(Management Information Base,MIB)也大,Agent支持的MIB也增多,因此管理数据剧增,SNMP的局限性更加突出。
1.2 基于Web的网络管理
基于Web的网络管理(Web-based Management,WBM)就是将Web技术运用到网络管理中,将浏览器作为客户端与用户进行交互,将Web技术的优势充分用于网络管理。目前,WBM的实现方式主要有2种。(1)代理方式:将Web服务器与Manager集成到一台服务器上。(2)嵌入方式:直接将Web服务器嵌入网络设备,浏览器可以利用HTML通过HTTP直接和网络设备中的Web服务器进行通信。
当前,WBM的开放标准主要有2个。(1)基于Web的企业管理(Web-based Enterprise Management,WBEM):1996年由微软公司提出,目前已经得到了多家厂商的支持。它实际是一个面向对象的Web应用,其真正目标是实现现有的网络管理标准和协议的集成。(2)Java管理应用程序接口(Java-Management Application Programming Interface,JMAPI):是Sun公司作为它的Java标准扩展API结构而提出的,实际是一个完整的网络管理应用程序开发环境,充分利用了Java语言的跨平台、面向对象、适于分布式等特点,通过增加媒体间应用接口来实现Web浏览器与网络设备之间协议的转换。
基于Web的网络管理系统由于HTML本身的局限性,而在网络管理方面缺乏有效的管理信息结构化模型。因此在管理传统的SNMP网络设备时力不从心。
1.3 XML及相关技术
XML是一种元标记语言,于1998年由World Wide Web Consortium(W3C)标准化,用于在WWW上进行文档交换。它具有SGML和HTML的双重优点,可以方便地在多种协议上传输结构化数据。XML本身具有很多优点:分离了文档的内容和显示格式,利用层叠样式单(Cascading Style Sheets,CSS)或可扩展样式单语言(eXtensible Stylesheet Language,XSL)来多样化显示同一个XML文档;运用文档类型定义(Document Type Definition,DTD)和XML模式(XML Schema)来支持文档的结构化定义;利用XLink、XPointer、XML Base扩展了链接功能;利用XML Encryption、XML Signature提高安全性;利用文档对象模型(Document Object Model,DOM)和XML简单应用程序接口(Simple APIs for XML,SAX)为XML文档的处理提供标准接口。XML是一个底层构建模块,其他技术都是建立在XML之上,因此XML完全适合于网络管理。在网络管理方面,XML也具有很多优点:管理信息易于模型化;把SNMP MIB的结构信息或Telnet(SSH,SSL)命令转换为XML文档非常容易;在信息传输时只要支持HTTP的设备就可支持XML;可以一次性传输大量数据;保证管理信息的高安全性等。
2 用XML表示管理信息
2.1 XML对SNMP管理信息的表示
XML Schema是一套关于XML标记符的语法规则,它通过对结构和内容的约束,定义了XML文档的类型。鉴于XML Schema在定义结构化信息方面的优势,选用它来定义表示SNMP MIB的XML文档的结构。XML Schema与SNMP MIB的对应转换关系如表1所示。
根据表1的对应规则,可以将SNMP MIB2转换成的XML Schema如下:
<?xml version=″1.0″ encoding=″utf-8″?>
<xsd:schema xmlns:xsd=″Http://www.w3.org/2000/10/
XMLSchema″>
<xsd:element name=″Mgmt″>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref =″Mib-2″/>
</xsd:sequence>
<xsd:attribute name=″oid″type=″xsd:string″use=″fixed″
value=″1.3.6.1.2″/>
</xsd:complexType>
</xsd:element>
<xsd:element name=″Mib-2″>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=″NodeName″/> …
</xsd:sequence>
<xsd:attribute name=″oid″type=″xsd:string″use=″fixed″
value=″1.3.6.1.2.1″/>
</xsd:complexType>
</xsd:element>
<xsd:element name=″NodeName″>
<xsd:complexType>
<xsd:simpleContent>
<xsd:restriction base=″xsd:string″>
<xsd:sequence>
<!--下一级MIB子对象的XML Schema定义-->
<xsd:element ref=″NodeName″/> …
</xsd:sequence>
<xsd:attribute name=″oid″type=″xsd:string″use=
″fixed″value=″OidValue″/>
<xsd:attribute name=″Access″type=″xsd:string″use=
″fixed″value=″AccessType″/>
<xsd:attribute name=″Status″type=″xsd:string″use=
″fixed″value=″StatusType″/>
<xsd:attribute name=″Description″type=″xsd:string″
use=″fixed″value=″DescriptionText″/>
<xsd:attribute name=″Reference″type=″xsd:string″
use=″fixed″value=″ReferenceType″/>
<xsd:attribute name=″Index″type=″xsd:string″use=
″fixed″value=″IndexList″/>
<xsd:attribute name=″DefaultValue″type=″xsd:string″
use=″fixed″value=″DefaultValue″/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
2.2 用XML表示Telnet(SSH,SSL)管理信息
有一些网络设备是基于Telnet(SSH,SSL)Agent的,要取得这些网络设备的管理信息,必须通过Telnet(SSH,SSL)命令行的方式,因此必须实现XML对Telnet(SSH,SSL)信息的表示。
Telnet(SSH,SSL)命令的一般格式如下:
#CommandName options parameters
其中CommandName是命令名,options是命令选项,parameters是命令操作参数。Telnet(SSH,SSL)命令与XML Schema的对应转换关系如表2所示。
根据表2中的对应关系,Telnet(SSH,SSL)命令转换成的XML Schema如下所示:
<?xml version=″1.0″encoding=″utf-8″?>
<xsd:schema xmlns:xsd=″Http://www.w3.org/2000/10/
XMLSchema″>
<xsd:element name=″CommandName″>
<xsd:attribute name=″options″type=″xsd:string″value=
″optionsValue″/>
<xsd:attribute name=″parameters″type=″xsd:string″
value=″parametersValue″/>
</xsd:element>
</xsd:schema>
除了可以用XML表示命令,还可以表示返回结果。
3 基于XML的网络管理系统模型
基于XML的网络管理是在基于Web的网络管理环境下用XML来表示、传输、处理、存储和显示管理信息。它用XML文档来定义管理信息,以XML文档的形式交换和处理管理信息。但XBM(XML-based Management)必须能管理当前广泛使用的基于SNMP Agent的网络设备及传统的基于Telnet(SSH,SSL)的网络设备,才具有真正的实用价值。为了在XBM中集成对多种网络设备的管理,可以根据嵌入Agent的种类把当前的网络设备分为3类:(1)基于SNMP代理的网络设备。它可以通过SNMP协议与基于SNMP的Manager通信,这是当前广泛使用的网络设备。(2)基于Web代理的网络设备。它以XML/HTTP的方式直接与基于XML的Manager通信,这是当前正在研究的网络设备。(3)基于Telnet(SSH,SSL)代理的网络设备,可以通过Telnet(SSH,SSL)命令行的方式来收集这类网络设备的信息或对其进行配置管理。根据基于XML的网络管理的基本要求,本文提出了一种XBM系统模型,如图1所示。
图1中的XBM模型采用了分层的结构,主要分为4层:第1层以Web浏览器作为客户端,与用户进行数据交互,并通过HTTP协议与下一层交换XML格式的管理信息。利用CSS或XSL来实现用XML文档表示的管理信息的多样化显示,真正实现“同一数据,多样显示”。第2层是一个服务器工作站,其中的Web服务器主要负责与上一层的客户端通信。管理服务器不但实现传统网络管理的功能,而且还负责管理下一层的转换网关。发出XML格式的Request,接收XML格式的Response,以处理XML文档的标准方法进行分析处理。利用XML Encryption和XML Signature技术保证用XML表示的管理信息的传输安全性;利用HTTP的Get方法实现SNMP的3种操作(Set、Get和Trap)及传统的Telnet(SSH,SSL)的命令行操作。第3层包括2个转换网关:(1)XML-SNMP转换网关实现XML文档和SNMP信息的互相转换。解析来自上一层的XML格式的Request,生成SNMP格式的Request,并通过SNMP协议传送到下一层基于SNMP代理的网络设备;解析来自下一层的SNMP格式的Response,生成XML格式的Response,并通过HTTP协议传送到上一层。(2)XML-Telnet(SSH,SSL)网关实现XML文档和Telnet(SSH,SSL)命令及命令执行结果的互相转换;解析来自上一层的XML格式的Request,生成Telnet(SSH,SSL)格式的Request,并通过Telnet(SSH,SSL)协议发送到下一层基于Telnet(SSH,SSL)代理的网络设备;解析来自下一层的命令执行返回的Telnet(SSH,SSL)格式的Response,生成XML格式的Response,并通过HTTP协议传送到上一层。第4层是3种被管网络设备,其中的Agent负责接收来自上一层的Request,收集所需管理信息,给出Response。
XBM不但可以实现传统的基于SNMP网络管理系统的所有功能,而且解决了SNMP的2个比较突出的局限性。网关不仅具有转换功能还可以减轻网络负载,提高系统的可扩展性与效率。在可扩展性方面,当网络规模比较大,Agent数目比较多时,可以通过添加网关的数目来实现分层分布式管理。在效率方面,管理服务器可以发出一次命令,Agent执行多次,但通过网关的整合后返回的仅是一个XML文档。这样会大大减少要传输的数据量,并且使XML-SNMP网关越靠近SNMP Agent,传输的网络流量就越少。因为XBM是在基于Web的环境下使用XML技术的,所以它还继承了WBM的所有优点。此外,XBM还具有其他许多优点:(1)在系统设计上具有标准化的数据结构、清晰的定义、准确的编码方式和统一的访问接口。(2)在系统性能上,数据传输可靠性高,可一次传输大量管理信息,互操作性好,网络负载低,延迟小。(3)具有平台无关性,可以运行在多种操作系统之上,可以管理异构复杂网络。(4)用XML本身的安全机制来提高管理信息传输的安全性。(5)能管理多种网络设备,能以基于Web的方式对网络设备进行配置管理。
4 结论及进一步的研究
本文提出了一种新的XBM模型,它使用XML来表示、传输、处理和显示网络管理信息。该模型除可以直接管理基于Web的网络设备外,还利用2个网关实现了对传统的基于SNMP的网络设备和基于Telnet(SSH,SSL)网络设备的管理。但仍然有一些工作需要进一步深入研究。在该系统模型中若加入一层网关,当一次性请求大量管理信息时,可提高效率,但当请求的信息量比较少时,如何提高系统的性能是一个关键问题。此外,不同的操作系统其Telnet(SSH,SSL)命令格式及返回结果的格式不同,如何使XML文档对Telnet(SSH,SSL)信息的表示更具有普遍性也有待深入探讨。
参考文献
1 Ju H T,Choi M J.An Embedded Web Server Architecture for XML-Based Network Management.In:2002 IEEE/IFIP Network Operations and Management Symposium(NOMS′02), Florence,Italy,2002
2 IETF The Simple Network Management Protocol.RFC 1157,1990
3 Hong J W,Kong J Y.Web-based Intranet Services and Network Management IEEE on Communications Magazine,2000;35(10)
4 Bray T,Paoli J.Extensible Markup Language (XML) 1.0 (Third Edition).W3C Recommendation.http://www.w3.org/TR/2004/REC-xml-20040204.2004-02-04
5 Fallside D C.XML Schema Part 0:Primer.W3C Recommendation.http://www.w3.org/TR/xmlschema-0/,2001