NANKAI_CS
驱动牛犊
驱动牛犊
  • 注册日期2002-12-03
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2652回复:0

推荐一篇网管的好文章

楼主#
更多 发布于:2002-12-06 20:27
     
 
            
基于SNMP/Web的园区网络管理系统中配置模块的实现方法  作者:袁 磊  谢双一  发布时间:2001/08/28
 
  
 
文章摘要:
   随着因特网的发展,网络系统变得越来,越来越复杂,日益多样化,对网络系统的管理提出了更高的要求。为此,Internet的核心机构IAB(Internet Activities Board)提出了基于计算机网络的简单网络协议SNMP(Simple Network Management Protocol)协议和基于电信网络的公共管理协议CMIP(Common Management Information)协议。  
        

--------------------------------------------------------------------------------
 
正文:    
                

  基于SNMP/Web的园区网络管理系统中配置模块的实现方法


一、概述
1.网络管理模式
  随着因特网的发展,网络系统变得越来,越来越复杂,日益多样化,对网络系统的管理提出了更高的要求。为此,Internet的核心机构IAB(Internet Activities Board)提出了基于计算机网络的简单网络协议SNMP(Simple Network Management Protocol)协议和基于电信网络的公共管理协议CMIP(Common Management Information)协议。
  网络管理系统原则上是由四部分组成的:多个被管代理(Agent)、至少一个网络管理者(Network Manager)、一种通用的网络管理协议和一个或多个管理信息库(MIB)。网络管理者和被管代理通过交换管理信息来获取网络信息,其中网络管理器定期轮询各被管理代理,被管代理监听和响应来自网络管理者的网络管理查询和命令。这种信息交换通过一种网络管理协议来实现,信息分别驻留在管理工作站和被管理对象的管理信息的MIB库中。我们称这种模式为管理者---代理(Manage---Agent)模式。

2.网络管理五大功能
  配置管理:配置管理初始化网络,并配置网络,以使其能够提供网络服务。配置管理是一组对辨别、定义、控制和监视组成一个通信网络的对象所必须的相关功能,目的是为了实现某个特定功能获使网络性能达到最优。
性能管理:性能管理估计系统资源的运行状况及通信效率等系统性能,其能力包括监视和分析被管网络及其所提供的服务的性能机制。
  故障管理:故障管理主要分析网络故障的原因,包括故障检测、故障隔离和故障纠正等三个方面。
  计费管理:计费管理纪录网络资源的使用,目的是控制和检测网络操作的费用和代价。
  安全管理:安全管理包括对授权机制、访问控制、加密和加密关键字的管理。另外,该功能还要维护和检查安全日志。

二、关于SNMP网络管理协议
1.SNMP介绍
  简单网络管理协议SNMP是一种基于TCP/IP协议的互联网络的管理协议标准。它将管理部分划分成两部分并分别规定了每个部分的标准。第一部分涉及了信息通信,协议规定了运行的管理客户端如何与服务器通信。协议定义了客户和服务器交换报文的格式和含义,以及名字和地址的格式。第二部分关于被控制的数据,标准规定网关必须保持的数据项目,数据项目的名字和格式。SNMP的设计原则是简单性和扩展型。简单性通过信息类型限制、请求/响应或协议而取得;扩展型主要是通过将管理信息模型与协议、被管理对象的详细规定(MIB)分离而实现的。SNMP的体系结构分为SNMP管理者和SNMP代理者。
2.基本原语
  SNMP采用轮询和事件驱动两种访问方法。SNMP使用基本的五种通信原语得到管理信息。这五种基本原语是:Get-Request,Get-Next-Request,Set-Request,Get-Response,Trap。Get-Request被Manager用来从Agent取回某些变量的值;Get-Next-Request被Manager用来从Agent取回某变量的下一个变量的值;Set-Request被Manager用来设置或改变Agent上某变量的取值;Get-Response是Agent向Manager发送的应答;Trap被Agent向Manager报告某一异常事件的发生。其中,Get-Request、Get-Next-Request和Set-Request这三种操作都是具有原子的特性。
3.PDU格式
  在SNMP中,信息按照SNMP消息的形式在一个管理站和一个代理之间进行交换,每个消息包括一个指名SNMP版本的版本号,一个用于安全性的团体名字,以及五种协议数据单元中的一种。这协议数据单元,我们称为PDU。
