基于SNMP网络管理系统的设计与实现(共27页)_第1页
基于SNMP网络管理系统的设计与实现(共27页)_第2页
基于SNMP网络管理系统的设计与实现(共27页)_第3页
基于SNMP网络管理系统的设计与实现(共27页)_第4页
基于SNMP网络管理系统的设计与实现(共27页)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于(jy)SNMP网络管理系统的设计(shj)与实现 本科毕业设计(shj)(论文)题目:基于SNMP网络管理系统的设计与实现院 (系):专 业:班 级: 学 生: 学 号: 指导教师:基于SNMP网络管理系统的设计与实现摘要随着互联网的发展,计算机局域网也在各大中小型企事业单位得到充分的重视与长足的发展。为了使局域网能正常、高效、稳定、安全、可靠地运行,管理员必须对局域网络进行有效的管理。SNMP协议目前已成为网络管理的标准协议,采用SNMP协议开发基于Windows系统的网络管理软件,在实际工作中有着广泛的应用需求。本论文通过简要介绍课题研究的背景和研究意义,并就网络管理系统、SNMP协

2、议、管理信息库、信息管理结构等相关理论及原理进行阐述。针对某局域网络的现状和管理需求,结合网络管理实际情况,设计了一种应用于中小型局域网络的基于SNMP协议的C/S模式的网络管理系统,并对其中的核心技术进行了详细介绍。论文以模块化的方式,设计该网络管理系统,并对配置管理、性能管理、故障管理和网络可达性等功能的实现阐述了其设计思路和实现方法。并给出了部分功能的运行效果。关键词:局域网;网络管理(gunl);SNMP;管理信息库;管理信息结构Research and Implementation of Network ManagementSystem based on SNMPAbstractWi

3、th the development of the Internet, the Local Area Network (LAN) has been attached great importance from enterprises and developed significantly. Administrators have to manage the LAN efficiently in order to keep the LAN running properly, effectively, steady and reliably. Simple Network Management P

4、rotocol (SNMP) currently is the standard protocol of the LAN management. Developing the software of the LAN management under SNMP basing on Windows system is highly demanded in reality. This thesis introduces the background and research significance of the LAN management. And it also introduces the

5、LAN management system, SNMP, Management Information Base (MIB), Structure of Management Information(SMI)and related concepts. This thesis focuses on the appearance and management demand of a LAN, combines the reality of LAN management, introduces the develop workflow and design mind of Client/Server

6、 (C/S) management system basing on the SNMP for medium and small LAN and in special the core technology. This thesis illustrates the designing ideas and implementation for configuration management, performance management, fault management and network reachability within the LAN management area. Besi

7、des, it visualized the running effects of modules with screenshots.Keywords: LAN; network management; SNMP;MIB; SMI1 绪论(xln)1.1课题(kt)背景计算机网络技术从二十世纪七十年代开始到现在已经经历了四十多年的时光,从七十年代的广域网技术到八十年代的微机局域网技术以及九十年代后不断兴起的 Internet 与综合业务数字网 ISDN,直到今天蓬勃发展的移动互联网,计算机网络技术已日趋成熟。今天,计算机网络作为信息社会的基础设施已经日益深入到国民经济和社会生活各个方面,使人们

8、工作生活方式发生了巨大变化,计算机网络已成为人们日常生活中必不可少的交际工具。与此同时,随着网络规模的扩大、多厂商产品的互联,网络复杂性不断增加,网络的异构性越来越高,各种网络软件提供的服务对网络的性能要求越来越高。如果没有一个高效的网络管理系统进行管理,那么很难保证为广大用户(yngh)提供满意的服务。网络管理和维护在整个网络运行中越来越受到重视,研究与开发能满足需要的网络管理系统工具有很好的实用价值与良好的发展前景。1.2国外研究现状近几年,随着网络规模的逐步扩大、应用的逐渐复杂,各个企事业单位、政府机构都面临着网络的管理难、控制难、维护难等问题。目前许多企业都依赖于ERP/CRM等电子信

9、息系统,而金融、银行、保险等行业对网络的依赖性就更强,如果企业的网络发生故障或者运行状态不佳,数据流受到阻塞,关键资料就不能得到有效共享,导致运营效率下降,从而影响企业的生产效率,甚至会给企业经营带来巨大的损失。与此同时,如何保障网络的畅通无误,如何及早发现并排除潜在的故障隐患,有效地管理好网络,保障网络的安全稳定运行,成为IT管理人员甚至是企业领导层都必须面对的问题,许多网络经营管理机构或单位不得不付出极大的人力、物力对网络进行管理。今天,人们己经清楚地意识到,计算机网络的管理和运行是计算机网络领域中的关键技术之一,特别是大型计算机网络的建设,更应该把网络的管理和运行作为十分重要的建设内容。

