网络基于SNMP的网络拓扑结构发现Word文档下载推荐.docx
- 文档编号:6081256
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:49
- 大小:70.28KB
网络基于SNMP的网络拓扑结构发现Word文档下载推荐.docx
《网络基于SNMP的网络拓扑结构发现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络基于SNMP的网络拓扑结构发现Word文档下载推荐.docx(49页珍藏版)》请在冰点文库上搜索。
2.2.3SNMP管理模型9
2.2.4SNMP协议报文和通信原语11
2.2.5使用SNMP协议时所涉及的内容13
第三章网络拓扑发现算法的研究18
3.1基本算法18
3.2基于ARP和SNMP的拓扑发现算法19
3.3使用DNS区域传输和广播Ping的拓扑发现算法19
3.4使用DNS区域传输和Traceroute的拓扑发现算法20
3.5使用Traceroute进行探测的拓扑发现算法22
3.6基于OSPF和SNMP的拓扑发现算法24
3.7骨干网拓扑发现算法25
第四章基于SNMP的网络拓扑发现算法的实现27
4.1算法的原理27
4.2算法描述31
4.2.1算法中用到的MIB组31
4.2.2网络拓扑发现的流程33
4.2.3网络拓扑发现算法的实现35
第五章基于Java技术的网络拓扑结构生成38
5.1基于Web和Java可视化的研究38
5.1.1层次型的可视化结构39
5.1.2JavaApplet在系统中的应用39
5.2数据库的设计40
5.3拓扑结构可视化的实现43
5.3.1JavaApplet的实现43
5.3.2可视化模块的实现44
5.3.3对数据库的访问47
基于SNMP的网络拓扑结构生成
刘祺
南华大学计算机学院2004级3班
摘要:
随着计算机网络技术的发展和Internet在全世界范围内的普及,计算机网络的规模变得日益庞大,网络结构也十分复杂,这使得人们对网络管理的需求越来越迫切。
网络拓扑发现技术是网络管理中的一项基本功能。
正确的网络拓扑信息和直观的网络拓扑图能够直接有效地为网络管理人员提供整体性的网络结构和状态。
如何快速、准确地获取网络拓扑信息是当今各网络机构共同关注的问题。
本文就是研究网络拓扑发现技术和构造网络拓扑图的技术。
本文首先阐述网络拓扑发现的相关概念和原理,介绍了常用的可被用来进行网络拓扑发现的技术,并从负载、速度、准确性和使用范围等几个方面对各种技术进行了分析和比较,得出以基于SNMP协议的网络拓扑发现技术速度最快,使用范围也最广泛。
利用SNMP协议分析MIB库中的路由表、接口表等有关变量,从而得到网络拓扑图的有关信息。
最后,以java为工具.构造网络拓扑图。
关键词:
SNMP;
MIB;
Java;
网络拓扑发现;
网络拓扑发现算法
Abstract:
Withthedevelopmentofthetechnologyofcomputernetworksandtheworldwidepopularityofinternet,thescaleofcomputernetworksisgettingbulkyandthestructureofnetworkisbecomingmorecomplex.Thereforeclient’sdemandofNetworkManagementbecomesmoreurgent.Topologydiscoveryisakindofimportantfunctionofthenetworkmanagement.Correcttopologyinformationcanprovidethewholenetworkstructureandstatestonetworkadministratordirectlyandeffectively.Itisacommonissueforthosenetworkinstitutestodiscoverandobtainnetworktopologyinformationquicklyandaccurately.Thepurposeofthisthesisistostudythetechniqueoftopologydiscovery,thenimproveonthequestionofalgorithmsandimplementanaccurateandeffectivetopologyinformationdiscoverymodule.
Thispaperintroducestherelatedknowledge,conceptandcommonly-usedtechnologyaboutnetworktopologydiscoveryandmakesananalysisandsyntheticcomparisonamongthemfromthesubjectofload,speed,accuracyandappliedscope,thealgorithmofnetworktopologydiscoverybasedonSNMPisthemostfastandwidelyapplied.ThemethodusessomeMIBvariablessuchasipRoutingtableandinterfacetabletoanalyzethenetworktopology.Atlast,usingjavaastoolconstructnetworktopologymap.
KeyWords:
SNMP;
MIB;
Java;
NetworkTopologyDiscovery;
AlgorithmofTopologyDiscovery
第一章绪论
1.1课题背景及意义
随着计算机及通讯技术的飞速发展,计算机网络已经渗透到社会经济生活的各个方面,对社会进步与经济发展起着越来越重要的作用,也使人们的工作甚至生活方式发生了巨大的变革。
网络规模的激增,网络复杂性和异构性的焦点化,使得网络管理问题上升到了网络建设的战略性位置。
网络管理,就是监视、组织和控制网络通信服务和信息处理所必需的各种活动的总称,确保网络长时间、正常的运行,并当其出现故障的时候尽快的发现、修复故障,使其最大限度的发挥其应有的效益[1]。
在当今的信息化社会里,计算机网络的稳定和可靠运行可以说己经成为我们生活的一个基本保障。
一个完善的网络管理系统是计算机网络能够可靠和稳定运行的保证,也是进行网络性能分析、网络配置和安全管理等的依据。
网络故障是影响网络性能的重要因素,网管软件应能对发生问题的网络进行故障检测、定位和诊断分析,然后向系统网络管理员提交网络故障分析报告,以便解决问题,提高网络可用性及服务质量。
早期的网管系统大多采用命令行方式,这严重影响网管软件的可操作性,而现代网管软件通常都采用图形用户界面进行操作。
网络拓扑的自动发现是实现网络拓扑图形显示的技术关键,而路径搜索是故障定位的重要内容。
所谓拓扑发现(TopologyDiscovery)是指发现网络元素并确定网络元素之间的互连关系,包括互连设备(如路由器、网桥、交换机等)、主机和子网。
拓扑发现作为配置管理和失效管理中的一项重要功能,是网络管理的一个重要组成部分。
拓扑发现同时也是衡量一个商业网络管理系统成败的重要尺度,在整个网络管理系统的开发中占有相当重要的地位。
本论文的重点之一就是研究适合于中小型网络(如:
校园网)的拓扑自动发现算法。
网络拓扑图(NetworkTopologyMap)是拓扑结构的可视化表现形式,拓扑发现生成的网络拓扑图可以帮助网络管理员掌握网络拓扑结构,迅速定位失效地点,确定失效影响的范围,还可以成为拾取网络元素并调用其它管理功能模块的共同出发点。
随着WWW的出现,基于Web技术的网络管理成为网络管理的一种新的趋势,它使网络管理不再需要地理位置、具体平台和专业技能等要求,从而给网络管理带来许多方便。
目前,在网络管理标准中,主要有两大网络管理体系:
ISO的CMIS/CMIP(公共管理信息服务及协议)和IETF的SNMP(简单网络管理协议),它们从不同的技术观点来看待网络管理问题。
其中CMIP庞大、复杂,是一个大而全的协议,难以理解、不易实现,且使用时CMIP的资源占用量是SNMP的数十倍,所以并没有得到工业界的广泛支持[l];
而IETF的SNMP设计简单、易于实现,所以一经提出就得到了工业界的广泛响应,许多公司相继推出了基于SNMP协议标准的网络管理系统和产品,如SUN公司的SunNetManager,HP的OpenView,IBM的NetView/6000等等。
本文所研究实现的网络拓扑发现算法也是建立在SNMP协议基础上的。
1.2本文的研究目标及文章组织
1.2.1研究目标
上面一节中已经说到在网络管理软件中,构造网络拓扑是一个重要功能,能否提供一个直观、全面的网络拓扑结构是网络管理的关键,在网络拓扑的构成过程中,会涉及这样几个问题:
(1)在实际网络系统中会涉及到不同的设备平台,彼此之间有不同的信息表示格式,如何通过一个较为通用的接口获取设备的拓扑信息;
(2)需要哪些信息能够反映设备的连接状态;
(3)如何对获取到的拓扑信息进行进一步的处理,以直观的形式展现给用户。
在目前网络运行中,SNMP(简单网络管理协议)得到了极为广泛的应用,主要的设备都能够支持该协议,同时该协议提供了极为丰富的MIB(管理信息库)变量供网络管理使用。
因此SNMP成为获取网络信息的重要方式。
图1.1设计框架
如图1.1所示,本文的研究目标是开发一个通过基于SNMP协议的网络拓扑发现算法来获取路由信息,对采集后信息进行分析后,利用java技术在web的环境中进行网络拓扑结构(网络拓扑图)生成的系统。
1.2.2文章组织
本文首先在第二章中对网络拓扑发现的一些常用技术进行了简介,并着重介绍了SNMP协议的相关内容,第三章研究了基于不同协议的网络拓扑发现算法,第四章中介绍本系统的拓扑发现算法和实现技术,第5章介绍了网络拓扑结构生成的实现。
第二章网络拓扑发现概述
确定个规模较大且经常变化的网络拓扑结构是很困难的,但准确的拓扑信息在网络管理方面起着很重要的作用,通过网络拓扑信息我们可以判断当前设备的配置是否合理,同时它也为网络故障的排除提供了重要的依据。
2.1网络拓扑发现概述
2.1.1网络拓扑发现概念
网络拓扑发现就是探测网络拓扑机构信息,形象地描述网络设备间的互连关系。
网络拓扑可表示为一张无向图G=(N,E),其中N是节点集,表示网络中的互连设备,有时候也可能是由这些设备组成的子网甚至是一个自治系统(AutonomousSystem);
E是边集,表示这些设备或者网络之间的连接关系[7]。
2.1.2网络拓扑发现对象
拓扑发现的对象分为两种,一种是设备的发现,包括:
子网、路由器、交换机、主机、接口等,甚至网络本身也是发现对象;
另一种是发现网络元素之间的物理布局与互连关系,其中包括路由器和路由器的连接、路由器和子网的连接、路由器和交换机的连接等。
设备本身的互连关系构成了拓扑发现的所有内容。
2.1.3网络拓扑发现前的准备工作
网络拓扑发现需要明确的问题有几个方面:
第一,需要确定拓扑发现要针对网络层次的哪一层。
只有明确了网络的层次,才能明确到底什么样的信息需要采集,才能使算法有较好的适应性。
第二,确定采用的是被动监测技术还是主动监测技术来采集网络拓扑信息。
被动监测技术即在所有观测的网络中都加入一个探测器,其优点是仅向网络管理主机递交各个网络的拓扑信息,无额外流量,负担小,但花费时间长。
对大型网络来说,将探测器安装到所涉及的各个网络中并不实际。
主动监测技术即网络管理主机向所有管理网络发探测包,采集返回信息,优点是速度快,缺点是产生流量大,对低速网络不太合适。
第三,确定用何种方式收集信息。
对于收集信息的方式,一种是采用网络管理信息协议来收集网络的信息,另一种是采用一种通用的协议来实现对于网络信息进行采集,利用ICMP、DNS等协议向网络上的设备发送消息包/接收消息包来获取网络拓扑信息,并且在对已有信息进行分析以及处理的基础上进一步获取更多的信息,从而可以收集到整个网络的拓扑信息。
2.1.4常用的网络拓扑发现技术
1)Ping
Ping是用于IP网络的最早的工具之一,用它来检查一个节点是否启动并运行以及测量它的往返时间,通常关联到源主机和目的主机[3]。
这意味着我们能够使它来发现忽略下层网络的信息,在某些情况下这是理想的结果。
例如当我们想要测量在几对节点之间通信的性能而不关心网络的其他部分时。
Ping工具主要用于检测目的主机是否在网络中存活,Ping一个存活的主机回应的时间一般为微妙级或毫秒级,对一个关机的主机或不存在的主机,回应时间为205,这样就影响了ping的效率。
另一个使用ping的途径是定向的广播ping。
这意味着所发送的目的地址为一个子网的广播地址,这个子网的所有节点必须对这个广播ping进行相应。
这样有助于快速发现子网内所有的主机(通过保存对Ping做出回应的所有节点的IP地址)。
但当前的网络中我们不能使用Ping的广播特性,因为这个特性是网络的一个安全漏洞,它可能被拒绝服务攻击所利用。
2)Traceroute
由VanJacobson编写的TraceRoute程序是一个能更深入探索TCP/IP协议的方便可用的工具。
尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由,但是大多数情况下是这样的。
TraceRoute程序可以让我们看到IP数据报从一台主机到另一台主机所经过的路由。
TraceRoute程序还可以让我们使用IP源路由选项。
TraceRoute程序使用ICMP报文和IP首部中的ITL字段(生存周期)。
其原理如下:
开始时,源主机将IP报文的TTL值设置为1,发送至目的主机,第一个路由器收到此报文后,将TTL值减1,丢弃此报文,并发送一个超时的ICMP报文给源主机,信源接收到此报文后,解析出第一个路由器的地址。
然后,源主机将TTL为2的报文发送给目的主机,第一个路由器把它的TTL值减1后转发给第二个路由器,第二个路由器收到后再减1,报文TTL值变为0,该路由器丢弃此报文,并发送一个类型为超时的ICMP报文给源主机。
这样就得到了第二个路由器的地址。
如此循环下去,直至报文正确到达,源主机得到了通往目的主机的路由。
通过Traceroute还能得到从源主机到这条路径上任何一个节点的往返延时。
Traccroute和Ping都有当目的节点不存在时时间延迟较大的缺点。
并且当路径上的路由器对源节点发送的包不相应时,traceroute可能产生错误的结果。
3)SNMP
随着Internet的迅速发展,作为Internet标准的TCP/IP协议也在发展。
TCP/IP技术是连接异构网络的有效工具,目前己经成为事实上的标准,这样基于TCP/IP的SNMP由于易于实现,也成了网络管理事实上的标准。
每个设备的MIB中存储了设备所运行的进程、表现方式和可以读取的一切信息。
利用SNMP协议,可以获得所需的设备信息,根据这些信息来构造网络拓扑关系。
笔者将在后面对该协议进行详细的介绍。
4)DNS
一个域的域名服务器(DNS)维持该域内的每个名字到其IP地址的绑定。
大多数域名服务器通过“区域传输”命令返回该域内名字的列表。
由此理论上DNS的域转换可以发现域内的所有主机和服务器。
这种技术快速、准确、开销小。
但是发现不准确,因为用DHCP获取IP地址的主机并没有DNS服务,而且,有的网络因为安全原因关闭了DNS域转换服务[1]。
5)ARP
地址解析协议(ARP)在IP地址和物理地址之间做映射。
ARP协议是一个基础协议,它的运行对于应用程序或系统管理员来说一般是透明的[9]。
有以下优点:
第,ARP是动态的。
之所以称为动态的是因为这个过程是自动完成的,一般应用程序用户或系统管理员不必关心。
第二,ARP是一个标准并且对每个支持TCP/IP的设备都可用,与链路协议无关。
第三,ARP可用于IP子网,提供在一个路由Intemet中设备间通信非常简单的方法。
6)其它技术
●路由信息协议(RIP)
RIP协议是一种距离向量路由协议,它要求路由器每个节点存放到各个目标节点的距离。
距离指到达目标节点所经过的跳数。
RIP要求所有或部分路由器侮隔30秒向相邻路由器发送自己完整的路由表,同时接收其他相邻路由器发送来的路由表项更新报文,将其距离值与其本身的路由表进行比较更新。
每个路由表项设定相应的定时器,若在六个路由器广播周期内没有收到该路由表项的更新报文,则认为该路由表项失败,并在240秒后将其从路由表中删除。
利用RIP协议,可以从路由器设备中提取通过该设备的所有IP地址或IP子网的路由信息表,构造出拓扑信息连接表,但RIP没有子网地址的概念,没有端口级的拓扑连接信息[3]。
并且要求所有的路由器支持RIP协议。
●开放最短路径优先(OSPF)协议
OSPF是除RIP外的另一个内部网关协议,运行在一个自治系统中,与采用距离向量的RIP协议不同的是,OSPF是一个链路状态协议。
距离向量的意思是RIP发送的报文包含一个距离向量(跳数)。
每个路由器根据它所接收到邻站的这些距离向量来更新自己的路由表。
在一个链路状态协议中,路由器并不与其临站交换距离信息。
它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去,每个路由器接收这些链路状态信息,并建立起完整的路由表[6]。
通过访问自治系统每个区域中某个路由器相关的OSPF路由表信息,可以构造整个自治系统的网络拓扑图。
对以上网络拓扑发现的各种技术的分析比较如下表2.1,从这张表中可以看出,网络拓扑发现的各种技术各有利弊。
表2.1各种拓扑发现技术的比较
Ping
Traceroute
SNMP
DNS
ARP
OSRFRIP
适用性
所有网络域
多数网络域
少数网络域
网络负载
低
高
速度
慢
快
准确性
较准确
准确
2.2SNMP协议介绍
由于本论文是基于SNMP协议下的,所以笔者在这里着重的介绍一下SNMP。
SNMP(简单网络管理协议)是目前最流行的一个网络管理协议。
作为应用层上的协议,它主要通过一组Internet协议及其所依附的资源提供网络管理服务。
利用SNMP管理工作站可以远程管理所有支持这种SNMP的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。
2.2.1SNMP的发展
SNMP在1989年作为基于TCP/IP互联网的一个标准而被广为接收和采用。
1991年发布了SNMp的一个补充RMON(RemoteNetworkMonitoring:
远程网络监控)。
RMON扩充了SNMP的功能,包括对LAN的管理以及对依附于这些网络的设备的管理。
1993年,SNMP的改进版SNMPv2开始发布,自此,原来的SNMP便被称为SNMPvl。
最初的SNMPv2最大的特色是增加了安全特性,因此被称为安全版的SNMPvl。
但不幸的是,经过儿年试用,SNMPv2并没有得到厂商和用户的积极响应,并且也发现自身还存在一些严重缺陷,因此,在1996年正式发布的SNMPv2中,安全特性被删除了。
这样,SNMPv2对SNMPvl的改进程度便受到了很大的削弱。
总的来讲,SNMPv2对SNMPvl的改进主要包括以下三个方面:
支持分布式管理、改进的管理信息结构(SMI)和增强了管理信息通信协议的能力。
最后,在1998年发布了SNMPv3,它定义了SNMP的安全性以及将来改进的总体结构,在SNMPv3介绍文档中对SNMPv3的表述为:
SNMPv3等于SNMPv2加上安全和管理。
SNMPv3预定于SNMPv2一起使用,但也可以和SNMPv1一起使用[1]。
2.2.2SNMP的协议层次
简单网络管理协议(SNMP)是一个应用层的协议,它用于实现网络设备之间管理信息的交换。
使用SNMP来访问网络设备的MIB数据库,网络管理员可以迅速发现影响网络性能的问题并解决问题[1]。
SNMP工作于UDP协议之上,因此使用它在主机间通讯时无需先建立连接。
这种方法降低了系统开销,但对报文到达的正确性不做保证。
SNMP将管理问题分为两个部分,并为每个部分定义了标准。
第一部分是有关信息通信规则的,协议定义了管理机上的客户软件如何与代理通信,同时定义了管理机与代理交换消息的格式和含义以及名字与地址的形式。
第二部分有关被管理的数据,协议定义网络设备必须保存的数据项和每个数据项的名字以及用于表示名字的语法。
2.2.3SNMP管理模型
SNMP的网络管理模型如图2.1所示,包括四个关键元素[1]:
图2.1SNMP管理模型
l)管理工作站:
一般是一个单机设备或者是一个共享网络中的一员。
无论是哪种情况,管理站都是管理者作为网络管理员与网络管理系统的接口。
2)管理代理:
当前主流路由器、交换机等设备现在都支持SNMP操作,即对来自管理站的SNMP信息查询和请求做出响应,同时还可能异步的通过Trap操作主动向管理站提供一些重要的非请求信息。
3)管理信息库:
描述了所有可以由SNMP管理的信息的集合,其中每个信息元素都称为一个对象。
任何支持SNMP协议的代理都应该能够对MIB中定义的对象的信息的查询做出响应,任何使用SNMP协议的网络管理站也都应该知道它能够从代理那里得到的信息都在MIB定义的范围内。
4)网络管理协议:
管理站和代理之间是通过SNMP网络管理协议连接的,SNMP协议是一个应用层协议,使用网络层提供的UDP传输服务来传递消息、,标准的代理监听端口为161。
当一个网管应用要求得到代理端的信息的时候,它就向SNMP核心进程提出这个请求,核心进程从本地的MIB中得到所需的对象的信息,然后构造SNMP请求报文,最后将此报文使用UDP协议发送到代理进程的161端口上。
代理进程在收到这个请求后,访问其本地的MIB库以取出管理站所需信息,然后构造SNMP响应报文,最后使用UDP协议将此报文发送给管理站。
管理站的SNMP核心进程再将得到的信息传递给管理站上的网管应用就完成了一次信息交换。
2.2.4SNMP协议报文和通信原语
1)SNMP协议报文
(l)SNMP协议的报文格式如下[1]:
图2.2SNMP报文格式
(2)一个SNMP实体传递一个报文给另一个SNMP实体的过程:
首先,利用上面的格式,构造一个PDU。
其次,连同源地址、目的地址和共同体名,将该PDU传给认证服务,由认证服务进行必要的数据转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 基于 SNMP 拓扑 结构 发现