基本上来说,PDU格式都由PDU类型、请求id号、变量域和其它几个方面来组成。具体的情况如图3.1所示。
图2.1 五种基本原语的PDU格式
4.MIB库
  网络管理信息库(MIB库)是网络管理的重要组成部分部分。具体的讲,MIB是网络管理数据的标准。此标准详细的规定了网络元素的标准(如RFC1213[36])。此标准详细的规定了网络元素必须保存的数据项目、数据类型,以及每个数据项目中允许的操作。通过对这些网络元素的MIB库数据项目的存取访问,即可得到对这些网络元素的所有统计内容,对这些统计内容的综合分析,即可实现基本的网络管理。

三、现有网络管理标准以及产品
1.现有的网络管理标准
WBEM(Web-Based Enterprise Management)
WBEM标准于1996年7月推出。WBEM是Microsoft最先提出的,包括3Com,Cisco,Intel等在内的60多个供应商都支持此项标准。它的目的是建立一个工业标准,使管理者可以使用任意一个浏览器管理分布的网络,系统和应用。
WBEM的体系结构如图3.1所示。
图3.1 WBEM的体系结构

WBEM定义描述了体系结构、协议、管理模式和对象管理器,管理者采用HTML或其它Internet数据格式并使用HTTP传输请求。WBEM包括以下三部分:
(1)HMMS(HyperMedia Management Schema),它是一种可扩展的、独立于实现的公共数据描述模式,能够描述、实例化和访问各种数据,是对各种被管理对象的高层抽象。它由核心模式和特定域模式两层构成,核心模式由高层的类以及属性、关联组成,将被管理环境的元素分成被管理系统元素、应用部件、资源部件、和网络部件。特定域模式继承了核心模式,采用其基本的予以定义某一特定环境的对象。
(2)HMMP(HyperMedia Management Protocol),它是一种访问和控制模式的部件的协议,用在HMMP实体之间传递管理信息,属于应用层的协议,由HMMP客户向HMMP服务器发出管理请求,HMMP服务器完成管理任务后返回响应。
(3)HMOM(HyperMedia Object Manager),它实现了HMMP的大部分并且作为代理代表HMMP客户请求。其中,HMMP客户主要与指派的HMOM通讯,它可以直接满足请求,减轻了HMMP客户定位和管理网络上的多种设备的负担。
WBEM的设计目标是:(1) 提供一个新框架可以覆盖传统的管理:配置、故障、计费、性能、安全管理以及操作管理和规划;(2) 建立这个WBEM体系在传输、安全和配置的标准的范围和已有的Internet标准之上;(3) 提供一种数据模型能够保证系统、网络和应用统一的建模和管理;(4) 根据管理元素集合的数目巨大和分布式的特性,提供一种可伸缩的解决方案。WBEM强调对于网络元素和系统的管理,这包括网络设备、服务器、桌面和应用程序。

JMX(Java Management Extensions)
  JMX的前身是JMAPI[31]。JMX致力于解决分布式系统管理的问题,因此,能够适合于各种不同的环境是非常重要的。为了能够利用功能强大的Java计算环境解决这一的问题,Sun公司扩充了Java基础类库,开发了专用的管理类库。JMX是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用[42]。它提供了用户界面指导、Java类和开发集成系统、网络及网络管理应用的规范。
  管理对象是JMX应用程序的核心。JMX结构[10]包括:支持Java的Web浏览器用户接口,管理运行模块ARM(Admin Runtime Module)和应用。这三个部件之间通过RMI(Remote Method Invocation)进行通信。这里需要说明的是,RMI是使得一个Java虚拟机(JVM)上运行的程序可以调用远程服务器上另一个JVM总的对象。用户接口用来发布管理操作,这些操作可以间接的通过浏览器或通过单独的应用程序来激发。管理运行模块用来给应用提供实例化的管理对象。它包括Agent对象接口,通知接口和被管数据接口。应用指的是那些被管设备单元。
  JMX是一个完整的网络管理应用程序开发环境,它同时提供了:厂商需要收集的完整的特性清单,可生成资源清单表格,图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法。
  JMX这一轻型的管理基础结构,价值在于对被管理资源的服务实现了抽象,提供了低层的基本类集合,开发人员在保证大多数的公共管理类的完整性和一致性的前提下,进行扩展以满足特定网络管理应用的需要。
  WBEM侧重于构造新的协议和结构来管理网络。JMX则是注重于构造管理工具的软件框架,并尽量采用已成熟的技术。