10、网络管理,就是监视、组织和控制网络通信服务和信息处理所必需的各种活动的总称,确保网络长时间、正常的运行,并当其出现故障的时候尽快的发现、修复故障,使其最大限度的发挥其应有的效益。许多厂商开发出了自己的网络管理产品,它们都采用了标准的网络管理协议,提供了具有各自特色的解决方案,比较典型的有Sun公司的NetManager、HP公司的Open View、Cabletron Systems公司的Spectrum Enterprise Manager 5.0、Loran Technologies公司的Kinnetics 2.0。1.3课题意义在互联网时代,如何保证网络的安全和业务的正常运行已经是一个及

11、其重要的问题,这就需要一个网络安全的统一管理平台来保证网络平台的正常运行。在这个信息安全管理平台下,实现设备协同工作,优化网络和系统资源的有效利用,保障网络和应用系统安全正常地运行具有重要的现实意义。随着全球网络经济、信息技术的迅猛发展,各类基于网络的业务应用平台越来越多,网络设备的安全产生了各种各样的问题,网上泄密、网上诈骗、黑客攻击、系统崩溃等一系列涉及计算机信息安全的事件时有发生,计算机病毒的侵害更是持续以极高的速度增长。一些重要应用的计算机信息系统在信息安全管理、技术措施等方面还存在着很多薄弱环节。为了解决上述网络设备的安全问题,需要研究设计一个通用的网络安全管理平台,统一的管理各种网

12、络设备和资源,并在统一的模型上实现安全策略和设备联动策略。而本文的研究课题就是对网络中的Windows主机信息进行采集,并在整个网络管理平台上实现对Windows主机信息的统一监测和管理。1.4论文(lnwn)结构本论文(lnwn)结构如下:第一章,绪论(xln)。介绍了网络管理的概念和发展历史,网络管理的国内外研究情况以及所面临的问题,然后介绍本论文的研究意义以及研究的内容。第二章,网络管理。对现存的一些网络管理体系进行介绍,并指出它们存在的问题,引出SNMP技术。第三章,简单网络管理协议。对具体SNMP协议框架进行了详细的介绍,并介绍了SNMP+技术和核心类。第四章,基于SNMP网络管理的

13、研究。提出对Windows主机信息进行监测的需求并进行分析,对系统的整体架构、系统用到的主要连接,功能服务等进行详细设计。第五章,基于SNMP的网络管理的具体实现。在上一章的基础上,对基于SNMP网络管理系统进行分析和具体实现,完成设计要求的所有功能。第六章,总结。对论文的研究工作作了总结,并对未来进行了展望。2 网络管理网络管理是指对网络的运行状态进行监测和控制,使其能够有效、可靠、安全、经济地提供服务。从这个概括可以看出,网络管理可以包括两个任务:一是对网络的运行状态进行监测;二是对网络的运行状态进行控制。通过监测了解当前状态是否正常,是否存在瓶颈问题和潜在的危机;通过控制对网络状态进行合

14、理调节,提高性能,保证服务。2.1网络管理的发展(fzhn)与标准化网络管理技术是伴随着计算机、网络、通信技术的发展而发展的。信息社会对网络的依赖程度越来越高,网络的高效、可靠的运行管理也越来越重要。在 网 络 管 理 技 术 的研究、发展和标准化方面,国际标准化组织ISO(International Organization for Standardization)和 Internet 体系结构委员会IAB(Internet Architecture Board)及其下属的工作组都作了卓有成效的工作。他们所制定的基于 OSI 参考模型的公共管理信息服务与协议 CMIS/CMIP(Common

15、 Management Information Services/Protocol)和基于 TCP/IP 的简单网络管理协议SNMP(Simple Network Management Protocol)已经成为(chngwi)目前网络管理系统中运用较为广泛的两种协议。(1) CMIS/CMIP 协议(xiy)CMIP主要针对 OSI七层协议参考模型而设计,用来提供标准的公共管理信息服务 CMIS。网络管理进程使用 ISO 参考模型中的第七层,OSI 的低层没有特别为网络管理定义的协议。CMIP 管理体系结构如图2.1 所示。图 2. 1 CMIP 通信结构图在 OSI 管理信息通信中,管理者

16、和管理代理调用公共管理信息服务元素CMISE 来进行管理信息的交换。CMISE 向上提供服务访问点与管理者或代理交换原语,向下通过联系控制服务元素 ACSE 和远程操作服务元素 ROSE 按照公共管理信息协议 CMIP 收发 CMIP PDU(协议数据单元)。CMIP PDU 需要传输层提供面向连接的传输服务。由于历史和现实的原因,国际标准化组织依据 OSI/RM 模型制定的七层协议标准始终未能得到业界和社会的广泛支持和应用,相应地,符合 OSI 网络管理标准的可供使用的产品也几乎没有。尽管如此,OSI 的网络管理标准协议还是具有十分重要的参考意义。(2) SNMP 协议80 年代后期,Int

