基于SNMP的网络设备监控系统设计和实现电子信息工程专业.docx
目录摘要IABSTRACTII关键词III前言1第一章绪论11.1 网络管理的背景21.2 网络管理的发展21.3 网络管理的必要性2第二章SNMP协议的基本原理42.1 SNMP基本结构52.1.1 SNMP协议的概念62.1.2 SNMP协议的组成62.1.3 SNMP协议的类别62.2 SNMP协议的工作过程52.2.1 SNMP协议的基本操作62.2.2 SNMP协议请求62.2.3 SNMP协议的工作方式6第三章系统开发工具43.1 AdventNetSNMPAPI53.1.1 AdventNetSNMP特点63.1.2 AdventNetSNMP核心类库介绍63.2 JFreeChartAPI63.2.1 JFreeChart简介63.2.2 JFreeChart核心类库介绍63.2.3 JFreeChart的应用7第四章系统整体布局44.1 SNMP管理模型54.2 系统设计64.2.1 系统设计原则64.2.2 系统功能设计6第五章系统实现流程45.1 信息获取子系统55.1.1 流程55.1.2 简单信息获取模块55.1.3 具体信息统计模块55.2 MIB文件读取子系统65.2.1 流程55.2.2 MIB文件读取模块55.3 设备监控子系统55.3.1 流程55.3.2 设备状态监视模块55.3.3 实时流量监控模块5结论4参考文献4致谢4附录4摘要随着社会的发展和科技的进步,在这个互联网+的时代,人们的生活已经越来越离不开互联网了。随着互联网用户的日益增长,网络规模呈指数增长,其复杂性不断增加,异构性也越来越高。纯手工已经难以完成对网络系统的管理及对网络设备的监控,人工已经无法完成如此庞大网络的管理与监控,如果不能合理有效地对网络进行管理对网络设备进行监控,就很难维持当前网络的稳健发展,很难提供给用户满意的网络服务。网络管理是互联网发展中的一个里程碑,是互联网+时代不可或缺的一部分,其重要性表现在方方面面。简单网络管理协议(SNMP),是当下使用最广泛的一种网络管理协议,目前为止,它已经更新到第三个版本。该网络设备监控系统正是基于SNMP协议,使用Java语言开发,使用AdventNetSNMP和JFreeehart两个API,实现了5个功能模块:信息获取模块、设备监控模块、MlB文件读取模块、实时流量监控模块、信息统计模块等。关键词:SNMP、网络管理、MIBABSTRACTWiththedevelopmentofsocietyandtheprogressofscienceandtechnology,inthiseraofInternet+,people'sliveshavebecomemoreandmoreinseparablefromtheInternet.WiththeincreasingofInternetusers,thescaleofthenetworkisincreasingexponentially,itscomplexityisincreasing,andtheheterogeneityisbecominghigherandhigher.Itisdifficulttomanagethenetworksystemandmonitorthenetworkequipmentbyhand,butitisimpossibletomanageandmonitorsuchalargenetworkbyhand.Ifthemanagementofthenetworkcannotbecarriedoutreasonablyandeffectively,thenetworkequipmentcannotbemonitored.Itisdifficulttomaintainthesteadydevelopmentofthecurrentnetwork,anditisdifficulttoprovideuserswithsatisfactorynetworkservices.NetworkmanagementisamilestoneinthedevelopmentoftheInternet,isanindispensablepartofInternet+era,itsimportanceinallaspects.SimpleNetworkManagementProtocol(SNMPN),themostwidelyusednetworkmanagementprotocol,hasbeenupdatedtoathirdversionsofar.ThenetworkequipmentmonitoringsystemisbasedonSNMPprotocolanddevelopedwithJavalanguage.UsingAdventNetSNMPandJFreeChart,fivefunctionalmodulesareimplemented:informationacquisitionmodule,devicemonitoringmodule,MIBfilereadingmodule,realtimeflowmonitoringmodule,informationstatisticsmoduleandsoon.Keywords:SNMP,NetworkManagement,MIB前言随着社会的发展和时代的进步,互联网得以快速发展,在这个互联网+的时代,我们的生活变得智能化的同时,网络规模及网络用户的数量正在呈指数型增长,并且IPv4网络地址资源已经耗尽,在如此庞大的互联网环境下,网络管理显得格外重要。起初,网络设计者只是把更多的关注点放在网络的互联互通上面,没有过多的考虑未来网络管理的需求。随着网络规模一天天的扩大,网络需求者的数量急剧增长,对于网络的质量需求也越来越高,为了提供稳定高效地网络环境。网络设备作为网络提供系统的一部分,其运行状态影响着网络质量的好坏,因此对网络设备进行管理和监控是一种非常急迫和必要的举措。因此,基于SGMP的网络管理协议SNMP应运而生,该协议一经推出就得到了众多网络设备生产商的大力支持和广泛应用。SNMP是基于SGMP,在其基础上改进而来的,加入了管理信息结构SMl和管理信息库MIB后形成了现在著名的SNMP协议。SNMP又由于自身的不足进行了多次修改,最终形成了三个版本的网络管理协议,其中属第三个版本的功能更加完善,并且达到了一定的安全要求,是一种比较完善的网络管理协议,在当下还在使用中。网络监控系统其实由网络监视和网络控制两部分组成,又称为网络管理。本系统使用Eclipse作为开发工具,使用Java作为开发语言,调用AdventNetSnmp开发包,实现了网络设备的管理与监控,并通过JFreeChart开发包实现数据的可视化呈现,给用户以最直观的体验。第一章绪论1.1 网络管理的背景随着互联网的飞速发展,互联网的使用群体正在发生着翻天覆地的变化,从专业人才到普通老百姓,人们的生活已经越来越离不开互联网。在日常生活和工作中,人们对于网络的依赖日趋严重,比如通过手机拨打互联网电话、玩手游、社交软件聊天、看视频直播等,通过电脑玩各种大型网络游戏等,光是对于我们这些普通老百姓对于网络的需求都如此之高,那些做开发搞科研的人更是离不开网络。但是为了提供一个稳定、高效地上网环境,需要网络设备的支持,而网络设备发生故障,网络环境将受到影响,为用户提供的网络质量将大打折扣。因此良好的网络管理非常必要,但是由于标准不同意,不同厂商生产的网络设备也存在着很大的差异。使用统一的网络管理标准就显得格外重要了,使用统一标准可以实现对网络设备高效的管理。1.2 网络管理的发展网络管理是由对网络设备的监视和对网络设备的控制两部分组成的,统称为网络设备监控,是对物理网络设备、网络管理软件和网络管理人员等众多资源的协调,网络管理人员通过网络管理软件来实现对物理网络设备的监视与控制。当网络及网络设备出现异常时,管理系统应该能够及时发现,高效处理,并且做以调整保证网络系统的高效可持续运行。管理员通过对网络管理系统整体资源的管理与分配,实现了F-CAPS,即实现了对配置、故障、性能、安全、计费等五项的管理。随着科技的发展和互联网的高速发展,网络管理也随着发生了空前的发展,网络的巨大需求推动了网络管理技术的发展。从被管理的对象来分,可以分为对主干网络的管理、对接入设备的管理、对用户行为的管理、对软硬件信息的管理等。网络管理的发展伴随着网络设备管理软件的发展,网络管理技术的发展推动了网络设备管理软件的发展,网管软件变得越来越实用、越来越智能化。网络设备管理软件根据其历史发展,可以分为以下三代:第一代的网络设备管理软件是命令行方式,例如ping命令可以实现网络的诊断,它是TCP/IP协议的一部分,最简单的功能就是能够判断网络的联通性,加上一些其他的参数可以实现其他一些诊断。这种命令行方式对于使用者来说,就必须懂得网络专业知识,熟悉命令行指令,这就使得起初的网络管理人员必须是专业人才,其他人员无法进行管理操作。第二代网络设备管理软件有了GUI图形化界面。用户对命令行的需求大大减少,可以通过图形化界面轻松实现对多台设备的配置管理。大大提高了工作效率。但是也可能因为人为因素造成误操作,这就使得网络设备管理不够严谨。不过,图形化界面的出现,大大降低了网络管理人员的工作量,对管理人员的专业程度也有所下降,通过GUl普通人通过简单学习就可以实现网络设备的管理与配置了。第三代网络管理软件走向了自动化和智能化。第一次实现了网络管理的自动化实现,在GUI可视化界面的基础上,只需管理员键入设备和网络资源的分配关系,就能够实现网络设备的自动配置和管理,并且具有调控功能,实现了网络设备管理的智能化操作。当前使用最广泛的网络管理软件大多基于SNMP协议,协议的发展也推动着网络管理软件的更新与发展,下一章我们将具体介绍SNMP协议的起源、发展以及对网络管理的重要作用。1.3 网络管理的必要性互联网带给人们的便捷式人人知晓的,当今社会,日益增多的网络用户享受着互联网带来的便利,无论是休闲娱乐、商场购物,还是工作,都已经离不开互联网了,互联网改变了人们的生活和工作方式,给人类带来了无法估量的便利。但是正是由于人们对于网络的过分依赖,使得人们对于网络质量的需求越来越高,只有进行网络管理才能保障网络环境的稳定、高效运行。当然网络给人们带来便利的同时也存在着很多安全隐患,如病毒、木马的入侵,这就需要用到防火墙之类的软硬件工具了,防火墙作为网络设备之一,对其进行监控能够保障网络环境的安全。网络管理对于企业管理来说也相对重要,公司员工上班期间可以通过互联网进行一些与工作无关的操作,比如浏览与工作无关的网页,逛淘宝、刷微博、玩游戏、炒股等,这些都会占用大量的工作时间,损害公司的利益。公司员工通过社交软件聊天不仅浪费工作时间,还有可能在无意中泄露公司机密,损害公司利益。因此,对公司网络进行管理,搭建专用的内网,防止访问外网是一种不错的举措。当然,除了企业,我们个人用户的网络环境也是需要得到保障的,一套行之有效的网络管理软件可以为我们提供最佳的上网环境。第二章SNMP协议的基本原理SNMP是一种基于TCP/IP的,由SGMP发展演变而来的网络管理协议体系,由SMl(管理信息结构)的定义和访问MIB的协议规范两部分组成,网络管理信息库中包含着许多与TCP/IP协议运行相关的信息。下面将介绍一下SNMP的基本结构及其实现原理和工作方式。2.1 SNMP基本结构2.1.1 SNMP协议的概念要实现对众多网络设备的管理,SNMP协议主要是通过管理站和代理设备间信息的交互来实现的。基于SNMP协议的网络监控系统要求所有的管理站和代理必须是通过TCP/IP协议来连接的,这样能保证数据的可靠传输。对于那些不支持TCP/IP协议的老旧设备或者小厂商生产的基于其他协议的网络设备,管理站是无法直接进行管理的。这就需要一种专用的协议转换工具,因此委托代理这一设备应运而生。委托代理的工作时管理这些不支持TCP/IP协议的设备,作为中间连接枢纽,起着协议转换的作用,按照专用的协议与被管理设备进行通信,并且通过SNMP协议将通信结果反馈给管理站。从而实现了管理站对这些设备的简洁管理与监控。管理系统通过一些专用的指令操作来获取被管理设备的信息,如Get>GetNexhSet、Tr叩等。其中Get指令用于检索数据,获取一些设备的基本配置信息和运行状态信息;Set指令用于修改设备参数,GetNeXt指令则用于扫描管理信息库,并提供连续检索数据的方法;TraP指令则用于被管理设备运行异常时,代理向管理站发送异常报告信息。管理站周期性地使用Get操作轮询一遍所有代理,来获取设备相关信息,代理收到请求后及时向管理站响应。在设备发生异常时,由代理向管理站发送异常报告,无需管理站的响应。2.1.2 SNMP协议的组成基于SNMP协议的网络监控系统主要由三部分组成:被管理设备、代理、网络管理系统。网络中被管理的每一个设备都有其档案信息,存储在管理信息库(MIB)中,用于储存该设备的管理信息。通过SNMP协议,网络管理系统能获取这些设备信息。被管理设备,又称为网络节点,可以是主干网络、接入设备等。SNMP代理是被管理设备上运行的一个网络管理程序,可以获取该设备的所有信息,并且在收到管理站请求的时候将这些信息发送给管理站。管理站通过对收到信息的分析作出处理。网络管理系统由大量的软硬件资源、事件处理程序和网络管理程序构成,实现对网络设备的实时监控。对于一些厂家生产的不支持TCP/IP的设备,不能直接用SNMP来进行管理,这就需要一个协议转换的部件来实现管理站对该网络设备的管理,因此引入了委托代理。委托代理可以实现对若干台不支持TCP/IP设备的管理,委托代理作为桥梁,与被管理设备通过专用协议进行通信,通过接收管理站的请求,代替被管理设备将其信息发送给管理站。这样,管理站就实现了对该设备的间接管理。2.1.3 SNMP协议的类别SNMP协议是在SGMP协议的基础上通过不断改进而来的,从20世纪90年代开始,SNMP协议历时十多年开发和完善,目前有三个不同的版本,分别是SNMPV1、SNMPv2.SNMPv3,期间还有一些过渡版本,这里不将其视为单独的版本。作为基于SGMP协议的改进版本的SNMPVl,由于其简单和易于实现,一经发布就得到许多制造商的大力支持和广泛的应用。但SNMPVl只是刚从SGMP过渡过来的一个新版本,暂时弥补了网络管理协议发展阶段之间空缺,但其没有安全机制,没有认证功能,不能防止偷听。为了修补缺陷,提高可用性,又修订了其改进版本,安全SNMP,即S-SNMP,增强了安全方面的功能,但在功能和效率方面仍有缺陷。接着又修订了SMP对SNMP进行了扩充,从而适用范围更广,简单易实现,大大提高了效率。通过对S-SNMP和SMP的商讨,开始了对SNMP的扩展,增强其安全性,包括协议功能和管理信息库以及安全方面的扩展,最终实现了第二个版本SNMPV2,但是该版本安全机制过于复杂,难以实现,对代理的配置变难,网络发现能力受到限制,失去了SNMP的简单性原则。最终丢弃安全功能形成SNMPV2C。SNMPV2没有达到一定级别的安全要求,无法提供商业级别的安全保障,为了适应各种操作环境,实现跨平台操作,便于己有系统的向SNMPV3过渡,方便地建立和维护管理系统。在工作组的不懈努力下,终于实现了安全性更高,具有高层管理功能并且兼容之前所有版本的SNMPV3,从而形成了比较完善的SNMP新标准。2.2 SNMP协议的工作过程2.2.1 SNMP协议的基本操作SNMP仅支持管理对象值的检索和修改等简单操作。提供三种对MIB对象操作:Get:用于管理信息库中标量对象值的检索。Set:用于管理信息库中标量对象值的修改设置;Trap:代理用陷入报文向管理站报告被管理设备的状态变化和故障信息等。MIB采用和域名系统DNS相似的树形结构,可以按照其层次结构逐个访问管理信息库树形结构中的叶子结点,然后对MIB节点进行解析。2.2.2 SNMP协议请求GetRequest,检索变量名所指的对象实例。GetNextRequest,检索变量名所指的下一个对象实例,可以有效地搜索表对象。GetResponse,对于GetRequest请求的响应。SetRequest,用于设置或更新变量的值。GETBULKREQUEST通常用于检索大量数据,特别是从大型表中检索数据。GETBULK请求是通过给出OID列表以及最大重复值和非重复值进行的。INFORM,支持发送通知请求。Trap,当被管理设备发生故障时,由代理主动向管理站发出的异常报告。2.2.3 SNMP协议的工作方式SNMP有两种工作方式:轮询和事件驱动两种。轮询是指管理站周期性地发出请求,挨个对所有代理进行请求,是管理站主动在特定的时间间隔内,不间断地向代理发送请求,代理不断地做出响应,从而实现请求应答的轮询方式。而事件驱动从字面意思就可以看出,是由于某个特定的事件发生时才会启动的一种操作,即当代理在很长一段时间内没有收到管理站的请求或检测到异常时,主动使用TraP操作向管理站发出异常信息。第三章网络设备监控系统网络设备是指可以接入到的网络的各种服务型物理设备,如我们日常生活中接触比较多的计算机(包括个人电脑和服务器),路由器,打印机等,还有那些我们日常生活中离不开但又不常见的设备,如交换机、光缆、网络接口卡、无线接入点、调制解调器等为网络连通、信息交互提供着不可或缺作用的设备,也有为网络安全提供保障的防火墙等设备,是相比软件来说真实存在于我们的生活中,看得见摸得着的物理设施。而网络设备监控系统是指通过软件或者硬件对网络中的这些物理网络设备进行管理和监控,对其状态实施实时监控,对正常工作状态下的网络设备进行管理,基本信息的获取,设置等,当监测到设备发生故障时能够及时发现,迅速定位并高效地解决故隙问题,从而为用户提供一种稳定、高效的上网环境。3.1 网络监控系统的分类网络监控系统可以分为基于软件的和基于硬件的两种系统设备;根据其发展历程可以分为命令行管理方式、图形化界面管理方式、智能管理软件系统方式;根据其基于的网络协议,大致又可以分为三类,基于SGMP的、基于SNMP的和基于CMlP的网络监控系统。3.1.1 基于构成方式的分类硬件监控系统主要用于网络管理站的构建,管理并且监控代理设备,和代理设备交互,从而掌握整个管理系统及被管理设备运行状态,起着统筹全局网络的作用,为整个监控系统的实现提供物质保障。而软件监控系统主要指运行在代理设备上的网络管理软件,它可以实现对被管理设备信息的获取,信息的处理,以及各种参数的设置。然后将被管理设备的信息及运行状态信息发送给管理站,从而实现管理站对众多网络设备的高效监控。接下来我们主要了解一下基于软件的监控系统,下面将介绍其基本构成、特点及应用。3.1.2 基于发展历程的分类任何事物的发展都是循序渐进的,监控系统也是,随着时代的发展,科技的进步,监控系统也越来越智能化,从单调的命令行到用户友好的GUl图形化界面监控系统,再到智能化的可触控、语音指挥管理的监控系统,这都是科技发展的见证,更是网络管理发展时上的里程碑。早起的网络监控,其实称不上真正意义上的网络监控,因为当时网络设备计较少,网络的管理与监控基本都是人工实现的。包括网络设备的配置,设置修改设备参数信息,获取设备信息,分析并统计设备信息并作出处理等,都是人工通过复杂又单调的命令行来实现。由于是通过命令行来实现的,所以对于网络管理员的素质要求比较高,必须是专业技能比较过硬的人员,要不然一般人员很难实现其操控的。随着GUl的出现,这种用户友好的可视化界面受到大众的一致好评,也对网络管理设备开发人员提供了创新的机遇,毕竟图形化界面给人以更直观的体验。随后开发出了基于GUI的网络管理设备,通过可视化操作,管理员可以简单直观地完成对被管理网络设备参数的设置,信息的获取及信息和故障的处理,大大节省了人力物力,基本实现了半自动化网络设备的监控与管理。随着智能化设备的出现,网络设备的管理也走向了智能化,终于摆脱了人工的管理,实现了真正意义上了网络、网络设备和管理之间的智能化结合。管理员只需要把用户的信息、设备的信息和用户网络资源的分配关系搭建好,管理系统就能自动实现设备信息配置,管理信息收发,自动调整参数等功能,从而大大节省了人力物力,实现了智能化网络设备管理。3.1.3 基于协议的分类网络设备的管理是随着网络管理协议的发展而发展的,这些协议在很大意义上影响着网络设备监控软件的发展,这些协议的发展自然也是随着科技的发展而慢慢完善的,下面来介绍一下基于这三种协议的网络监设备监控系统。在网络管理的早期,当时所用的网络管理协议为SGMP,简单网关监控协议,该协议是基于TCP/IP的,由其名称可以看出,当时的网络管理协议功能比较单一,主要是用来实现对网关设备监控的,并没有加入安全机制等,这种简单的网络管理协议无法适应网络设备大规模增多的发展,势必会被淘汰。随着网络设备数呈指数增长,网络管理变得越来越困难,难以实现人工管理,基于SGMP的SNMP随之应运而生,它是基于SGMP改进而来的,增加了一些必要的模块,实现了轮询和事件驱动两种操作来实现对网络设备的管理与监控。该协议构成的网络管理系统主要由SNMP代理、被管理的网络设备和网络管理系统组成,管理站周期性地向代理发出轮询信息,请求代理的响应,代理则响应管理站的请求,向其发送被管理设备的相关信息和运行状态等信息,并且代理在被管理设备发生故障时可以第一时间反馈给管理站,从而实现了网络管理的高效进行。CMIS/CMIP是国际标准化组织于20世纪80年代基于SNMP协议推出的一种网络管理协议,也称之为OSl系统管理标准,旨在构建开放系统互联,实现了获取、控制和接收网络设备信息和状态的成效。对SNMP的缺陷进行了改进,基本实现了网络状态监控,网络设备的配置修改,网络信息的交互等功能,是一种更为复杂、更为全面详细的网络管理协议。相比SNMP,其工作方式仅仅是通过实践报告来完成网络管理的,管理站和代理之间的信息交互式通过CMIP和CMIS来实现的。不仅可以用于管理系统和网络设备的信息传递,还可以实现SNMP不能实现的功能。CMlP可以实现对预先设定时间的终端无法访问服务器时及时向管理站发出事件报告,从而提高了管理效率,降低了人工参与。而且CMIP解决的很多SNMP难以解决的难题,例如增加了安全机制,支持验证、访问控制和安全日志等安全举措,大大提高了系统的安全性。但是,这些复杂功能的实现是以牺牲网络系统资源为代价的,其网络的网络资源将近是SNMP的10倍,这一复杂性人们对其失去的信心。虽然该协议不适用当下的网络管理系统,但是其适合结构复杂、规模庞大的网络,可以作为未来网络管理发展的方向。3.2 网络监控系统的应用无论是SGMP.SNMP还是CMIP,他们都是基于TCP/IP协议族的网络管理标准,是在IP网络中管理网络设备(也称为网络节点)的标准协议。网络设备监控系统的实现离不开这些协议的支持,但又跟这些协议相辅相成,共同肩负着网络设备管理与监控的任务。当今世界,网络设备规模如此庞大,要保证良好的上网环境,必然少不了对网络设备的管理与监控,只有网络设备正常运行,才能为网民提供一个良好的、稳定的、高效的上网环境。网络设备监控系统的任务就是对网络设备进行管理与监控,对其上线时间、IP地址、MaC地址、目标接口数、端口信息、进程信息、TCP连接信息、磁盘信息、接口信息、路由信息等进行监控,对其MIB(ManageInformationBase)管理信息库的信息进行查看分析,对其实时流量进行监控,从而实现对网络设备运行状态的实时监控。第四章系统整体布局4.1 系统主要开发工具由于该系统是基于SNMP协议的,开发需要一些API作为技术支持,当下开发网管软件的工具和源码包有很多,如基于JaVa的SNMP4J,基于C+的SNMP+,基于C的Net-SNMP和AdventNetAgentToolkitCEdition工具包。该系统采用Java语言来实现系统功能和界面布局,采用eclipse作为开发工具,在该系统的实现中我使用的是adventNetSnmpAPI,它是adventNet公司提供的一个相对比较全面的网管系统开发包。虽然JaVa可以实现GUl可视化界面,但是想以表格或者曲线图的方式显示统计信息还是比较困难的,因此引入JFreeChart这个开发包,JFreeChartJava¥台一个强大的开源图表库,可以称其为图表工厂,因为其涵盖各种图表格式,并且可以作为PNG等格式输出以及和PDF、Excel关联等。有了这个开发包就可以简单高效地输出网管信息,将其统计信息以图表的形式呈现出来。4.2 SNMP管理模型基于SNMP协议的网络监控系统主要实现网络管理软件和被管理网络设备之间的通信,通过管理站和SNMP代理之间请求响应式信息的交互,实现对网络设备的管理和监控。基于SNMP协议的网络监控系统受到众多软硬件厂商的大力支持,目前支持的网络设备包括:PC(包括个人计算机和服务器)、路由器、交换机、集线器、无线接入点、防火墙等一系列为网络持续稳定发展提供可靠保障的服务型物理设备。SNMP网络设备监控系统应该包括管理信息库、管理信息结构及SNMP协议三部分,管理站通过SNMP协议的一些指令监视和控制所有的网络设备,负责网络设备的配置、运行状态的监视和对代理TraP报告的接收、各种故障的高效处理等。图4-2表示的是SNMP的网络管理模型,这四个实体之间的关系构成描述了该系统的整体结构。SMI为管理信息提供了结构支持,MIB为管理设备提供了管理信息库,从而使得管理站可以方便地查询管理信息。运行网络管理程序的终端称为网络管理站,而SNMP代理是运行在被管理网络设备上的管理软件。管理站通过周期性地向代理发出请求,获取被管理网络设备的运行状态信息;而代理负责响应来自管理站的请求,并在网络设备发生故障时向管理站及时报告异常事件。运行代理的网络设备可以是PC、集线器、路由器、交换机、网络打印机、防火墙等,这些设备成为被管理设备。还有一种特殊的代理,即委托代理,主要起着协议转换的作用,通过专用协议对不支持TCP/IP协议的设备进行管理和监控,并通过SNMP协议将管理信息发送给管理站,从而实现管理站对这种设备的间接管理与控制。4.3 系统设计4.3.1 系统设计原则一个好的系统前期是进行过很多方面的设计的,系统设计的好坏关乎系统的优劣,该系统的设计遵循实用性、适用性、标准化、可扩展性、可选择性等众多因素。实用性:系统设计的源头是客户需求,结合用户需求,设计相应的功能,该系统主要实现信息的获取、统计和设备状态及流量的实时监控。适用性:适用性是评估一个系统体系结构好坏的第一标准,即体系结构是否符合适合与软件的“功能性需求”和“非功能性需求二标准化:现在的绝大多数网络设备都是基于SNMP协议的,但是不同厂商生产的网络设备难免有所区别,因此对于系统的设计,选取一个标准的接口对于一个系统的可持续发展是非常必要的。可扩展性:网络协议在不断更新,网络设备也是随着协议的发展而更新换代。扩展性也可以说是兼容性吧,现在的很多网络设备都是基于SNMP的,系统的设计应该满足设备的上下兼容,也要为日后设备的更新换代做好相应的扩展。可选择性:该系统的实现是基于SNMP协议的,但是SNMP协议有三种版本,在本系统的实现中,并没有指定使用哪一种版本的协议,用户可以根据自己的需求和喜好来选择要使用的协议版本。4.3.2 系统功能设计随着科技的进步,计算机网络的的从刚开始的诞生到如今惊人的发展速度,网络管理也经历了从手动到自动化管理的过程。早期的计算机网络规模小,结构简单,网络设备也相对单一,人们对网络的依赖也没有现在这么庞大。随着互联网技术的日趋成熟,网络规模日益庞大,结构也越来越复杂,简单粗暴的网络管理方式己经不适合现在这个时代的网络,所以网络管理应该向高效和智能化方向发展。网络设备管理系统应该具备如下几点:设备信息的获取:SNMP协议中的Get命令可以用来获取信息,可以通过Get命令来获取网络设备的名称、IP地址、MaC地址、上线时间、端口数等。设备运行状态的监控:SNMP协议中的Trap命令可以将代理检测到的异常信息转发给管理站,可以对设备的开关状态、运行状态及邻接设备变化状态监控等,并且以日志的形式将监控数据记录下来,存储在M出中,待管理站请求响应时,将这些数据发送给管理站,供管理站对设备信息的分析与管理。MIB文件的读取:从本地上传某个MIB文件,在系统中可以通过树形结构将MIB复杂的文件直观地展现出来,使得管理者可以方便的、层次化地、直观地浏览MlB文件信息。实时流量监控:通过给定的IP地址,获取对应设备的流量信息,并将流量信息变化以折线图的形式呈现出来。信息统计:通过给定IP地址获取对应设备的进程信息、TCP连接状态信息、磁盘信息等,做以统计并以表格的形式表现出来。第五章系统实现流程5.1 信息获取子系统5.1.1 流程众所周知,我们可以通过IP地址来定位一个网络设备所处的地理位置,在网络设备管理系统中亦是如此,我们可以通过获取对应网络设备的IP地址,再根据其IP地址获取其他信息。在该系统信息获取的过程中,首先要获取目标设备的IP地址,获取失败则报错,获取成功则通过TCP协议进行和该设备的连接工作,连接失败则报错,连接成功则进行下一步,取回该设备的OID的值,选择该OID对Get包进行封装,发送并且返回已经获取的信息,对结果加以分析显示,流程如下:5.1.2 基本信息获取模块通过基本信息获取模块可以获取到设备的基本信息,在SNMP协议中是通过Get指令来实现信息的获取。用户界面如下图所示:主动堡都127.0.0.1(获取目标信息)上线时间未连上上机名称机mac目标接口数从用户界面图可以看出,用户可以设置好IP地址,通过点击“获取目标信息”这一按钮,来实现和对应设备的连接。该连接是基于TCP的,能够实现数据的可靠传输,如果连接失败,输出失败原因;如果连接成功,则通过SNMP协议的Get操作来获取到对应设备的上线时间、主机名称、MaC地址、目标接口数等基本信息。5.1.3 具体信息统计模块MIB管理信息库作为网络管理的档案室,存储着设备的各种信息,该模块主要用于获取管理信息库中的数据。通过AdventNet开发包中SNMPTable类来获取对应连接设备的基本信息表,将其以表格的形式呈现出来。如TCP连接表中监听状态、本地地址、本地端口、远程地址、远程端口等五项参数。界面如下图所示:I进百信总表Jtcpit搐长磁献他总衣I抬口佑总表J晞山伯.米tcpConrStateIcpConnLocalA.XcpconnLocalPortIcpConnRemAd.IcpConnRefnPort18571listen(2)0.0.00135000.0lsten(2)0.0.00445000.057476Iisten(Z)0.0.0.028690.0.0.040966listen(2)0.0.0.0336730.0.0.038990listen(2)1270011033000.059501Iisten(Z)127.0.0.15152000.059586listen(2)192.168.0.51390.0.0.082665.2 MIB文件读取子系统5.2.1 流程MIB文件读取模块流程如图所示,该系统中默认的MIB文件是RFC1213-MIB,用户可以对其解析,也可以先从本地上传MlB文件进行解析。如果上传MlB文件失败则报错,成功则对此MIB文件进行解析,使之产生树状结构。然后根据需要选择某个节点,设置连接信息后进行连接,连接失败则报错,连接成功就可以获取目标的相关信息,最后再对获取的信息进行显示。5.2.2 MIB文件读取模块在该系统的设计中是通过AdventNet开发包提供的MibTree类来对各种MIB文件进行解析的,通过解析生成树形结构,并根据所选MlB节点对目标设备进行Get操作,GetNext等操作来获取对应网络设备的响应的信息。用户界面如图:(LOadM旧)(UnloadMIBJ)QDescription(Clear(GET)(GETNMXr)Response PDU received from localhost, community: publicOBJECT ID: 1.3.6.1.2.1 1.5.0RESPONSE: KAKA-PCiMibModules1213-M旧org3dod$3internetdirectory?曰mgmtq曰mib-2曰systemsysDescr豫SysObjectlE修SysUpTime一>SysContactsysNam*SysLocatio,SysServicejO-口InteifacesO-Plat<lI二Uif从图中可以看出,MIB文件可以上传和删除操作,点击LOadMlB可以从本地上传MIB文件;点击UnloadMIB可以从该系统中将选中的MIB文件删除掉;选中某个MlB节点,点击DeSCriPtiOn按钮则可以查看该节点的相应描述信息;点击GET、GETNEXT按钮则可以获取目标设备的响应信息。有一款叫做MIBBrowser的软件可以通过连接到对应IP地址的设备上,查看其t信息、MIB节点信息并且可以对MIB文件进行编译等操作。虽然该模块的实现的功能比较简单,无法和MlBBroWSer完整的MIB文件操作相提并论,但作为网络设备监控系统的一部分,能够实现查看MIB节点的信息。5.3 设备监控子系统设备监控子系统主要用于监控设备是否正常运行,监控方式有两种:主动监控和被动监控。主动监控通过轮询方式定期地向被监控设备发送请求信息,通过收到的响应信息来判断被监控设备的运行状态,从而实现对网络设备的主动监控。当被监控的设备配置信息出错或运行状态发生异常时,要采用Tr叩操作主动向监控系统发送异常信息,请求监控系统来处理该异常,监控设备通过对收到的信息进行分析并且加以处理从而实现对被监控设备的有效监控。如图所示,设备监控子系统刚开始时要进行初始化,然后根据是否接收到信息来选择继续等待还是解析收到的信息。若未收到信息,则在时钟周期内继续等待,超时结束;接收到信息则对接收到的信息进行解析,根据解析的结果做出相应的处理并且将接收到的信息显示出来,最后显示统计信息。5.3.1 设备状态监控模块设备状态监控模块主要采用被监控设备向管理设备发送的Trap包来实现对设备状态的监控。设备的运行状态并不需要通过轮询周期性地去检测,因此该模块通过TraP