2.现有的网络管理开放平台
HP OpenView
  HP OpenView是第一个网管开放平台,其核心框架提供了基本应用的开放系统环境。通过API来实现对公共管理服务的访问,充分利用网管系统的开放性。它不仅是一个开放平台,还能向用户提供直接的管理应用。
  HP公司将OpenView网管平台的结构设计成开放的分布式的体系结构,并定义成一个具有全面的服务和设施环境,将网络和系统管理问题分成:通信下层结构、图形用户界面、管理应用、管理服务和被管对象。这些部分都通过标准的应用程序接口访问。
OpenView已经得到了许多第三方的应用系统开发商的广泛接受和支持。

IBM NetView
  NetView[33]是IBM公司在HP OpenView的基础之上发展起来的。它的核心代码没有改动,但加入了大量的应用,特别是SNA(Systems Network Architecture)网络的支持。
  NetView虽然不具备理解网络设备间的依赖关系的能力,但它提供了强大的信息的过滤能力,并通过使用设置阀值来减少部分冗余警告。

Sun NetManager
  Sun NetManager是分布式管理体系结构的网络管理系统,可以管理包括DECnet和FDDI网络环境,并能够与IBM的NetView相互配合。其中的委托代理和协作控制充分的体现了其分布性。它的集成工具能提供故障管理、配置、计费和安全服务。但它基本上还是个开发平台,还需要第三方厂商开发的应用系统来实现。

四、配置模块在网络管理中的作用及实现步骤
  通信网络中的配置管理是对系统定义、命名以及各组件的初始化、系统参数的控制和修改。配置管理可分为物理配置和逻辑配置。物理配置是指对各组成设备的物理特征的描述(如路由器的位置、型号)以及各部件之间的电路连接情况说明等。逻辑配置用来控制这些组件的初始化、操作模式和数据处理功能。当前变化的网络需要网络管理具有对网络进行动态配置的能力。
  配置管理从网络中获取数据,并使用这些数据对所有的网络设备的配置进行管理。它的主要功能是掌握和控制互联网络的状态,包括互联网络内各设备的状态及其连接关系。
  网络设备的配置决定着该计算机网络的表现。配置管理最主要的作用是它可以增强网络管理者对网络配置的控制,管理者可以将正在使用的配置数据和存储在系统中的数据进行比较,人为的进行修改;网络配置管理可以提供给管理者以可视化的界面,方便的进行网络设备信息的处理;同时,通过提供最新的网络单元的清单,配置管理可以给网络管理者提供更进一步的帮助,使管理者随时了解网络的设备配置情况,可以用来跟踪网络设备,记录关于设备来源、数量等信息。
  网络配置管理功能模块同时要求与性能模块、故障模块、计费模块等有很好的连接关系。其他模块的发生的事件通过配置模块的可视化界面来显示,同时配置模块对这些事件的回溯处理从而完善整个系统。
在网络的配置模块中,主要包括以下四个步骤:
1.收集关于当前的网络配置信息;
2.网络的拓扑管理;
3.网络设备信息的配置管理;
4.保存数据,维护所有的网络单元的最新设备清单,并产生多种报表。

2.收集网络信息数据模块
图4.1示出了描述网络设备发现和网络信息数据的收集的过程。
在网络信息数据发现模块中,主要是包括以下几个方面:
1. 获得系统初始化数据
系统初始化数据,是仅仅在系统第一次运行的时候所需要的。在网络拓扑的过程中,需要从系统获取以下几个方面的数据:
(1)网络拓扑的种子地址和查询的拓扑的跳数;
(2)网络拓扑获取数据的MIB库的各种信息:MIB库文件、网络设备节点的读写共同体名、端口号;
(3)系统功能设置的数据,如是否允许配置、是否允许故障监视等;
(4)其他功能模块所需的变量数据,包括轮询时间,监视的设备的范围等等;
图4.1 网络信息数据发现结构图