17、ernet 的迅速发展和网络管理的薄弱,使 Internet 体系结构委员会决心定义自己的一套标准化网络管理体系结构与协议。1988 年,Internet结构委员会完成了 SNMPv1,1993 年,又发表了 SNMPv2,管理功能和安全性能都得到了加强,后来又发表了 SNMPv3,使得安全问题彻底解决。与 CMIP 相比,SNMP 最大的特点是简单性和可扩展性。“Simple is the best”,确实如此,简单化使网络管理容易实施,系统资源占用较少,用户可以更容易根据需要对 SNMP 进行编程。此外,由于它的设计简单、协议容易更新且可以方便的扩展,很快得到了各网络设备生产厂家的广泛支持

18、,并使之成为了事实上的网络管理工业标准。目前,几乎所有厂家生产的网络设备都支持 SNMPv1、SNMPv2 管理功能,有很少部分设备支持 SNMPv3,但 SNMPv3 推广应用的趋势是毋庸置疑的。2.2网络管理的功能(gngnng)国际标准化组织 ISO 一直致力于网络管理的标准化,定义了网络管理的五大功能:配置管理、性能管理、安全管理、计费(j fi)管理和故障管理。通过这五大网络管理功能,IP 网管系统就能够实时调整网络状态、充分提高每个被管对象的利用率,使网络不发生故障或拥塞、网络中的各种资源得到更加高效的利用,在保证网络的可用时间和设备的利用率、网络性能、服务质量的同时,实现网络正常

19、、高效地运行。(1) 配置管理配置管理主要是发现网络拓扑结构关系、监视和管理网络设备的配置情况。目标是掌握和控制网络和系统(xtng)的配置信息以及网络内各设备的状态和连接关系,这些信息对于维护一个稳定运行的网络是十分重要的。配置管理最主要的作用是可以增强网络管理者对网络配置的控制,它是通过对设备的配置数据提供快速的访问来实现的。(2) 性能管理性能管理的目标是衡量和呈现网络特性的各个方面,使网络的性能维持在一个可以接受的水平上。性能管理使管理人员能够监视网络运行的关键参数,如吞吐率、利用率、错误率、响应时间等。此外,性能管理能够指出网络中哪些性能可以改善以及如何改善。从概念上讲,性能管理包括

20、监视和调整两大类功能。监视功能主要是指跟踪网络活动,调整功能是指通过改变设置来改善网络的性能。性能管理的最大作用在于帮助管理员减少网络中过分拥挤和不可通行的现象,从而为用户提供稳定的服务。(3) 安全管理安全管理的目标是按照一定的策略来控制对网络资源的访问,以保证网络不被侵害,并保证重要的信息不被未授权的用户访问。安全管理是对网络资源以及重要信息的访问进行约束和控制。它包括验证网络用户的访问权限和优先级、检测和记录末授权用户企图进行的非法操作。安全管理的许多操作都与实现密切相关,依赖于设备的类型和所支持的安全等级。安全管理中涉及的安全机制有:身份验证、加密、密钥管理及授权等。(4) 计费(j

21、fi)管理计费管理(gunl)的目标是跟踪个人和团体用户对网络资源的使用情况,对其收取合理的费用。这一方面可以促使用户合理地使用网络资源,维持网络正常的运行和发展,另一方面,管理者也可以根据情况更好地为用户提供所需的资源。计费管理的主要作用是:网络管理者能测量和报告基于个人或团体用户的计费信息,分配资源并计算用户通过网络传输数据的费用,然后给用户开出账单。(5) 故障(gzhng)管理故障管理的目标是自动检测网络硬件和软件中的故障并通知用户,以便网络能有效地运行。故障管理的步骤包含:判断故障症状;隔离该故障;修复该故障;记录故障的检测过程及其结果。故障管理的功能包括:接收差错报告并做出反应;建

22、立和维护差错日志并进行分析;对差错进行诊断测试;对故障进行过滤;同时对故障通知进行优先级判别;追踪故障,确定纠正故障的方法措施。2.3网络管理软件的分类(1) 网元管理软件 一般由设备厂商提供,各厂商采用专有的管理MIB库,以实现对厂商设备本身的细致入微的管理,包括可以显示出厂商设备图形化的面板等,如安奈特公司的AT-View Plus,思科公司的Cisco View和华为网络公司的Quidview等。(2) 通用网络管理软件 主要用于掌握全网的状况,作为底层的网管平台来服务于上层的网元管理软件等。如安奈特公司的AT-SNMPc,可以提供一个第三方的网管平台,支持对所有 SNMP设备的发现和监

23、控,可集成厂商设备的私有MIB库,实现对全网(多厂商)设备进行识别和统一的管理。从而避免了厂商专用型网络管理系统无法实现对全网设备的统一管理,用户往往采用多台网管工作站分别安装不同的系统,进行分别管理的局限性,有利于简化管理和降低成本。这类产品还有惠普公司的HP OpenView、CA公司的Unicenter、IBM公司的Tivoli NetView等。国内的如游龙科技的SiteView、网强信息技术公司的网强网管和青鸟网硕等。3 简单网络管理协议3.1SNMP协议框架SNMP 管理框架由三部分组成:管理信息结构 SMI(Structure of Management Information)

