基于SNMP的WEB分布式网络管理系统设计的实例

上传人:无*** 文档编号:86701082 上传时间:2022-05-08 格式:DOC 页数:26 大小:1.09MB
收藏 版权申诉 举报 下载
基于SNMP的WEB分布式网络管理系统设计的实例_第1页
第1页 / 共26页
基于SNMP的WEB分布式网络管理系统设计的实例_第2页
第2页 / 共26页
基于SNMP的WEB分布式网络管理系统设计的实例_第3页
第3页 / 共26页
资源描述:

《基于SNMP的WEB分布式网络管理系统设计的实例》由会员分享,可在线阅读,更多相关《基于SNMP的WEB分布式网络管理系统设计的实例(26页珍藏版)》请在装配图网上搜索。

1、4.5基于SNMP的Web分布式网络管理体系结构设计4.5.1体系结构设计容论文对Web服务技术在网络管理中的应用情况进行了详细的分析,并设计实现了一个基于SNMP的Web分布式网络管理系统模型SWNMS。在SWNMS中,主要做了以下几个方面的研究:1、基于SNMP的网络拓扑发现,以及配置管理、性能管理、故障管理的部分实现。2、网络管理系统实现所采用的技术的研究。3、基于Web网络管理系统设计中安全机制的解决办法。4.5.2 SWNMS体系结构模型传统的基于SNMP的网络管理模型中,管理站在整个网络中一旦确定下来,其位置也就固定,很难随着管理员当前的位置在网上移动。为了解决该问题,提高网络管理

2、效率,本文将SNMP与Web技术结合,构造了一种基于B/S结构的SNMP网络管理框架,如图4.6所示。由于Java的跨平台特性和丰富的图形表现能力,因此被该模型用来向管理者提供GUI。它接收管理者发出的各种监控命令,然后调用SNMP管理器向SNMP Agent发出相应的控制报文,当SNMP管理器返回响应后把处理结果以图文方式呈现给管理者。SNMP管理器接收Java Applet发来的控制命令,通过SNMP协议传递给SNMP Agent执行,并把其返回的响应提交给Java Applet。同时SNMP管理器还负责监听被管设备资源发来的报警通知,提交给JavaApplet,由JavaApplet向管

3、理者报告以便及时处理。整个管理模型由JavaApplet管理程序、 Server、SNMP管理器和代理几部分组成,各部分的作用功能如下:1Java管理程序嵌在网页中的Java程序,为用户提供管理接口,充当形式上的管理站的角色。通过与SNMP管理器的交互,来完成管理任务的下发以及显示由代理发来的响应信息和Trap信息。管理程序还负责将通过SNMP管理协议获得的网络拓扑信息显示在屏幕上。2Web服务器负责接受管理员登陆,提供下载Java Applet管理程序,显示网络管理工作面。本模型采用多服务器群集技术,提高网络数据处理速度,均衡网络负载,缓解网管主机数据处理瓶项。3SNMP管理器SNMP管理器

4、是整个模型的核心部分,也是事实上的管理站。由SNMP用户接口模块,SNMP命令生成器和SNMP命令解释器三部分构成。其中SNMP用户接口模块负责监听来自Java Applet的管理请求,SNMP命令生成器负责将管理请求封装成相应的SNMP数据报文,然后发送给代理。SNMP命令解释器负责监听来自Agent的信息该信息可能是某个命令的响应,也可能是一个Trap消息,并按照指定的格式对其进行分析,然后发给JavaApplet。4代理Agent这里的Agent的作用与传统方式下的Agent功能是一样的,一是负责搜索器所代理的设备的信息,并将它们记入MIB;二是负责响应管理站发出的管理命令并发出相应的反

5、馈信息。4.5.3 SWNMS数据传输流程以客户端发送Request请求为例,管理员通过管理界面取得认证后可以通过Java Applet小程序向SNMP管理器发送Request请求,SNMP管理器接收到请求命令后,按照Agent私有协议将数据加密,然后组装成SNMPv2数据报文,经BER编码后发送给Agent代理,Agent收到报文后,进行解密,验证权限后即可进行协议请求操作,完成Response响应。数据流程如图4.7所示。4.5.4相关MIB对象集为了适用于各厂商的网络设备,使本系统具有很好的兼容性,本文的网络管理系统不使用私有的MIB,尽量使用标准通用的MIB。本系统涉及到的MIB有MI