2. 主拓扑获得关键设备的数据
目前,国外有很多管理产品中已经实现了网络拓扑图的搜索,但实现的程度不同。
.TRANSCEND:由3Com公司开发。该产品的自动搜索功能比较简单。只能检测出当前局域网的主机,不能确定各个主机的互连情况,不能确定主机的接口类型;
.Cisco Works:由Cisco公司开发。它使用Cisco的专门技术---CDP(Cisco Discovery Protocol)对其本公司的网络产品能够进行精确的搜索。但CDP只适合于Cisco类型的网络产品,对其它的厂家的网络产品不具备兼容性;
.NetWalker:由Fujitsu公司开发。它是一种较好的网络管理产品。能够较好的搜索到当前网络中运行的网络设备,能够比较精确地确定网络互连情况和网络接口,并且能实时地反映网络当前状态。但它只适合于Unix环境中,对网络的搜索需要大量的时间。
在分析了许多的网络管理软件的自动搜索的基础上,设定了对于本系统网络管理的自动搜索的目标是:
.实现简单,搜索速度快,搜索的范围给予限制;
.能较好地搜索整个园区网,尽可能的扩大网络搜索范围;
.精确的确定网络中各个子网的互连情况;
.确定各个网络设备的存活状况。

(1) 主拓扑
  主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器-路由器、路由器--子网、接口的关系。这些信息需要对网络进行搜索而获得。
  在网络拓扑中,各个子网通过各自的路由器与其他的子网通信,这些子网可以是一个局域网,也可以是某个局域网的一个子网,他们都连接到路由器的一个端口上。路由器的一个端口可以连接一个子网,也可以同其他路由器相连。
  当一个子网的某机器向别的子网发送数据时,数据包首先到达本子网的缺省路由器,缺省路由器检测数据包中的目的地址,根据其路由表确定该目的地址是否在与自己相连的子网中,如果是,则把数据包直接发往目的地,否则转发给路由表中规定的下一个路由器,下一个路由器在进行类似的处理,依次类推,数据包将最终到达目的地。
在初始化系统数据的时候,可以得到用来进行拓扑的起始的种子节点地址和要进行查询的跳数。
  在建立网络地图时,首先要求管理人员对网络的整体结构有比较清楚的了解。要建立一个层次型的网络地图,就要确定每层的组成,确定子网、设备之间的连接关系。然后利用自动发现,建立该子网中所有网络设备的当前清单。

(2)主拓扑需要用到的变量
  通过MIB库的ipForwarding和sysServices变量确定网络设备的类型。其中sysServices告知设备主要提供了ISO参考模型中的哪一层服务。L是协议层编号,每一层使用公式2(L-1)表示,返回的是每层值的总和;ipForwarding用来判断设备是否具有向前转发ip数据包的功能,从而判断该设备是否是网关。
  网络设备的网络接口表ifTable的使用。首先访问网络设备的地址表,得到设备接口的各个设备的网络地址和接口索引,然后根据接口索引,查询设备的接口表,就可以得到该设0备与其他网络设备的接口类型。通过这些接口类型,可以进而一步对连接的网络设备进行判断。其中,ifDesr和ifType分别命名接口并给出它的类型。
  路由器中有一个系统变量是sysObjectID,对于不同的类型的路由器,它的值是不同的,因此是不足以标记一个路由器。参照OSPF协议将路由器接口表中最小的IP地址作为它的标记。通过对路由器IP地址表ipAddrTable中变量的利用,可以进行多IP地址的同一路由器的判定。路由器地址表ipAddrTable中有关定义如下:
ipAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpAddrEntry
IpAddrEntry::=SEQUENCE
{
ipAdEntAddr IpAddress,//接口的IP地址
ipAdEntIfIndex INTEGER,//接口的索引
ipAdEntNetMask IpAddress……//接口所在子网的掩码
}
MIB库IP路由表是拓扑中最重要的一个Table表,它包含路由的地址、下一跳的地址、子网掩码等信息,其定义如下:
ipRouteTable OBJECT-TYPE
SYNTAX SEQUENCEOF IpRouteEntry
IpRouteEntry::=SEQUENCE
{
ipRouteDest IpAddress,//路由的目的地址
ipRouteIfIndex INTEGER,//路由的当地接口索引
ipRouteNextHop IpAddress,//路由的下一个路由地址
ipRouteType INTEGER,//路由的类型
ipRouteMask IpAddress……//路由目的地的子网掩码
}