24、、管理信息库 MIB(Management Information Base)和简单网络管理协议SNMP(Simple Network Management Protocol)。SNMP属于 TCP/IP 的应用层协议,用到的传输层服务是面向无连接的用户数据报协议 UDP(User Datagram Protocol),UDP 无需建立流控制与建立连接,所以 SNMP 为应用实体间的通信降低了开销,减轻了网络负担,不保证报文的正确到达,但可以(ky)通过轮询机制与事件驱动两种方式访问,增强了通信的可靠性。SNMP 的网络管理体系遵循了 ISO 的网络管理模型,是由管理节点 Manage与代理节

25、点 Agent 组成。每个代理节点上保存了一个管理信息库和代理进程,管理节点运行网络管理应用进程与每个代理节点上的代理进程通信,进行数据采集。SNMP 的管理模型如图3.1:图 3.1 SNMP 管理(gunl)模型3.1.1管理(gunl)信息结构(SMI)管理信息结构 SMI 是 SNMP 的基础部分,定义了 SNMP 框架所使用的信息的组成、结构和表示,为描述MIB对象和协议如何交换信息奠定了基础。RFC1155与RFC1442分别定义了SNMPv1版的管理信息结构和SNMPv2的管理信息结构。无论哪个版本的管理信息结构都由三部分组成:对象标识符 OID(Object Identifie

26、r)、对象信息的描述和对象信息的编码。(1) 对象标识符 OID对象标识符也就是被管对象的命名。ISO 与 ITU-T 提供了一个全局命名树,为需要命名的被管对象分配树下的一个节点。被管对象占有全局命名的一棵子树,这棵树通常称为 MIB 树,如图 3.2 所示。对于 SNMP 来说,树状结构的命名方式最大的好处是便于加入新的网络管理对象,具有良好的可扩展性,新加入的被管对象只是其父节点子树的延伸,对其他节点不会产生影响。图 3.2 MIB-II组织结构SMI 为 MIB 树上的每个节点分配了一个数字标识,同时为了便于记忆和理解,又为每个节点提供了一个文本方式的对象描述符。一个完整的对象标识符是

27、从 MIB 库的根开始到此被管对象所对应的节点沿途上所有节点的数字标识或名字标识,中间以“”间隔而成的。例如 MIB-II 中的一被管对象 sysName 的对象标识符表示如下:名字(mng zi)表示:ernet.mgmt.mib-2.system.sysname数字(shz)表示:.(2) 对象(duxing)信息描述SMI 规定被管对象的描述必须包括四个方面的属性:对象类型SYNTAX、存取方式 ACCESS、状态 STAUS 和对象说明 DESCRIPTION。SMI 规定的数据类型分为两类:通用数据类型(universal data type)和泛用数据类型(application-

28、wide data type)。对象的存取权限分为四类:只读 read-only、只写 write-only、读写 read-write和不可访问 not-accessible。对象的状态有三种:必备 mandatory、可选 optical 和过期 obsolete。 对象的说明是对此对象的意义的一般性文字描述。下面是 MIB-2 中 TCP 功能组的对象 tcpMaxConn 的完整描述: tcpMaxConn OBJECT-TYPESYSTAXINTEGERACCESS read-onlySTATUS mandatoryDESCRIPTION“The limit on the total

29、 number of TCP connections the entity can support.In entities where the maximum number of connections is dynamic,this object should contain the value -1.”: tcp 5 (3)对象信息编码网络管理系统和网管代理进程之间的通信必须对对象信息进行统一编码,SMIl 规定了对象信息的编码采用基本编码规则 BER(Basic Encoding Rules)。 BER 编码有三个字段:1) 标签(Tag):存储关于标签和编码格式的消息。2) 长度(Le

30、ngth):记录内容字段的长度。3) 内容(Value):实际的数据。一个 BER 编码实际上是一个 TLV 三元组(标签,长度,内容),每个字段都由一个或多个 8 位组成,BER 规定最高位是比特位的第 8 位,在网上传输时从高位开始。3.1.2管理(gunl)信息库(MIB)管理信息库 MIB 是管理对象的集合,管理对象在 MIB 中按照 SMI 的规定定义,并按树状结构(jigu)组织起来,反映被管资源的状态,通过读取或设置这些对象的值可以监视或控制网络资源。MIB 中有两种对象:标量对象和表对象。当对一个 MIB 对象进行访问时,目标是特定的对象实例而不是对象类型。SNMP规定标量对象

31、类型只有一个对象实例,标量对象的标识符 OID 后面加上.0 就构成了对象实例;表对象由若干个列对象组成,一个列对象有多个实例,列对象的 OID 后面加上.x(x 代表一个顺序的整数序列)构成列对象的多个实例。目前获得(hud)最广泛支持的标准 MIB 是 MIB-II,它定义了十个功能组,包括了十类非常典型的网络信息,MIB-II 功能组如图 3.3。十个功能组分别是:(1) 系统组(system gruop):提供了系统得一般信息。(2) 接口组(interface group):包括了关于主机接口的配置信息和统计信息,它是必须实现的,接口组中的对象可用于故障管理和性能管理。(3) 地址转