6、B-2、Bridge-MIB30和Host Resources MIB31,分别定义在RFC1213、RFC1493和RFC2790中。其中MIB-2包含十个功能组,它定义了本文配置管理、性能管理、故障管理等要用的大部分管理对象,目前几乎所有的网络设备都实现了此MIB;Bridge-MIB主要实现在网桥和交换机设备中,包含dot1dBase组、dot1dStp组、dot1Sr组、dot1dTp组和dot1dStatic组,主要定义了在透明模式下桥接实体操作管理需要的对象,本文使用其中的地址转发表帮助二层网络拓扑结构的发现;Host Resources MIB定义了用于主机管理的对象集,该MIB

7、对于某些用于通信服务的设备如路由器、交换机、网桥等不一定适用,但是包含了所有Internet主机共有的属性。它定义了6个功能组:Host Resources System Group、HostResources Storage Group、Host Resources Device Group、Host Resources RunningSoftware Group、Host Resources Running Software Performance Group、HostResources Installed Software Group,包含了主机基本信息、存储器信息、系统设备信息、安装软

8、件、运行软件、运行软件消耗资源等管理对象,在本系统中用于监视管理重要的网络服务器,如FTP服务器、DNS/DHCP服务器、Mail服务器等。对使用的MIB对象按管理功能分类十分重要,各种网络管理的基础就是获取或是设置相应的MIB对象值,下面以表格的形式具体描述各类MIB对象。4.5.4.1拓扑结构对象与网络拓扑结构信息相关的MIB对象有MIB-2 IP功能组中的路由表IpRouteTable,地址表IpAddrTable,at功能组的地址解析表atTable和Bridge MIB中的地址转发表等,其具体描述如下:4.5.4.2配置管理对象本系统中的配置管理信息主要用来保存一些比较固定的信息,包

9、括MIB-2中系统组的对象信息,如设备的名称、描述、启动时间、位置、负责人等,还有Host Resource MIB中的主机安装软件集合、主机硬件配置、存储器与处理器等信息。这些和配置管理相关的MIB对象见如下表格:4.5.4.3性能管理对象性能管理的目标是衡量和呈现网络特性的各个方面,是网络管理最重要的部分,用到的管理对象也是最多的,在这里本文只列出Host Resource MIB中的运行软件组、运行消耗组,MIB-2中的IP组、TCP组、UDP组。4.5.4.4故障管理对象故障管理主要包括以下几下方面:定义各种性能参数的阈值,超出阈值产生故障信息存储在数据库中;定时查询设备的接口状态,如

10、有故障产生故障信息存储在数据库中;接受代理设备的各种Trap故障信息存储在数据库中;主动轮询各种故障信息,向管理员报告故障源,以便管理员查询故障信息与历史解决经验。本文所采用的故障管理对象如表4.11。第五章基于SNMP的Web分布式网络管理系统的设计与实现5.1系统平台5.1.1系统应用平台本网络管理系统应用平台是奥罗拉软件公司的局域网络。奥罗拉软件公司是一家从事基于Web、WLT、数据库以及VPN等多种数据处理技术、网络互联技术的医疗保险信息处理机构。其网络结构主要包含两个网段,实现域和Workgroup组的划分。公司是一家信息处理机构,因此网络包含Web服务器、Ftp服务器、数据库服务器

11、、Mail服务器、DNS/DHCP服务器、域服务器、文件服务器等多种类型的服务器。这些服务器由管理员统一管理,集中控制。公司通过Cisco2600接入外网,外网与公司部局域网由硬件防火墙作为网关,主要用来进行网络访问控制以及防止病毒黑客入侵。网络设备主要采用Cisco公司的网络产品,支持SNMPv1和SNMPv2。其网络拓扑结构逻辑示意图如图5.1所示。5.1.2系统运行平台1开发环境开发平台:Windows2000操作系统开发工具:J2SE JDK6.0,Advent SNMPv2c API Package,Eclipse,SQLServer2000。2运行环境运行的Web服务器为Tomca

12、t Web服务器。服务器为Intel Pentium 1.8G,512M存,40G硬盘,操作系统Win2000。客户端运行IE6.0或Maxthon1.5.9。5.2系统实现关键技术5.2.1 SNMP平台SNMP平台是实现网络管理系统的基础,本课题选用的是美国Advent公司提供的Advent SNMPv2c Package32,它具有以下特点:支持SNMPvl和SNMPv2,具有对MIB的Parser功能,并可通过URL支持装载多个NUB。实现了SNMP协议栈的基本功能如:snmpGet,snmpGetNext,snmpBulk,snmpSet,snmpTrap等,并提供了一整套Java类