(3)主拓扑需要用到的算法
  主拓扑的遍历查询,它遵循三个相关的原则:被查询路由表的网关是与路由表中的各ipRouteNextHop相邻的;如果ipRouteNextHop在ipRouteDest所表示的子网中,则ipRouteNextHop与ipRouteDest是相邻的;如果被查询的网关与ipRouteNextHop相同,则该网关与所对应的ipRouteDest是相邻的。根据这三个相关的原则,有这样一个遍历的算法:

初始化待访问路由器队列,初始化已访问路由器二叉排序树;
把缺省路由器的标志IP放入待访问路由器的队列中;
while (待访问的路由器队列非空)
{
从待访问的路由器队列中取出一个路由器,为CurrentRouter;
if (CurrentRouter加入到已访问路由器二叉排序树成功)
{
初始化本地相连路由器队列和本地相连子网队列;
访问CurrentRouter路由表,对每个路由表项:
{
if (ipRouteType==indirect)
把路由表中的各ipRouteNextHop不重复地放到本地相连的路由器队列;
if (ipRouteType==direct)
把ipRouteDest和ipRouteMask不重复地放到本地相连的子网队列中;
}
遍历本地相连的路由器队列中的每个路由器,将其标志IP放到待访问的路由器队列;
}
}

说明:
a.已访问的路由器是一个全局不重复的队列,它的成员是路由器标志IP,为了提高其成员不重复维护的效率,采用二叉排序树的数据结构。当加入一个路由器标志失败时,表示该路由器已被访问过;
b.待访问路由器队列中的成员也是路由器的标志IP,但可以重复,插入时不进行重复性的检查;
c.这个算法是个深度优先算法。它根据所给的初始化的数据信息进行检索。

3. 子网拓扑所获得的数据
对于一个子网的拓扑,有两种办法。
  其一,任何路由器利用ARP协议,以动态更新的方式在Cache表中存放一份与它直接相连的所有的子网内主机的IP地址到网卡(MAC)地址的映射。通过ARP表里的MIB变量ipNetToMediaNetAddress,可以逐一取得这样的IP地址,将这些IP地址进行模式匹配,如果成功,则证明该IP地址对应的主机是子网内的成员。这种方法的优点是获取值的速度比较快,不足之处是由于该ARP表的更新是有一定的静态时间间隔的,不能实时的更新。利用这种方法,如果要求更新ARP表,则可以按照用户设定的轮询时间用程序通过Telnet仿真修改更新时间。
  其二,主要利用的是TCP/IP中ICMP协议。实现它主要经历以下几个步骤:
(1)确定该子网的网关、子网地址和子网掩码,子网地址通过对IP和Mask进行\"与\"操作获得;
(2)通过网关的地址获得子网的类型;
(3)通过子网地址和子网掩码获得该子网的机器数;
(4)在给定的子网中,对这个区间的IP地址进行Ping操作,将检测到的IP地址纪录到IP地址表中;
(5)根据socket的请求,同时可以获得存活机器的其他信息,可以发觉其IP地址的域名等其他的信息。
  Ping操作实际上是对主机的IP地址发一个ICMP回应请求包,用异步的方式发送和接收ICMP回应应答包。用异步的请求方式来提高检测的速度,同时不会导致阻塞。因为Java语言不支持TCP/IP协议的IP层的ICMP协议的数据处理,也就是说不支持Winsock中原始套接字,必须采用其他的办法来处理。
有三种办法来解决对机器Ping的操作,如图4.2所示。
  其一是利用Java的原生方法(Java Native Interface)来生成可供Java应用程序调用的.dll文件。JNI用C语言编写可以实现Winsock Raw Socket的程序,提供和Java语言联编的头文件。这个生成dll文件包括接收Java应用程序的请求调用和处理的结果返回给Java主程序。其二是通过Java Socket的7号端口进行echo请求,这种办法的缺点是请求返回的信息不很充分,信息量少。还有一种方法是,Java程序和底层的C语言程序是一个相对独立的部分,他们通过一个数据库来转接,数据库起着转换Java和C语言联系的功能。
  ICMP包头是存放在IP报文的数据单元中,在程序中首先根据IP包的格式来填充ICMP包,然后用SOCK_RAW类型创建套接字,调用函数Socket(),同时,采用异步方式,用WSAAsyncSelect()函数注册FD_READ事件,最后,用sendto()和recvfrom()来发送和接收ICMP包。
图4.2 Java实现Ping的方法