32、换组(address translation gruop):包含一个表,该表的每一行对应系统的一个物理接口,表示网络地址到物理地址的映像关系。(4) IP 组(IP group):提供了与 IP 协议有关的信息。(5) ICMP 组(icmp group):提供有关 ICMP 实现和操作的有关信息。(6) TCP 组(tcp group):提供了有关 TCP 协议的实现和操作的信息。(7) UDP 组(udp group):提供了关于 UDP 数据报和本地接收端点的详细信息。(8) EGP 组(egp group):提供了关于 EGP 路由器发送和接收的 EGP 报文的信息,以及关于 EGP

33、邻居的详细信息等。(9) 传输组(transmission group):有关每个系统接口的传输模式和访问协议的信息。(10) SNMP 组(snmp group):提供关于(guny)系统中 SNMP 的实现和运行(ynxng)信息。图3.3 MIB-II功能(gngnng)组MIB-II 下面的这十个功能组的有些对象已经废弃或者没有定义,所以在实际应用中只对部分对象操作进行网络管理。3.1.3 SNMP协议(1) SNMP操作SNMP 协议是 SNMP 网络管理框架的核心部分。SNMP 不允许增加或删除对象实例来改变 MIB 的结构,只能通过 SNMP 基本操作来获取或修改相应对象的值,并

34、且只可以访问 MIB 中的叶子节点。在 SNMPv1 中,定义了四种基本的协议操作方法:1) Get:用于获取简单的标量对象的值。可以向绑定列表中追加多个标量对象,一次操作获取多个标量对象的值。2) GetNext:可以检索给定变量 OID 的下一个对象实例的值,主要用于检索表对象和遍历未知对象。3) Set:用于设置和更新对象实例的值。4)Trap:Trap 是由代理向管理站发出的异步事件报告,不需要应答报文。在 SNMPv2 中,增加了两种协议操作 GetBulk 和 Inform,前者是用来获取大批数据的,获取表对象时可代替 GetNext,后者提供了管理者与管理者之间传递随机通报的途径

35、。(2) SNMP报文格式在 SNMP 管理中,管理站和代理之间交换的管理信息构成了 SNMP 报文。SNMP 报文由三部分组成,即版本号 Version、团体名 Community 和协议数据单元 PDU。报文头中的版本号是指 SNMP 的版本,0 代表 SNMPv1,1 代表SNMPv2;团体名用于身份认证;SNMPv1 中有五种 PDU 类型,但只有三种 PDU格式。SNMP 报文格式如图 3.4,关于 PDU 中各个字段的含义解释如下:图 3. 4 SNMPv1 报文格式1) PDU 类型(lixng):五种 PDU 之一(GetRequest PDU,GetNextRequest P

36、DU,SetRequest Pdu,GetResponse PDU,Trap PDU)2) 请求标识:赋予每个请求报文唯一的整数,用于区分(qfn)不同的请求。3) 错误状态(zhungti):表示代理在处理管理站的请求时可能出现的各种错误。4) 错误索引:当错误状态非 0 时指向出错的变量。5) 变量绑定列表:变量名和对应值的表,说明要检索或设置的所有变量及其值,在检索请求报文中变量的值为 0。在SNMPv2中报文的结构与SNMPv1的一样,只增加了几种PDU类型,但 PDU 格式仍为三种,PDU 格式如图 3.5,GetRequest、GetNextRequest、SetRequest、I

37、nformRequest 和 Trap 等 PDU 与 Response PDU 具有相同的格式,减少了 PDU 格式的种类。增加了GetBulkRequest 新PDU类型。图 3. 5 SNMPv2 PDU 格式3.2 SNMP+开发包3.2.1 SNMP+简述SNMP+是 HP 公司提供的开发基于 SNMP 协议的网络管理应用软件的编程接口,是为开发者提供 SNMP 服务的一系列 C+类。 SNMP+不是协议的附加层,也不是现有 SNMP 引擎的封装,而是最小限度地使用现存的 SNMP 库使开发工作更加方便高效。SNMP+的层次结构图3.6,图 3. 6 SNMP+参考图3.2.2 SN

38、MP+核心类根据简单网络管理协议 SNMP 的格式和内容,SNMP+封装了如下几个类:SNMP 类、对象标识符类 OID、字符串类 OctetStr、时钟类 TimeTicks、32 位计数器 Counter32、64 位计数器 Counter64、量规类 Gauge32、地址类 Address、变量绑定类 Vb、协议数据单元类 Pdu、目标类 Target 和 SNMP 消息类。 下面介绍一下开发网络管理应用程序必需的几个 SNMP+核心类。(1) 对象标识符类 OidSMI 中的对象标识符 Object Identifier 是为 MIB 中每个特定对象指定的唯一(wi y)标识符,Oid