13、来实现以上功能,如:MibMoudle:负责对MIB模块文件的装载和解析等工作。SnmpSession:负责对每一个会话进行管理,例如向某一主机发送一个SNMPPDU并接收响应。SnmpPDU:负责对SNMP PDU的打包、拆包工作,例如我们通过定义一个SnmpPDU类为SNMP Get PDU,使用SnmpSession将其发送到某一Agent上,接收回应的PDU,再通过SnmpPDU提供的功能就可以得到报文中的数据。SnmpOID:标志了MIB树形结构相应的节点标志。5.2.2服务器负载均衡技术在负载均衡的思路下,多台服务器为对称方式,每台服务器都具有同等的地位,可以单独对外提供服务而无须

14、其他服务器的辅助。通过负载分担技术,将外部发送来的请求按一定规则分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。提供服务的一组服务器组成了一个应用服务器集群33,并对外提供一个统一的地址。当一个服务请求被发至该集群时,根据一定规则选择一台服务器,并将服务转定向给该服务器承担,即将负载进行均衡分摊。通过应用负载均衡技术,使应用服务超过了一台服务器只能为有限用户提供服务的限制,可以利用多台服务器同时为大量用户提供服务。当某台服务器出现故障时,负载均衡服务器会自动进行检测并停止将服务请求分发至该服务器,而由其他工作正常的服务器继续提供服务,从而保证了服务的可靠性。负载均

15、衡实现的方法有以下几种:最简单的是通过DNS,但只能实现简单的轮流分配,也不能处理故障34。l 如果是基于MS IIS,Windows 2003 Server本身就带了负载均衡服务。但这一服务也只是轮流分配。l 硬件方式:通过交换机的功能或专门的负载均衡设备可以实现。对于流量的分配可以有多种方式,但基本上都是应用无关的,与服务器的实际负载关系也不大。另外,设备的价格较贵。这种方式往往适合大流量、简单应用。l 软件方式:通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本也相对较低。另外一个很大的优点就是可以根据应用的情况和服务器的情况采取一些策略。这方面比较典型的软件产品是富士通西

16、门子公司的PCL SIS负载均衡软件。本文采用路由器中地址转换实现两台Web服务器的负载均衡。interface FastEthernet0/0description Link to CNC-Dedicated 10Mip address 218.104.94.14 255.255.255.252/定义广域网IPno ip redirectsip nat outside /定义为广域网端口no ip mroute-cachespeed 10full-duplex!interface FastEthernet0/1description Link to LANip address 218.104

17、.84.97 255.255.255.0 secondaryip address 192.168.0.8 255.255.255.0 /定义广域网端口IPno ip redirectsip nat insideno ip mroute-cachespeed autofull-duplex!ip nat pool aurora-cncl 58.240.60.1 58.240.60.2 netmask 255.255.255.248/定义合法IP地址池,名称为 aurora-cnclip nat pool websev 192.168.0.3 192.168.0.4 255.255.255.248

18、 type rotary/定义Web服务器的IP地址池,名称为websev。Rotary关键字表示准备使用轮询策略从NAT池中取出相应的IP地址用于转换进来的IP报文,访问58.240.60.10的请求将依次被发送给主Web服务器器192.168.0.3,辅助Web服务器192.168.0.4,实现负载均衡。ip nat inside source list 1 pool aurora-cnc1 overloadip nat inside destination list 2 pool websev/inside destination list语句定义与列表2相匹配的IP地址的报文将使用轮询

19、策略ip nat inside source static 10.200.10.61 218.104.84.106/绑定静态IP地址ip nat inside source static 10.200.1.14 218.104.84.109ip nat inside source static 10.200.10.60 218.104.84.108access-list 1 permit 192.168.0.0 0.0.0.255access-list 1 permit 10.200.0.0 0.0.255.255/定义本地访问列表access-list 2 permit 58.240.60.

20、10/定义轮询地址列表5.2.3客户端实现方式客户端有两种实现方式:HTML Client和JAVAClient。它们同服务器之间的通信完全是两种不同的方式,如图5.2所示。HTML Client是指客户端通过请求的方式,来获取服务器上的HTML文档,其客户界面完全是在浏览器中,所有对服务器上的数据操作也都通过浏览器。服务器则根据客户的请求来启动Servlet,来回答客户的请求。JAVA Client是以applet的方式,applet从服务器下载到客户端,在客户端主机上运行,这些applet与服务器可以通过socket等方式进行通信。在JAVAClient方式下,客户端界面基于GUI,可以由

21、JDK提供的AWT包实现,其效果要优于HTML方式。表5.1比较了客户端这两种实现方式。表5.1客户端实现方式比较 Client Java Client界面效果 基于浏览器 GUI,效果好通讯方式 协议 Socket等协议通讯围 不受限制 受安全限制通讯速度 较快 较慢本文采用的是Java Client实现方式。客户端只要能够支持Java Applet的浏览器,其通过协议与Web服务器进行通信,因此客户端的实现主要涉及到HTML文件和JavaApplet程序的实现。当客户端访问服务器的主页时,嵌入于主页的Java Applet程序通过网络下载到客户端的浏览器,并在其上运行。JavaApplet