4. 更进一步的策略
(1) 一个启发式的思想
  前面的拓扑算法在一定程度上是非常有效的,拓扑的速度也非常快。但它存在一个缺陷。那就是,在一个特定的域中,所有的子网的信息都依赖于设备具有SNMP的特性。并且,即使该设备(如路由)具有支持SNMP的功能,但由于安全访问的问题,有时也难取得该设备的MIB值,就出现了拓扑的不完整性。
  这里有一个启发式的算法,用来从一组已知的主机IP地址中获取该组主机的子网地址和子网掩码。
  假定我们已知一组主机地址A1、A2、A3从一个路由连接出来,该路由地址为A。这些地址将有共同的子网地址和子网掩码。我们假定这四个地址分别为:202.114.33.195,202.114.33.216,202.114.33.228,202.114.33.8。为了更清晰的说明这个算法,我们省略了这些地址的前缀,地址为11000011,11011110,11011010,00001000。将这些值进行AND操作,结果为00000000。很明显,该子网的地址为202.114.33.0。当AND结果不为0时,还要进行OR操作。保证OR操作的结果中后端全为1的范围内,AND操作对应值应全为0。否则,重新定义假定地址,最终获得其子网地址。

(2) 算法[43]
一个DNS域名服务器保持该域中所有的机器IP地址和机器名称的连接关系。将利用这个办法初始化数据集。
临时数据集=DNS_domain_transfer(domain);
初始化Ands和Ors的哈希表为空;
while(node属于临时数据集)
{
ping该节点;
如果该节点是存活的,则永久数据集+=该节点,否则 continue;
traceroute该节点;
当前router=该traceroute的最近一跳;
利用DNS查询来找到该router的所有IP地址;
当前网关= 当前router的\'1\'bit位 XOR 该节点;
Ands(当前网关)=该节点 AND Ands(当前网关);
Ors(当前网关)= 该节点 OR Ors(当前网关);
新的子网= Ands(当前网关);
新的子网掩码=NOT( Ands(当前网关) XOR Ors(当前网关));
存储该节点;
}
该算法能够将一个域中所有的子网和其子网掩码全部获得,查询的面比较广。不足的是花费的时间代价比较高。

3.网络拓扑模块
网络拓扑模块涉及的主要部分如图4.3所示。
1.网络拓扑模块的显示
  网络管理系统提供了一个图形界面,生成网络的层次性视图,显示当前的网络拓扑结构。而且,它们一般都有自动发现工具,以及自动建立地图的工具,这在建立网络地图时可以给网络管理人员很多的帮助。
  根据前面所提到的算法,可以建立当前的网络的图形化地图。这个图形化的地图和上面一样,也包括主拓扑的显示和子拓扑的显示。一般说来,自动建立的地图还不能完全反映网络的地理和功能布局,还需要更进一步进行手工的修改。
  主拓扑的显示是个比较复杂的问题。如何客观的反映路由器-路由器和路由器-子网没有一个比较统一的算法。在本系统中,对网络主拓扑采用对路由器深度遍历算法获得的层次在界面上由上至下的显示;同时,对于那些有子网连接的路由器,所有子网以圆形分布在该路由器的周围。
任何子网都有一定的拓扑形式,如总线型、星环型等。子网要根据不同的子网类型进行显示。
  当网络中的某个设备发生了故障或其它的事件时,该设备会报告给网络管理系统,并在网络地图中的相应符号会改变颜色或闪烁,并向其上层地图传播,使管理者及时地了解到网络设备的情况。按照国际上的惯例,绿色表示设备无错误运行;黄色表示设备可能存在一个错误;红色表示设备处于错误状态;蓝色表示设备运行,但处于错误状态;橙色表示设备配置不当;灰色表示设备无信息;紫色表示设备正在被查询。
图4.3 网络拓扑模块

2.网络拓扑服务器
  拓扑服务器在整个系统创建初期运行,它监听各个功能模块的事件服务,一旦有和整个拓扑显示模块相关的事件发生的时候,拓扑服务器将处理这些相关的事件。

3.地图服务器
  地图服务器根据地图发现模块的API函数获得的设备信息来构建反映设备连接状态和地理位置的地图。网络环境在不断的改变,网络中存在的设备可能会改变,设备的配置参数也会经常调整,因此,地图服务器在整个系统运行期间需要做两方面的工作:一方面,地图管理器将和拓扑服务器进行消息连接,处理各种事件服务;另外一方面,地图管理器用来处理接收Browser客户端对地图的修改请求,特别是对那些新对象的变化和对象的属性的改变,管理器将在地图上显示出这些动态的变化,将这些改变的信息经过信息过滤填入到数据库中,同时,管理器对这些信息还将提供到连接在管理器上的其他客户机上,给所有的在线客户端用户实时的拓扑和异步的更新。