39、 类就是(jish)对 SMI 中对象(duxing)标识符的封装。Oid 类重载了赋值操作符和各种比较操作符和构造函数,并定义了获取长度、输出字符串、判断有效性的成员函数。(2) 地址类 AddressAddress 类实际上是一系列 C+ 类的集合,这些类包括 IpAddress 、IpxAddress、MacAddress、GenAddress,这些类提供了简单、安全、具有可移植性的网络地址的使用。Address 是一个抽象类,通过纯虚函数定义了统一的接口,在其派生类中实现。(3) 变量绑定类 Vb变量绑定就是一系列对象标识符 Oid 和 SMI 值的组合,Vb 类就是对变量绑定的封装,

40、可以表示成一个关系,一个 Vb 对象包括一个 Oid 对象和一个 SMI值,通过 Vb 提供的接口,可以方便地为 Oid 和 Value 部分赋值,也可以从 Vb对象中取出 Oid 和 Value 的值。(4) 协议数据单元类 PduPdu 是管理者和代理之间进行 SNMP 通信的基本协议数据单元。SNMP 的Pdu 类是对 SMI 协议数据单元的封装,主要用于 Snmp 类的请求或者以回调函数(callback)的参数形式用于异步的请求和通告。通过 Pdu 类提供的接口可以方便的将 Vb 导入或导出 Pdu。(5) 目标类 TargetTarget 对象表示将要与管理者通信的被管代理。Tar

41、get 对象不仅包括代理的网络地址,同时还包括重传次数、超时信息、SNMP 协议版本等。Target 是一个抽象类,它只有一个子类 Ctarget,CTarget 类使用 SNMP 基本的共同体信息定义SNMP 代理,这些基本的共同体信息包括读、写共同体名以及代理地址等。(6) Snmp 类Snmp 类是 SNMP+中最重要的的类,它是对 SNMP 会话的封装。SNMP+会话的过程包括 Pdu 的构造、传输和接收,开发者定义 Snmp 类的对象来完成会话的管理。Snmp 类提供了六种基本的方法来完成网络管理应用:get(), set(),get_next(), get_bulk(), info

42、rm()和 trap(),如函数名所示,这些方法完成了 SNMP协议的基本功能,通过访问和修改被管理代理上面的 MIB 信息来完成网络管理。4 基于SNMP网络管理的研究在Windows环境(hunjng)下进行SNMP编程,可以(ky)使用WinSNMP API函数。这些函数实现(shxin)了基本的SNMP功能,但直接使用WinSNMP API函数要复杂得多,幸运的是,目前有许多支持SNMP功能的第三方开发包,如UCD SNMP,PowerTCP和SNMP+等,使用这些开发包,可以大大简化Windows环境下的SNMP编程工作。SNMP+是网络管理程序与SNMP代理之间的通信协议,因此SN

43、MP编程也包括两大部分:网络管理程序的开发和SNMP代理软件的开发。SNMP代理运行在特定的网络设备中,由设备生产商负责开发。本论文主要研究在Windows 环境下开发基于SNMP的网络管理程序,不涉及SNMP代理开发方面的内容。4.1需求分析微软的Windows系统(包括Windows NT、Windows 2000、Windows XP、Windows 2003等)支持SNMP,默认是关闭的,可以通过添加组件的方式进行打开并进行简单配置。启动后,代理在主机上启动一个SNMP代理服务器进程,监听从UDP端口161接收的SNMP操作请求。但是还不能使用SNMP获取到系统的信息,因为此时代理支持

44、的MIB-II中还没有定义相关的被管理对象,因此,还需要安装第三方支持的软件。SNMP第三方软件实际上是一个SNMP子代理,系统中原来的代理称为SNMP主代理,主代理与子代理之间使用特有的协议进行通信。通过安装子代理,可以在系统中扩展主代理不支持的MIB。Net-SNMP就是这样的一款第三方软件,安装后即可为SNMP提供信息。本系统是基于SNMP的网络管理系统,目标是建立一个局域网网络环境下的对Windows主机资源的统一管理和控制。因此系统要求将通过SNMP采集到的信息在界面上统一呈现,并对Windows主机进程及设备进行管理,从而实现对网络中的Windows主机(包括Windows NT、

45、Windows 2000、Windows XP、Windows 2003等)及Cisco Router信息的统一监测和管理。4.2功能分析基于SNMP的网络管理系统的关键功能之一为采集被管理Windows主机的信息资源。按照管理人员信息监测和维护工作的要求,信息采集主要涉及以下几个方面,管理人员可以通过采集到的信息数据来判断远程主机的运行情况、业务状态和网络安全。(1) 配置管理对系统的配置有详细了解是网络管理的一个重点,任何(rnh)时候都需要。在需要的时候及时,准确的查看系统配置,包括基本信息、系统信息、IP地址,路由信息,TCP连接,UDP连接,进程信息,软件安装信息。(2) 性能(xn

46、gnng)管理主机的CPU,内存的使用情况(qngkung)对主机的性能影响很大,如果出现问题,将直接影响到主机的正常运行,进而对服务器上正在运行的重要的应用系统带来不可预料的后果,所以,对服务器主机的CPU,内存资源使用情况进行监测是网络管理的首要任务。(3) 故障管理根据预先设置,代理对网络中的异常断开及时发送错误提示给管理站,使管理者最快发现网络中存在的问题,及时进行处理。(4) 网络可达性在网络运行过程中,常常有各种各样的原因,致使网络产生中断,较好的发现这些问题,并进行专业的测试,网络中一点到一点的连通性很是关键。利用ICMP协议的请求应答报文的特点,适合作为连通性测试的工具。4.3