22、接收用户的输入,并与服务器进行通信,从而实现交互式的操作。JavaApplet的作用主要是图形界面与查询结果的显示,它与Java ORB建立连接后,就能通过引用对象hostServant的变量ps_host来引用服务对象而不必知道其位置与连接等具体信息。/HostApplet.javaimport java.awt.*;import HostPackage.*;import org.omg.CosNaming.NamingContextPackage.*;public calss HostApplet extends java.applet.Appletpublic HostApplet;pr

23、ivate hostServant ps/服务对象引用变量public void initps host.Regist;/调用服务对象操作/init操作结束/主程序结束在程序运行时,先必须启动Server程序,然后用户就只需通过Web浏览器访问相应的网页,Applet就会下载到本地运行,获取服务组件提供的服务35。5.2.4拓扑结构的Java类实现Java是面向对象的语言,拓扑发现的所有功能模块都被封装在设计的Java类中,主要有下列类:topoDiscoveryInterface.class:接口申明类,其中申明了拓扑发现模块提供的方法,我们给与如下定义。Public interface t

24、opoDiscoveryInterface/网络层拓扑发现方法的声明Public java.util.Vertor DiscoverTopologyThreeThrows java.rmi.Exception;/数据链路层拓扑发现方法的声明Public java.util.Vertor DiscoverTopologyTwoThrows java.rmi.Exception;topoUi.class:拓扑图用户界面类,负责调用拓扑发现功能和对拓扑图进行显示;topoDiscoveryImpl.class:拓扑发现实现类,定期进行拓扑发现,刷新数据;mapServer.class:图符生成类,负

25、责拓扑图符的生成和修改。5.3 SWNMS网络拓扑结构发现算法研究拓扑发现是是配置管理的核心、故障管理的基础,同时也是衡量一个商业网络管理系统成败的重要尺度36。所谓拓扑发现就是获取和维护网络元素的存在性信息以及它们之间的连接关系信息,并在此基础上给出整个网络连接状态的图示,网络元素是指路由器、网关、交换机、主机和子网等。目前网络拓扑发现主要分为网络层拓扑发现和数据链路层发现。网络层拓扑又称第三层拓扑,对应于ISO/OSI的七层模型中的第三层,反映的是路由器到路由器、路由器端口到子网的连接关系;数据链路层拓扑又称第二层拓扑,对应于ISO/OSI的七层模型中的第二层反映了交换机之间端口联接关系,

26、交换机与主机、路由器之间的连接关系。网络拓扑结构在现代IP网络的网络管理中扮演非常重要的角色,国外很多人对拓扑算法的发现作了大量的研究,目前常用拓扑发现技术有如下几种:1基于ARP协议的拓扑发现方法任何有以太网接口的网络设备都必须支持地址解析协议ARP,并在本机维护着一ARP表,用于IP地址与以太网地址之间的地址解析与转换。根据任何一台路由器或交换机的ARP表,可以发现与其各以太网端口相连的以太局域网中的所有网络设备,再判定网络中的路由器与交换机,并继续根据ARP表进行发现,从而得到整个以太网的拓扑结构。这种方法发现率较高,发现迅速简洁,它的不足之处在于实时性稍差,如某台已关闭的主机仍会在一段

27、时间被认为是活动的,查询的结果会与实际网络的运行情况有出入,且网络中的一些故障及错误不能及时发现。同时这种发现算法也不能发现那些不支持ARP协议的网络连接和设备。2基于OSPF协议的拓扑发现算法OSPF协议是一种链路状态协议,已经成为IAB推荐的部网关协议,目前得到了广泛的应用。OSPF协议使所有路由器节点都存放一个完整的网络链路状态图,通过路由器之间的通信来交换彼此的链路状态图,不断更新其容,保持所有路由器的链路状态图的一致性。所以只要访问任一路由器的路由表就可以发现所有子网的路由信息,即可构造出拓扑连接信息。这种方法可以快速发现网络中的所有的子网与路由器,但是需要所有路由器都支持OSPF协

28、议并在每个路由器上正确配置OSPF协议。3基于RIP协议的拓扑发现算法这种方法与基于OSPF协议的方法类似。RIP是一种距离向量路由协议,RIP使路由器每个节点存放到达各个目标站点的距离。所谓距离就是到达目标节点所经过的跳数。RIP要求每隔30s各路由器向其相邻路由器发送自己存放的、到达各目标主机的距离信息,即广播自己的所有路由表项,同时接收其它相邻路由器发送来的路由表项更新报文。RIP协议支持的最大跳数为15,一般情况下网络中存在的路由器不会超过这一最大跳数,所以访问任一路由器的路由表就可以发现所有子网的路由信息。这种方法也是要求所有路由器都支持RIP协议并在每个路由器上正确配置RIP协议。