4.网络设备配置管理模块
  由于各种情况,管理者可能要经常修改和调整网络的配置。对于网络设备配置管理模块可以分为两部分。其一就是对系统的模块配置,其二是网络设备的修改配置。
  系统的模块配置,在这里我们只谈一下配置模块中需要的配置信息。主要包括:信息存储数据库的配置,如数据源的URL, JDBC驱动Driver名称, 数据库的登录名和口令,同时,还将配置各个模块中关于拓扑地图、事件、轮询对象的那些永久性信息等;拓扑模块中的配置,如轮询发现间隔,SNMP请求的超时时间,SNMP 共同体名称列表的配置,网络节点信息过滤信息等;拓扑显示中的配置,如设备节点的显示图标。
  网络设备节点的修改配置,主要是对设备节点的增加、删除和对其属性的改变。对于用户进行了手工添加的拓扑不能自动发现的设备需要管理者人为地配置。利用配置管理工具改变设备的配置,这些改变过程可以在送到设备之前自动的记录下来。另外,网络管理系统还可以校验改变后的配置是否适合于该设备,并且在管理者无意中对设备进行错误配置时给出必要的警告信息。
  配置管理同时也要考虑对象间的同步和各个客户端对象实例的实时更新。

5.配置信息的存取模块,同时产生配置报告
  一个有效的管理系统应该存储所有网络配置信息,以便管理员可以快速有效地访问配置数据。
  关系数据库管理系统可以使用户将各种类型的数据关联起来,使得系统服务器能够有效、快速的存取、关联、查询数据和建立设备清单。同时,关系数据库提供了触发器和存储过程的概念,使得服务器可以通过JDBC调用存储过程,封装了一些常用的查询处理的小模块,从而提高了速度。
  配置管理工具还应该产生必要的报告以使管理者及时了解整个网络的配置情况。配置报告要求详细描述每个网络设备的配置,包括它的名称、网络地址、制造商和操作系统等;要求有所有的最近的网络变化的概况报告;要求有有关整个网络设备清淡的总结报告。

五、结束语
1.系统软硬件环境
整个系统的开发及工作环境如下:
.操作系统:Window
.开发工具:Java、Visibroker for Java、Sql Server、c
.硬件环境:PC
.管理对象:园区计算机网络管理
2.今后的改进方向
今后的系统应在以下方面做更进一步的努力:
:支持SNMPv3。更高版本的协议的支持是必然。这就需要对于更完善的编写SNMP实现原语。
:系统需要制定一个比较完善、通用的界面拓扑显示的算法,以完成不同情况的拓扑的显示。
:系统运行的效率的提高。要求系统模块使用更加灵活,使用率更高。这包括两方面的问题,即如何提高数据采集的效率,和由于基于Web的方式和分布式的使用,要求运行速度特别是消息传递的速度更快。
为了满足今天的企业网络的需求,网络管理解决方案必须具有4个关键的特征:可扩展性、降低管理的复杂性、更迅速更独立的解决问题以及信息的可访问性。系统的开发要求面向于用户,方便于用户为目的。这样一个网络管理软件才会有市场、才会有发展。

参 考 文 献
1. 谢双一,基于CORBA/Web园区网网络管理系统配置管理的设计与实现,华中师范大学学位论文,2000.7
2. 汪芸,顾冠群,CORBA技术及其应用,东南大学出版社,1999年6月
3. 岑贤道,安常青,网络管理协议及应用开发,清华大学出版社,1998年7月
4. 徐大海,刘新,王奇,白英彩,网络拓扑自动搜索算法研究,计算机应用,Vol.19, No.2 Feb.1999
5. 网络管理系统中的自动拓扑算法 李佳 石冰心 华中理工大学学报 Vol.26 No.1 Jan.1998
6. R.Otte,P.Patrick,CORBA教程,公共对象请求代理体系结构著,李师贤 等译校,清华大学出版社,1999年10月







作者会员名:yuannian
 


        
  

最新喜欢:

hustzzwhustzz...
游客

返回顶部