47、系统详细设计通过上面对系统需求的详细分析,对于基于SNMP的网络管理系统的架构和主要功能模块均有了初步模型。下面就要对基于SNMP的网络管理系统的实现环境和功能实现进行详细的设计分析,并主要针对上面需求分析的各个关键部分进行设计。(1) 环境配置使用windows XP 操作系统,软件使用VC+6.0,测试设备,本机,工大瑞普虚拟实验环境,可以模拟如帧中继,路由交换的环境。从 下载SNMP+开发包,解压后进行编译,形成一个静态链接库,下面的步骤将在VC+6.0开发环境中将SNMP软件包编译成一个静态的链接库。在VC6中编辑生成snmp_pp.lib文件,操作步骤如下:1) 在开发环境下,选择“

48、File”-“New”项,在弹出的窗口中选择“Win32 Static Library”,工程名为“snmp_pp”,如图4.1所示。图 4.1 建立一个静态链接库工程2) 单击“OK”按钮,进入下一步,使用缺省选项,如图4.2所示,点击“Finish”完成,建立一个没有(mi yu)文件的静态链接库工程。图4.2 静态链接库工程(gngchng)建立完成3) 在工作区内,为工程添加解压缩后的所有源文件(即snmp+目录下的src目录下的所有后缀(huzhu)为CPP的文件,如图4.3所示)。图4.3 向工程中添加源文件为了让编译的链接库支持SNMPV3,用上步同样方法,要把snmp+目录下的

49、libdes目录下的c文件包含进来。4) 文件添加完后,设置工程编译环境。主菜单选“Project”-“Settings”项,弹出的窗口中,选“C/C+”页,按照下表进行设置,如图4.5所示。图4.5 工程设置5) 目录设置。主菜单“Tools”-“Options”项,弹出的窗口中,选“Directories”页,添加SNMP+头文件所在的目录,如图4.6所示。图4.6 工程目录设置6) 选择“Build”-“Build snmp_pp.lib”项,生成静态链接库文件snmp_pp.lib.7) 将生成的静态链接库文件直接复制到VC安装目录:VC98Lib中去,就可以像使用VC自带的其他库文件

50、一样使用它了。(2) 配置管理利用MIB对象组的OID,将感兴趣的流量或数据进行分类,之后再进行显示出来,达到我们所要的效果。表4.1为与配置管理有关的MIB对象与OID的对应关系表。系统组(System Group)提供了系统的一般信息,对象的OID如表4.2所示。IP组提供了与IP协议有关的信息。IP组包含的对象如表4.3 所示。路由组提供了本地的路由信息。路由组包含的对象如表4.4所示。 通过特定的Oid,不断检测(jin c)CPU和内存的使用信息,并通过简单的公式计算相应数值,并用图表进行显示。1) CPU 5秒内平均(pngjn)利用率的OID:.1.56.0;2) CPU 利用率

51、的OID:.4.1.960.5.1.48;3) 可用物理(wl)内存(Bytes)的OID:.4.1.960.1.0;(4) 故障管理通过SNMP获取设备端口的相关信息需要设备的SNMP代理对一些被管对象的支持。这些被管理对象有的是通用的,比如MIB-II中的某些被管理对象;有的是私有的,例如CISCO定义和一些MIB。当查询到某一接口的值时,由索引对象的值来决定OID,如表4.5所示。Serial0/0的接口变量的OID值为:.1.8.2,即列对象ifOperStatus的OID(.1.8)+索引对象ifIndex值(2)。(5) 网络可达性检测利用ICMP协议进行相关的检测;根据ICMP报

52、文的特点,当报文的类型部分的值为8,代码部分值为0,就是一个回显请求报文。4.4系统用到的主要连接功能的设计定义一些变量,IP地址,团体名,对象标示符,CString ipadd,community,oidstr;获取IP地址,团体名,对象标识,m_ipadd.GetWindowText(ipadd);m_community.GetWindowText(community);m_oid.GetWindowText(oidstr);附加端口信息,ipadd+=:161;初始化Winsocket,Snmp:socket_startup();声明一个(y )UdpAddrwss类对象,UdpAddr