29、还有一些其它的常用算法不在此一一列举,这些算法一般都有网络层拓扑的发现,但缺少链路层的拓扑发现,或是局限于某种路由协议,效率不高等缺点。下面提出一种新的基于SNMP的网络拓扑算法,来快速地发现完整的网络拓扑结构,包括网络层拓扑结构和链路层拓扑结构。本文采用一种新的基于SNMP的网络拓扑算法37,用于迅速发现完整的网络拓扑结构。5.3.1网络层拓扑结构发现网络层拓扑结构采用SNMP协议访问路由器MIB-II中的路由表、地址解析表与地址表来获取。考虑到算法的通用性,在获得网络中路由表信息时并不采用RIP和OSPF这类路由算法,所以就要遍历网络中所有路由器。表4.1中IpRouteNextHop标识

30、了与本路由器相连的路由器或是有路由功能的节点,所以从管理站的网关路由器开始,可根据IpRouteNextHop逐步向下发现网络中所有的路由器,IpRouteDest和IpRouteMask可确定某一路由目的子网,并由ipRouteType判断路由器间的连接关系。数据结构的设计:Class Router/表示网络中的路由器 Class Switch/表示网络中的交换机 IpAddress Ip;/路由器某接口IP地址 IpAddress Ip;/交换机的IP地址MacAddress Mac;/路由器某接口MAC地址 MacAddress Mac;/交换机的MAC地址Char*Name;/路由器名

31、称 Char*Name;/交换机名称List InterfaceList;/路由器接口列表 List DeviceList/与交换机相连的网络设备列表Switch s;/所连接的交换机 Int Port;/所连接的交换机端口Class SubNet /表示子网 Class Host /表示网络中的主机 IpAddress SubNetAddress;/子网IP IpAddress Ip;IpAddress SubNetMask;/子网掩码 Mac Address Mac;List SwitchList;/子网交换机中的列表 Char* name;List HostList;/子网中普通主机列表

32、 List RouterList/子网中路由器列表 Class Connect/表示子网与路由器的连接关系Class Interface/表示路由器的接口 IpAddress ConnectRouter; IpAddress Ip; IpAddress ConnectSubNetIp; MacAddress Mac; IpAddress ConnectSubNetMask; 这里三层发现的目的就是找出网络网中存在的所有子网、路由器、子网与路由器之间的连接关系和子网中的IP设备,所以可以定义存放Router、Subnet、Interface、Connect类型的列表RouterList、Subn

33、etList、InterfaceList、ConnectList,分别存储子网中所有路由器、子网、路由器接口和子网与路由器之间的连接关系,对于子网中的所有IP设备则存放在SubnetList中相应的子网对象中。路由与子网的发现算法:Procedure FindRouter初始化RouterList、SubnetList、InterfaceList、ConnectList为空;gwGetDefaultGateway;/得到管理站点默认网关把该网关路由器添加到RouteList链表的末尾;forRouteList中的每一个路由器CurrentRouterfor/遍历路由器地址表把ipAdEntAd

34、dr与ipAdEntMask所表示的接口添加到InterfaceList中;for/遍历路由器的路由表ifif把IpRouteNextHop所代表的路由器添加到RouteList尾部,同时保证链表中的路由器不重复;把当前路由器CurrentRouter和IpRouteNextHop代表的路由器之间的连接添加到链表ConnectList中;else把ipRouteDest和ipRouteMask所代表的子网添加到SubnetList中;把该子网与当前路由器CurrentRouter的连接添加到ConnectList中;if把IpRouteNextHop所代表的路由器添加到RouteList尾部,

35、同时保证链表中的路由器不重复;End说明:在处,如果ipRouteMask为255.255.255.255,那么该路由为到主机的路由。也就是说,以该路由的ipRouteNextHop为地址的路由器和当前路由器通过一根电缆直接连接。在处判断当前路由器是否已经遍历过时,由于路由器存在多个接口,也就存在多个IP,故遍历路由器时就要注意多IP问题,避免重复。仅仅靠存在于MIB库中的识别标志如SYSTEMID或SYSLOCATION等无法保证与先前遍历过的设备的区别。本算法通过访问路由器的地址表获得路由器的所有接口,这样可以根据当前路由器的IP是否在已经遍历过的路由器接口列表中来判断。子网中IP设备发现