53、ess address(LPCTSTR)ipadd);声明(shngmng)一个Oid类对象,Oid oid(LPCTSTR)oidstr);设置(shzh)版本为1,snmp_version version=version1;int status;创建一个Snmp对象,同时建立一个SNMP连接,Snmp snmp(status, 0, false);创建一个PDU对象;Pdu pdu;创建一个Vb对象,Vb vb;设置vb的OID部分为用户输入的OID串,vb的值部分使用缺省值NULL, vb.set_oid(oid);设置Vb对象并将其添加到对象pdu中,pdu += vb;创建一个CTa

54、rget对象,CTarget ctarget(address);设置CTraget对象的各属性,ctarget.set_version(version);ctarget.set_retry(1);ctarget.set_timeout(100);ctarget.set_readcommunity(LPCTSTR)community);声明一个指向(zh xin)SnmpTarget类的指针变量,供后面的函数使用,SnmpTarget *target;target = &ctarget;发起一个(y )Get操作,status = snmp.get(pdu, *target);如果(rgu)操作

55、成功,将结果分别保存到reply_oid和 reply_value中,if (status = SNMP_CLASS_SUCCESS) pdu.get_vb(vb,0);CString reply_oid=vb.get_printable_oid();CString reply_value=vb.get_printable_value();关闭Winsocket,Snmp:socket_cleanup();4.5本系统的系统结构图如下本系统实现了网络管理五大管理功能的三大功能,配置管理,性能管理,故障管理,网络可达性检测功能。(1) 配置管理和性能管理通过输入的IP地址,团体名和对象标识符OI

56、D进行相应信息的采集并进行管理;(2) 故障管理通过输入IP地址和团体名进行线路选择,进行故障管理。(3) 网络可达性通过输入IP地址,直接给出网络连通性的结果。具体的结构图如下图4.7所示。图4.7 系统结构图5 基于SNMP网络管理的实现本章将在上一章详细设计的基础上,从技术选择(xunz)、程序设计等几个方面进行探讨,最后对基于WMI的网络管理系统进行详细的编程实现,完成系统的各项需求功能。基于SNMP的网络管理系统使用C+语言来实现(shxin),开发平台为V6.0。VC+中使用SNMP+编程的基本步骤为4步:(1) 创建(chungjin)一个Winsocket;(2) 实例化一个S

57、nmp对象;(3) 实例化一个CTarget对象;(4) 调用Snmp对象的操作方法;最后关闭Winsocket;5.1代理设备的配置a. windows主机安装,启用SNMP首先查看本地服务,检查SNMP服务是否已经安装。如没有安装,按下列步骤进行安装。(1) 单击“开始”“设置”“控制面板”“添加/删除程序”“添加/删除Windows组件”,勾选“管理和监视工具”项,再单击“详细信息”按钮,此时出现如图5.1所示的界面。图 5.1 Windows XP操作系统启用SNMP(2) 勾选“简单网络管理协议”项,单击“确定”按钮。安装SNMP后,默认的community字符串是“public”,

58、可以修改为其他字符串,如图5.2。图 5.2 修改community字符串(3) 安装第三方软件Net-SNMP:如图5.3所示。图 5.3 安装net-snmp 时选择安装目录b. 可配置网络设备启用SNMP服务SNMP 代理是运行(ynxng)在可网管设备中的一个管理进程,在网络管理软件运行前要对其进行配置,使它能够响应网络管理站的信息请求,发送 Trap 消息(xio xi),并进行权限限制与身份验证。需要配置的代理设备主要是网络中可网管的路由器与交换机,不同的厂商的不同设备配置有所区别,但都大同小异,都可以通过(tnggu) telnet 进行命令行设置,需要配置的内容我们通过配置一个

59、 Cisco7200 路由器的实例来具体描述:(1) 接受的团体名称和权限,SNMP 服务需要至少一个团体名,一般设备都有默认的团体名,public 为只读权限的团体名,private 为可读写权限的团体名。这两个团体名被普遍地使用,每个人都会被猜到,为安全起见,配置团体名时尽量为不同权限使用不同的团体名,并要为团体名选择强壮的口令,定期更改。配置命令如下:snmp-server community public RO命令配置了一个 RO 权限的团体名 public,(2) 配置访问控制列表 ACL。默认情况下,在仅配置了团体名和权限后,代理会接受来自任何主机的 SNMP 数据包,这使得在团体

60、名在被破译或泄漏后任何主机都可通过代理进行读写操作,所以必须考虑安全性方面,设置访问控制列表,使 SNMP 代理只接受访问控制中主机发出的 SNMP 数据包。配置如下:access-list 3 permit 55snmp-server community public RW 3第一个命令创建了一个编号为 3 的访问控制列表,允许来自网络 的信息流量。第二个命令设置代理只接受来自于网络 的SNMP数据包,并且数据包中的 commnunity 是可读写权限的团体名 public。(3) 发送身份验证 Trap。身份验证是验证团体名或地址是否有效的过程。当SNMP 代理收到错误的团体名,或者不是从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论