36、算法:Procedure FindDeviceBeginforfor/Device的IP为AtNetAddress,Mac为AtPhysAddressforifbreak;if把Device加入到SubNet对象的SwitchList尾部,并保证SwitchList中的交换机不重复;if把Device加入到SubNet对象的HostList尾部,并保证HostList中的主机不重复;if把Device加入到SubNet对象的RouterList尾部,并保证RouterList中的主机不重复;End说明:这里采用了访问每个路由器的地址解析表来查找网络中的IP设备,并把它分类存储在相应的子网中。这

37、比ping方法大大节省了时间,尤其网络中存在A类或B类子网时更为明显。另外,这种方法还可以同时保存IP设备的Mac地址,为二层拓扑发现做准备。算法中判断Device的类型时采用向Device发送SNMP Get报文来获取MIB-II中的sysService变量与IpForwarding变量。由于在FindRouter中已经发现了网络中的所有路由器,并且把路由器的所有接口存在了InterfaceList中,所以我们可以根据Device的IP是否在InterfaceList中来判断Device是否是路由器,如果在InterfaceList中则是路由器,如果不在,则是其它设备。在区分交换机和其它主机

38、时,可根据sysService变量和IpForwarding变量。sysService变量的值可以确定设备工作在第几层,IpForwarding确定设备是否具有转发功能,如果IpForwarding不为1并且sysServices的第二位为1,则Device为交换机,如果不能获取到sysService和IpForwarding变量或是IpForwarding和sysService是其它组合则是一般主机。5.3.2链路层拓扑结构发现贝尔实验室的Yuri Breitbart和Carnegie Mellon University的Bruce Lowekamp等,分别提出了各自的数据链路层发现算法38

39、-39,其中Breitbart提出的发现算法要求每台交换机的转发数据库中的地址信息必须是完备的,因而该算法的实际应用存在一定的困难。Lowekamp则针对Breitbart算法进行了改进,但效率不高。在网络层拓扑发现时得到了子网换机的集合SwitchList,采用SNMP的GetNext原语获取每个交换机Bridge-MIB中的地址转发表,进一步可分析出它们之间的连接关系,以及子网中主机、路由器与交换机的连接关系。首先引用如下定义。定义1Aij为一个MAC地址集合,元素均为交换机Si的地址转发表过端口Sij收到的数据帧的源MAC地址。定义2端口Sij的地址转发表是完整的,是指在给定子网中若交换

40、机Sk发出的数据帧可以通过端口Sij到达Si,则Sk的MAC地址必然出现在Aij中。定义3标志结点:当算法运行的主机在要发现物理网络拓扑的子网中时,将此主机命名为标志结点,若不在,则将目标子网中能转发算法运行的主机发出的数据包的路由器结点定为标志结点。定义4上行端口指端口对应的地址转发表中出现标志结点MAC地址的端口。定义5下行端口指端口对应的地址转发表中没有出现标志结点MAC地址的端口。定义6若交换机端口Sij的Aij中未出现其他交换机MAC地址,则称端口Sij为叶端口。若交换机Si没有下行端口,则称Si为叶交换机。交换机连接关系发现算法具体描述如下:Ping子网所有交换机;读取每台交换机地

41、址转发表;构造每台交换机的上行端口与下行端口,加入到待检测交换机列表;从待检测交换机列表取出一交换机,判断是否为叶交换机,若不是,则继续取下一节点。若是,则再遍历待检测交换机列表,得到与其相连的交换机,保存连接关系;把此叶交换机从待检测交换机列表中删除,并把此叶交换机的MAC地址从所有待检测交换机的地址转发表中删除;判断待检测交换机列表是否只有一个结点,是则结束,不是则转到;对于主机包括路由器与交换机的连接关系发现比较简单,主机的MAC地址若出现在交换机Si的叶端口Sij的地址转发表中,则主机直接连接到此交换机的端口Sij上。5.4 SWNMS管理系统实现细节问题解决5.4.1数据库设计40网

42、络管理系统是以数据库为中心的,管理站向代理采集大量的原始数据存入数据库,并且从数据库中读出相应的采集数据、计算分析数据进行上层显示。为了高效地存储和管理这些数据,在数据库中建立相应的表。本系统中按照表存储数据的容分为三类:一是固定信息表,这类表中的数据基本不变或者不经常发生变化,主要是存储网络拓扑结构信息,配置管理信息等;二是原始数据采集表,这类表中的数据随着时间推移不断增长,主要存储定时采集的性能管理、故障管理对象信息;三是计算分析表,主要存储各种网络性能参数的值,如接口带宽利用率、丢包率、输入输出错误率等,这些信息根据原始数据采集表的数据计算得来,在原始数据表上建立触发器,插入原始数据表数

43、据时,触发器计算当时各种性能参数的结果并存入到计算分析统计表,用于上层显示。在网络管理系统运行时,一些较为固定的信息在采集第一次后可以直接从数据库相应的固定信息表中读取,减少对代理的采集次数,减轻网络负担。原始数据采集表与计算分析表的分离,使用触发器计算性能参数,这样的好处可以使管理站只采集原始数据,把计算任务交给数据库服务器,缩短采集时间,实现数据采集与计算的分离,并且原始数据表的数据是随时间的推移而增长,过一段时间后会变得非常的庞大,数据采集表与计算分析表分离后,可以把原始数据表的数据定期删除,而只保留计算分析表,这样就把数据量较少的性能参数历史数据保留更长的时间。根据以上对相关MIB对象

44、集和数据库作用的分析,我们对数据库表结构作了详细地设计。本系统数据库中设计了大量的表,包括与每组MIB对象集对应的原始数据采集表、固定信息表、各种性能参数表和其它辅助的表。下面列出几个具有代表性的表结构,见5.3所示。图5.3数据库表结构5.4.2网络管理的安全机制为了增强网络管理的安全性,SNMPv2在进行收发报文的时候,需要检查各自维护的party表来进行时钟同步,以及确定传输报文是否需要加密和消息认证等工作,在接收时还要检查上下文表context Table和特权数据库aclTable来确定管理站对代理中的哪些资源具有何种操作权限。因而party表,context Table和aclTa

45、ble是在管理过程中非常重要的三个表格。Party表结构如表5.2所示。表5.2 Party表结构当SNMP命令生成器在接收管理员发来的管理命令后,将查找数据库发现合法的参加者和上下文,根据party表的AuthProtocol决定是否需要产生消息摘要,并按照目标Agent的私有协议将数据加密,最后组装成SNMPv2报文,经BER编码后发送给Agent41-42。5.4.3多管理员问题的解决对于一个分布式网络管理系统,往往需要设置多个网络管理员,在管理过程中必然会出现两个以上的管理员同时在线,并进行网络管理的情况。多个管理员在对同一个管理对象进行管理时,会存在管理命令相互冲突的情况,而且SNM

46、P管理器可能分不清楚从Agent反馈的Response信息是针对哪个管理程序发出的Request命令进行的响应的。为此,我们要设计MIB的存取控制列表acl,如表5.3所示。MIB只允许特定的几个管理员拥有Set权限,其它的管理员则只是具备Get权限。这样当SNMP接到一个Set命令时,只需要检查该表就可以确定命令发出是否具备足够的权限。为了防止主管理员不在线而造成系统产生的Trap信息无法及时获得处理,在acl表中再设置一到两名候选管理员,当主管理员不在线时,候选管理员可以被提升权限,具有Set权限。表5.3存取控制列表Agent主管理员第一候选管理员第二候选管理员在线管理员标识对于SNMP

47、对多管理员的响应问题,是在SNMP管理器连接的数据库中设计一个online_manager表,该表中记载在线的每一台主机、管理员标识和当前请求标识。根据SNMP规每一个Get/Set PDU中都含有请求标识字段,用来区分Agent返回的Response报文是针对哪一次Get/Set命令的回答。因此SNMP在生成的SNMP报文时可将其记入online_manager表中的适当位置,这样SNMP管理器就能够正确的将Response报文发送给浏览器了。5.4.4代理设备设置SNMP代理是运行在可网管设备中的的一个管理进程,在网络管理软件运行前要对其进行配置,使它能过响应网络管理站的信息请求,发送Tr

48、ap消息,并进行权限限制与身份验证。通过telnet进行命令行设置,需要配置的容我们通过配置一个Cisco2600路由器的实例来具体描述:配置团体名称和权限。SNMP服务需要至少一个团体名,一般设备都有默认的团体名,public为只读权限的团体名,private为可读写权限的团体名。这两个团体名被普遍地被使用,每个人都会被猜到,为安全起见,配置团体名时尽量为不同权限使用不同的团体名,并要为团体名建立强壮的口令,定期更改。配置命令如下:snmp-server community rdcommu RO命令配置了一个RO权限的团体名rdcommu,它使此代理响应任何提交团体名为rdcommu的网管软

49、件的读操作。配置访问控制列表ACL。默认情况下,在仅配置了团体名和权限后,代理会接受来自任何主机的SNMP数据包,这使团体名在被破译或泄漏后任何主机都可通过代理进行读写操作,所以必须考虑安全性方面,设置访问控制列表,使SNMP代理只接受访问控制中主机发出的SNMP数据包。配置如下:access-list 3 permit 192.168.0.0 0.0.0.255snmp-server community rdcommu RW 3第一个命令创建了一个编号为3的访问控制列表,允许来自网络192.168.0.0255.255.255.0的信息流量。第二个命令设置代理只接受来自于网络192.168.

50、0.0 255.255.255.0的SNMP数据包,并且数据包中的commnunity是可读写权限的团体名rdcommu。发送身份验证Trap。身份验证是验证团体名或地址是否有效的过程。当SNMP代理收到错误的团体名,或者不是从可接受访问控制列表成员发出的请求,那么代理将发送身份验证Trap消息到Trap目标,指出身份验证失败,在默认情况下,该项是启动的。本系统还对企业网络中的某些特殊主机进行管理和监控,这些主机都是做为重要的服务器,网络流量较大,负担较重。在对这些主机进行SNMP管理前要安装SNMP代理程序,这里我们使用Windows本身的SNMP代理,选择安装控制面板添加或删除程序添加Wi

51、ndows组件管理和监视工具,安装了这一组件后,主机就可以接受响应管理站点的SNMP数据包了。5.5系统实现5.5.1管理员认证登录界面管理员通过Web浏览器登录到Web服务器主页,系统显示管理员认证界面,如图5.4所示。输入正确的管理员登录名及密码后,即可通过Web认证进入网络管理系统。系统通过登录认证界面完成对管理员访问权限的控制和网络访问安全机制的管理。图5.4管理员认证登录界面5.5.2网络拓扑发现拓扑的结构发现是一个非常复杂的过程,尤其是二层拓扑的发现。对于大型复杂的网络整个拓扑结构的发现可能要花上几分钟或者更长的时间,如果网络管理软件每次运行时都先进行拓扑结构的发现势必浪费时间,降

52、低效率,好在网络运行稳定阶段其拓扑结构一般不会变化或者变化很小,所以本系统在第一次拓扑结构发现后把其结构按照一定格式存入到数据库中,以后再次运行时拓扑结构可以直接从数据库中读出,必要时再次重新发现拓扑结构更新数据库。我们将存储三层拓扑结构表以路由器ID和接口索引为主键,每条记录表示一个接口与一网段或主机的连接;存储二层拓扑结构表以交换机的IP地址和端口索引为主键,每条纪录表示交换机一端口与一IP设备的连接。网络层拓扑结构图如图5.5所示,数据链路层拓扑结构如图5.6所示。图5.5网络层拓扑结构图图5.6数据链路层拓扑结构图5.5.3配置管理功能实现对于配置管理,我们采用阻塞模式进行数据采集并将

53、数据存入数据库相应的表中,在以后使用中可以直接从数据库中读出,只在必要的时候再次从代理设备采集数据并更新数据库,对于一些有可写权限的对象我们可以进行Set操作,如sysName,sysLocation,sysContact对象。管理界面如图5.7所示。图5.7设备基本信息5.5.4性能管理功能实现通常我们通过SNMPAgent代理直接采集到的数据一般不能直接反映网络的性能,通过采集数据计算各种性能参数才能反映网络的性能。根据本系统采集的接口组、IP组、ICMP组、TCP组、UDP组数据可以计算出接口流量和各种协议流量。以接口组为例,我们给出几个主要的性能参数计算公式及其意义。输入速率=ifIn

54、Octets*8/T bps输出速率=ifOutOctets*8/T bps带宽利用率=*8/接口的输入输出速率和带宽利用率反映了网络信道的利用情况。若值较低,则说明网络信道有空余,值较高则说明信道资源得到充分利用,若值高出正常值很多,则说明存在网络瓶颈。本系统把采集MIB中各功能组的数据存入数据库相应的原始数据采集表,在这些原始数据表上建立触发器,每插入一条记录时,触发器就根据本次插入的记录和上次插入的记录计算相应的性能参数并存入到性能参数表。最后,将通过计算后的性能参数信息反映到Web浏览器中,如图5.8所示。图5.8接口组输入输出速率曲线图5.5.5故障管理功能实现故障原因分为三种:接口

55、状态故障、超出阈值故障和陷阱Trap故障。故障管理的过程一般分为三步:发现网络故障、分析故障原因、自动排除故障或给管理员提供排除故障帮助。本系统在发现故障时采用了两种方式:主动轮询与自动告警。主动轮询主要是发现接口状态故障和超出阈值故障并通知管理员所有的故障源。自动告警主要是代理进程在代理设备发生特殊事件时向管理者发送Trap报文,管理站上的接受Trap进程始终处于侦听状态,等待报文的到来,一旦接收到报文,就可以分析事件来源、事件类型等然后进行报警。本文的故障管理模块如图5.9所示。整个模块包括发现和接收故障消息和最后的处理建议,同时转交给网络管理框架程序,使网络拓扑将做相应的变化。26 / 26

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!