




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计毕业设计( (论文论文) ) 题题 目目 基于基于 snmpsnmp 的网络拓扑结构发现的网络拓扑结构发现 学院名称学院名称 计算机科学与技术学院计算机科学与技术学院 指导教师指导教师 职职 称称 班班 级级 学学 号号 学生姓名学生姓名 年 月 日 计算机学院毕业论文 第 i 页 目目 录录 摘摘 要要.iiiiii abstractabstract.iviv 第一章第一章 绪绪 论论.1 1 1.1 课题背景及意义 .1 1.2 本文的研究目标及文章组织 .2 1.2.1 研究目标.2 1.2.2 文章组织.3 第二章第二章 网络拓扑发现概述网络拓扑发现概述.4 4 2.1 网络拓
2、扑发现概述.4 2.1.1 网络拓扑发现概念 .4 2.1.2 网络拓扑发现对象 .4 2.1.3 网络拓扑发现前的准备工作 .4 2.1.4 常用的网络拓扑发现技术 .5 2.2 snmp 协议介绍.8 2.2.1 snmp 的发展 .8 2.2.2 snmp 的协议层次 .9 2.2.3 snmp 管理模型 .9 2.2.4 snmp 协议报文和通信原语 .11 2.2.5 使用 snmp 协议时所涉及的内容.13 第三章第三章 网络拓扑发现算法的研究网络拓扑发现算法的研究.1818 3.1 基本算法 .18 3.2 基于 arp 和 snmp 的拓扑发现算法 .19 3.3 使用 dns
3、 区域传输和广播 ping 的拓扑发现算法 .19 3.4 使用 dns 区域传输和 traceroute 的拓扑发现算法 .20 3.5 使用 traceroute 进行探测的拓扑发现算法 .22 3.6 基于 ospf 和 snmp 的拓扑发现算法 .24 计算机学院毕业论文 第 ii 页 3.7 骨干网拓扑发现算法 .25 第四章第四章 基于基于 snmpsnmp 的网络拓扑发现算法的实现的网络拓扑发现算法的实现.2727 4.1 算法的原理.27 4.2 算法描述 .31 4.2.1 算法中用到的 mib 组.31 4.2.2 网络拓扑发现的流程.33 4.2.3 网络拓扑发现算法的实
4、现.35 第五章第五章 基于基于 javajava 技术的网络拓扑结构生成技术的网络拓扑结构生成.3838 5.1 基于 web 和 java 可视化的研究 .38 5.1.1 层次型的可视化结构.39 5.1.2 java applet 在系统中的应用 .39 5.2 数据库的设计 .40 5.3 拓扑结构可视化的实现 .43 5.3.1 java applet 的实现 .43 5.3.2 可视化模块的实现.44 5.3.3 对数据库的访问.47 5.3.4 结果展示.48 第六章第六章 总结与展望总结与展望.5050 6.1 总结 .50 6.2 展望 .50 参考文献参考文献.5151
5、致致 谢谢.5353 计算机学院毕业论文 第 iii 页 基于基于 snmpsnmp 的网络拓扑结构生成的网络拓扑结构生成 刘 祺 南华大学计算机学院 2004 级 3 班 摘摘要要:随着计算机网络技术的发展和 internet 在全世界范围内的普及,计 算机网络的规模变得日益庞大,网络结构也十分复杂,这使得人们对网络管理 的需求越来越迫切。网络拓扑发现技术是网络管理中的一项基本功能。正确的 网络拓扑信息和直观的网络拓扑图能够直接有效地为网络管理人员提供整体性 的网络结构和状态。如何快速、准确地获取网络拓扑信息是当今各网络机构共 同关注的问题。本文就是研究网络拓扑发现技术和构造网络拓扑图的技术
6、。 本文首先阐述网络拓扑发现的相关概念和原理,介绍了常用的可被用来进 行网络拓扑发现的技术,并从负载、速度、准确性和使用范围等几个方面对各 种技术进行了分析和比较,得出以基于 snmp 协议的网络拓扑发现技术速度最快, 使用范围也最广泛。利用 snmp 协议分析 mib 库中的路由表、接口表等有关变量,从 而得到网络拓扑图的有关信息。最后,以 java 为工具.构造网络拓扑图。 关键词:关键词:snmp;mib;java;网络拓扑发现;网络拓扑发现算法 计算机学院毕业论文 第 iv 页 abstractabstract: : with the development of the techno
7、logy of computer networks and the worldwide popularity of internet,the scale of computer networks is getting bulky and the structure of network is becoming more complex. therefore clients demand of network management becomes more urgent. topology discovery is a kind of important function of the netw
8、ork management. correct topology information can provide the whole network structure and states to network administrator directly and effectively. it is a common issue for those net work institutes to discover and obtain network topology information quickly and accurately. the purpose of this thesis
9、 is to study the technique of topology discovery, then improve on the question of algorithms and implement an accurate and effective topology information discovery module. this paper introduces the related knowledge, concept and commonly-used technology about network topology discovery and makes an
10、analysis and synthetic comparison among them from the subject of load, speed, accuracy and applied scope, the algorithm of network topology discovery based on snmp is the most fast and widely applied. the method uses some m ib variables such as iprouting table and interface table to analyze the netw
11、ork topology. at last, using java as tool construct network topology map. keykey wordswords:snmp; mib; java; network topology discovery; algorithm of topology discovery 南华大学计算机学院毕业论文 第 1 页 共 59 页 第一章第一章 绪绪 论论 1.11.1 课题背景及意义课题背景及意义 随着计算机及通讯技术的飞速发展,计算机网络已经渗透到社会经济生活 的各个方面,对社会进步与经济发展起着越来越重要的作用,也使人们的工作 甚
12、至生活方式发生了巨大的变革。网络规模的激增,网络复杂性和异构性的焦 点化,使得网络管理问题上升到了网络建设的战略性位置。网络管理,就是监 视、组织和控制网络通信服务和信息处理所必需的各种活动的总称,确保网络 长时间、正常的运行,并当其出现故障的时候尽快的发现、修复故障,使其最 大限度的发挥其应有的效益1。 在当今的信息化社会里,计算机网络的稳定和可靠运行可以说己经成为我 们生活的一个基本保障。一个完善的网络管理系统是计算机网络能够可靠和稳 定运行的保证,也是进行网络性能分析、网络配置和安全管理等的依据。 网络故障是影响网络性能的重要因素,网管软件应能对发生问题的网络进 行故障检测、定位和诊断分
13、析,然后向系统网络管理员提交网络故障分析报告, 以便解决问题,提高网络可用性及服务质量。早期的网管系统大多采用命令行 方式,这严重影响网管软件的可操作性,而现代网管软件通常都采用图形用户 界面进行操作。网络拓扑的自动发现是实现网络拓扑图形显示的技术关键,而 路径搜索是故障定位的重要内容。 所谓拓扑发现(topology discovery)是指发现网络元素并确定网络元素之 间的互连关系,包括互连设备(如路由器、网桥、交换机等)、主机和子网。拓 扑发现作为配置管理和失效管理中的一项重要功能,是网络管理的一个重要组 成部分。拓扑发现同时也是衡量一个商业网络管理系统成败的重要尺度,在整 个网络管理系
14、统的开发中占有相当重要的地位。本论文的重点之一就是研究适 合于中小型网络(如:校园网)的拓扑自动发现算法。 计算机学院毕业论文 第 2 页 网络拓扑图(network topology map)是拓扑结构的可视化表现形式,拓扑 发现生成的网络拓扑图可以帮助网络管理员掌握网络拓扑结构,迅速定位失效 地点,确定失效影响的范围,还可以成为拾取网络元素并调用其它管理功能模 块的共同出发点。随着 www 的出现,基于 web 技术的网络管理成为网络管理的 一种新的趋势,它使网络管理不再需要地理位置、具体平台和专业技能等要求, 从而给网络管理带来许多方便。 目前,在网络管理标准中,主要有两大网络管理体系:
15、iso 的 cmis/cmip(公共管理信息服务及协议)和 ietf 的 snmp(简单网络管理协议),它 们从不同的技术观点来看待网络管理问题。其中 cmip 庞大、复杂,是一个大而 全的协议,难以理解、不易实现,且使用时 cmip 的资源占用量是 snmp 的数十 倍,所以并没有得到工业界的广泛支持l;而 ietf 的 snmp 设计简单、易于实 现,所以一经提出就得到了工业界的广泛响应,许多公司相继推出了基于 snmp 协议标准的网络管理系统和产品,如 sun 公司的 sunnetmanager,hp 的 openview,ibm 的 netview/6000 等等。本文所研究实现的网络
16、拓扑发现算法也 是建立在 snmp 协议基础上的。 1.21.2 本文的研究目标及文章组织本文的研究目标及文章组织 .1 研究目标研究目标 上面一节中已经说到在网络管理软件中,构造网络拓扑是一个重要功能,能 否提供一个直观、全面的网络拓扑结构是网络管理的关键,在网络拓扑的构成过 程中,会涉及这样几个问题: (1) 在实际网络系统中会涉及到不同的设备平台, 彼此之间有不同的信息表示格式,如何通过一个较为通用的接口获取设备的拓扑 信息; (2)需要哪些信息能够反映设备的连接状态; (3) 如何对获取到的拓扑信 息进行进一步的处理,以直观的形式展现给用户。 在目前网络运行中, snm
17、p (简单网络管理协议) 得到了极为广泛的应用,主 要的设备都能够支持该协议,同时该协议提供了极为丰富的 mib (管理信息库) 变量供网络管理使用。因此 snmp 成为获取网络信息的重要方式。 计算机学院毕业论文 第 3 页 图 1.1 设计框架 如图 1.1 所示,本文的研究目标是开发一个通过基于 snmp 协议的网络拓扑 发现算法来获取路由信息,对采集后信息进行分析后,利用 java 技术在 web 的 环境中进行网络拓扑结构(网络拓扑图)生成的系统。 .2 文章组织文章组织 本文首先在第二章中对网络拓扑发现的一些常用技术进行了简介,并着重 介绍了 snmp 协议的相关内
18、容,第三章研究了基于不同协议的网络拓扑发现算法, 第四章中介绍本系统的拓扑发现算法和实现技术,第 5 章介绍了网络拓扑结构 生成的实现。 计算机学院毕业论文 第 4 页 第二章第二章 网络拓扑发现概述网络拓扑发现概述 确定个规模较大且经常变化的网络拓扑结构是很困难的,但准确的拓扑信 息在网络管理方面起着很重要的作用,通过网络拓扑信息我们可以判断当前设 备的配置是否合理,同时它也为网络故障的排除提供了重要的依据。 2.12.1 网络拓扑发现概述网络拓扑发现概述 .1 网络拓扑发现概念网络拓扑发现概念 网络拓扑发现就是探测网络拓扑机构信息,形象地描述网络设备间的互连 关系。网络拓扑
19、可表示为一张无向图 g=(n,e),其中 n 是节点集,表示网络中 的互连设备,有时候也可能是由这些设备组成的子网甚至是一个自治系统 (autonomous system);e 是边集,表示这些设备或者网络之间的连接关系7。 .2 网络拓扑发现对象网络拓扑发现对象 拓扑发现的对象分为两种,一种是设备的发现,包括:子网、路由器、交换 机、主机、接口等,甚至网络本身也是发现对象;另一种是发现网络元素之间的 物理布局与互连关系,其中包括路由器和路由器的连接、路由器和子网的连接、 路由器和交换机的连接等。设备本身的互连关系构成了拓扑发现的所有内容。 .3 网络拓扑发现前
20、的准备工作网络拓扑发现前的准备工作 网络拓扑发现需要明确的问题有几个方面: 第一,需要确定拓扑发现要针对网络层次的哪一层。只有明确了网络的层 次,才能明确到底什么样的信息需要采集,才能使算法有较好的适应性。 计算机学院毕业论文 第 5 页 第二,确定采用的是被动监测技术还是主动监测技术来采集网络拓扑信息。 被动监测技术即在所有观测的网络中都加入一个探测器,其优点是仅向网络管 理主机递交各个网络的拓扑信息,无额外流量,负担小,但花费时间长。对大 型网络来说,将探测器安装到所涉及的各个网络中并不实际。主动监测技术即 网络管理主机向所有管理网络发探测包,采集返回信息,优点是速度快,缺点 是产生流量大
21、,对低速网络不太合适。 第三,确定用何种方式收集信息。对于收集信息的方式,一种是采用网络 管理信息协议来收集网络的信息,另一种是采用一种通用的协议来实现对于网 络信息进行采集,利用 icmp、dns 等协议向网络上的设备发送消息包/接收消息 包来获取网络拓扑信息,并且在对已有信息进行分析以及处理的基础上进一步 获取更多的信息,从而可以收集到整个网络的拓扑信息。 .4 常用的网络拓扑发现技术常用的网络拓扑发现技术 1)ping ping 是用于 ip 网络的最早的工具之一,用它来检查一个节点是否启动并 运行以及测量它的往返时间,通常关联到源主机和目的主机3。这意味着我们 能够使它
22、来发现忽略下层网络的信息,在某些情况下这是理想的结果。例如当 我们想要测量在几对节点之间通信的性能而不关心网络的其他部分时。ping 工 具主要用于检测目的主机是否在网络中存活,ping 一个存活的主机回应的时间 一般为微妙级或毫秒级,对一个关机的主机或不存在的主机,回应时间为 205,这样就影响了 ping 的效率。 另一个使用 ping 的途径是定向的广播 ping。这意味着所发送的目的地址 为一个子网的广播地址,这个子网的所有节点必须对这个广播 ping 进行相应。 这样有助于快速发现子网内所有的主机(通过保存对 ping 做出回应的所有节点 的 ip 地址)。但当前的网络中我们不能使用
23、 ping 的广播特性,因为这个特性是 网络的一个安全漏洞,它可能被拒绝服务攻击所利用。 2)traceroute 计算机学院毕业论文 第 6 页 由 van jacobson 编写的 traceroute 程序是一个能更深入探索 tcp/ip 协议 的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的 ip 数据报具 有相同的路由,但是大多数情况下是这样的。traceroute 程序可以让我们看到 ip 数据报从一台主机到另一台主机所经过的路由。traceroute 程序还可以让我 们使用 ip 源路由选项。 traceroute 程序使用 icmp 报文和 ip 首部中的 itl 字
24、段(生存周期)。其原 理如下:开始时,源主机将 ip 报文的 ttl 值设置为 1,发送至目的主机,第一 个路由器收到此报文后,将 ttl 值减 1,丢弃此报文,并发送一个超时的 icmp 报文给源主机,信源接收到此报文后,解析出第一个路由器的地址。然后,源 主机将 ttl 为 2 的报文发送给目的主机,第一个路由器把它的 ttl 值减 1 后转 发给第二个路由器,第二个路由器收到后再减 1,报文 ttl 值变为 0,该路由器 丢弃此报文,并发送一个类型为超时的 icmp 报文给源主机。这样就得到了第二 个路由器的地址。如此循环下去,直至报文正确到达,源主机得到了通往目的 主机的路由。通过 t
25、raceroute 还能得到从源主机到这条路径上任何一个节点的 往返延时。traccroute 和 ping 都有当目的节点不存在时时间延迟较大的缺点。 并且当路径上的路由器对源节点发送的包不相应时,traceroute 可能产生错误 的结果。 3)snmp 随着 internet 的迅速发展,作为 internet 标准的 tcp/ip 协议也在发展。 tcp/ip 技术是连接异构网络的有效工具,目前己经成为事实上的标准,这样基 于 tcp/ip 的 snmp 由于易于实现,也成了网络管理事实上的标准。每个设备的 mib 中存储了设备所运行的进程、表现方式和可以读取的一切信息。利用 snmp
26、 协议,可以获得所需的设备信息,根据这些信息来构造网络拓扑关系。笔者将 在后面对该协议进行详细的介绍。 4)dns 计算机学院毕业论文 第 7 页 一个域的域名服务器(dns)维持该域内的每个名字到其 ip 地址的绑定。大 多数域名服务器通过“区域传输”命令返回该域内名字的列表。由此理论上 dns 的域转换可以发现域内的所有主机和服务器。这种技术快速、准确、开销 小。但是发现不准确,因为用 dhcp 获取 ip 地址的主机并没有 dns 服务,而且, 有的网络因为安全原因关闭了 dns 域转换服务1。 5)arp 地址解析协议(arp)在 ip 地址和物理地址之间做映射。arp 协议是一个基
27、础协议,它的运行对于应用程序或系统管理员来说一般是透明的9。有以下优 点:第,arp 是动态的。之所以称为动态的是因为这个过程是自动完成的,一般 应用程序用户或系统管理员不必关心。第二,arp 是一个标准并且对每个支持 tcp/ip 的设备都可用,与链路协议无关。第三,arp 可用于 ip 子网,提供在一 个路由 intemet 中设备间通信非常简单的方法。 6)其它技术 路由信息协议(rip) rip 协议是一种距离向量路由协议,它要求路由器每个节点存放到各个目 标节点的距离。距离指到达目标节点所经过的跳数。rip 要求所有或部分路由 器侮隔 30 秒向相邻路由器发送自己完整的路由表,同时接
28、收其他相邻路由器发 送来的路由表项更新报文,将其距离值与其本身的路由表进行比较更新。每个 路由表项设定相应的定时器,若在六个路由器广播周期内没有收到该路由表项 的更新报文,则认为该路由表项失败,并在 240 秒后将其从路由表中删除。 利用 rip 协议,可以从路由器设备中提取通过该设备的所有 ip 地址或 ip 子网的路由信息表,构造出拓扑信息连接表,但 rip 没有子网地址的概念,没 有端口级的拓扑连接信息3。并且要求所有的路由器支持 rip 协议。 开放最短路径优先(ospf)协议 计算机学院毕业论文 第 8 页 ospf 是除 rip 外的另一个内部网关协议,运行在一个自治系统中,与采用
29、 距离向量的 rip 协议不同的是,ospf 是一个链路状态协议。距离向量的意思是 rip 发送的报文包含一个距离向量(跳数)。每个路由器根据它所接收到邻站的 这些距离向量来更新自己的路由表。在一个链路状态协议中,路由器并不与其 临站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状 态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出 去,每个路由器接收这些链路状态信息,并建立起完整的路由表6。 通过访问自治系统每个区域中某个路由器相关的 ospf 路由表信息,可以构 造整个自治系统的网络拓扑图。 对以上网络拓扑发现的各种技术的分析比较如下表 2.1,从这张表中
30、可以 看出,网络拓扑发现的各种技术各有利弊。 表 2.1 各种拓扑发现技术的比较 pingtraceroutesnmpdnsarposrf rip 适用性 所有网络 域 所有网络域 多数网络 域 少数网络 域 所有网络 域 少数网络 域 网络负 载 低高低低低低 速度慢慢快快快快 准确性较准确较准确较准确较准确较准确准确 2.22.2 snmpsnmp 协议介绍协议介绍 由于本论文是基于 snmp 协议下的,所以笔者在这里着重的介绍一下 snmp。 计算机学院毕业论文 第 9 页 snmp(简单网络管理协议)是目前最流行的一个网络管理协议。作为应用层 上的协议,它主要通过一组 internet
31、 协议及其所依附的资源提供网络管理服务。 利用 snmp 管理工作站可以远程管理所有支持这种 snmp 的网络设备,包括监视 网络状态、修改网络设备配置、接收网络事件警告等。 .1 snmpsnmp 的发展的发展 snmp 在 1989 年作为基于 tcp/ip 互联网的一个标准而被广为接收和采用。 1991 年发布了 snmp 的一个补充 rmon(remote network monitoring:远程网络监 控)。rmon 扩充了 snmp 的功能,包括对 lan 的管理以及对依附于这些网络的设 备的管理。1993 年,snmp 的改进版 snmpv2 开始发布,自此,原
32、来的 snmp 便被 称为 snmpvl。最初的 snmpv2 最大的特色是增加了安全特性,因此被称为安全 版的 snmpvl。但不幸的是,经过儿年试用,snmpv2 并没有得到厂商和用户的积 极响应,并且也发现自身还存在一些严重缺陷,因此,在 1996 年正式发布的 snmpv2 中,安全特性被删除了。这样,snmpv2 对 snmpvl 的改进程度便受到了 很大的削弱。总的来讲,snmpv2 对 snmpvl 的改进主要包括以下三个方面:支持 分布式管理、改进的管理信息结构(smi)和增强了管理信息通信协议的能力。最 后,在 1998 年发布了 snmpv3,它定义了 snmp 的安全性以
33、及将来改进的总体结 构,在 snmpv3 介绍文档中对 snmpv3 的表述为:snmpv3 等于 snmpv2 加上安全和 管理。snmpv3 预定于 snmpv2 一起使用,但也可以和 snmpv1 一起使用1。 .2 snmpsnmp 的协议层次的协议层次 简单网络管理协议(snmp)是一个应用层的协议,它用于实现网络设备之间 管理信息的交换。使用 snmp 来访问网络设备的 mib 数据库,网络管理员可以迅 速发现影响网络性能的问题并解决问题1。 snmp 工作于 udp 协议之上,因此使用它在主机间通讯时无需先建立连接。 这种方法降低了系统开销,但对报文到达的正确性不
34、做保证。 计算机学院毕业论文 第 10 页 snmp 将管理问题分为两个部分,并为每个部分定义了标准。第一部分是有 关信息通信规则的,协议定义了管理机上的客户软件如何与代理通信,同时定 义了管理机与代理交换消息的格式和含义以及名字与地址的形式。第二部分有 关被管理的数据,协议定义网络设备必须保存的数据项和每个数据项的名字以 及用于表示名字的语法。 .3 snmpsnmp 管理模型管理模型 snmp 的网络管理模型如图 2.1 所示,包括四个关键元素1: 图 2.1 snmp 管理模型 l)管理工作站:一般是一个单机设备或者是一个共享网络中的一员。无论是 哪种情况,管理站都是管理
35、者作为网络管理员与网络管理系统的接口。 2)管理代理:当前主流路由器、交换机等设备现在都支持 snmp 操作,即对 来自管理站的 snmp 信息查询和请求做出响应,同时还可能异步的通过 trap 操 作主动向管理站提供一些重要的非请求信息。 3)管理信息库:描述了所有可以由 snmp 管理的信息的集合,其中每个信息 元素都称为一个对象。任何支持 snmp 协议的代理都应该能够对 mib 中定义的对 计算机学院毕业论文 第 11 页 象的信息的查询做出响应,任何使用 snmp 协议的网络管理站也都应该知道它能 够从代理那里得到的信息都在 mib 定义的范围内。 4)网络管理协议:管理站和代理之间
36、是通过 snmp 网络管理协议连接的, snmp 协议是一个应用层协议,使用网络层提供的 udp 传输服务来传递消息、 , 标准的代理监听端口为 161。当一个网管应用要求得到代理端的信息的时候, 它就向 snmp 核心进程提出这个请求,核心进程从本地的 mib 中得到所需的对象 的信息,然后构造 snmp 请求报文,最后将此报文使用 udp 协议发送到代理进程 的 161 端口上。代理进程在收到这个请求后,访问其本地的 mib 库以取出管理 站所需信息,然后构造 snmp 响应报文,最后使用 udp 协议将此报文发送给管理 站。管理站的 snmp 核心进程再将得到的信息传递给管理站上的网管应
37、用就完成 了一次信息交换。 .4 snmpsnmp 协议报文和通信原语协议报文和通信原语 1)snmp 协议报文 (l)snmp 协议的报文格式如下1: 图 2.2 snmp 报文格式 (2)一个 snmp 实体传递一个报文给另一个 snmp 实体的过程: 首先,利用上面的格式,构造一个 pdu。 其次,连同源地址、目的地址和共同体名,将该 pdu 传给认证服务,由认 证服务进行必要的数据转换,然后返回结果。 计算机学院毕业论文 第 12 页 再次,协议实体构造一个 snmp 报文,包括一个版本号、共同体名和由认证 服务返回的结果。 最后,用基本编码规则,为报文进行编码,并将编
38、码结构传给传输服务。 (3)一个 snmp 实体在接收 snmp 报文时的过程: 首先,对报文进行基本语法检查,如果解析错误,就抛弃该报文。 其次,验证 snmp 版本号,如果不匹配,就抛弃报文。 最后,协议实体将用户名字、源地址、目的地址和报文中的 pdu 部分传给 认证服务:如果失败,认证服务给 snmp 协议实体发信号,指示它产生一个 snmp trap 报文以及抛弃该报文。 2)变量绑定 当管理站想要得到一个特定代理的特定 mib 组中的所有标量对象信息时, 它 可以发送一个请求所有标量的报文,并且得到一个包含所有值的响应。这 样可以减轻网络管理的通信负担。为了实现上述的对象交换,所有
39、的 snmppdu 都包括一个变量绑定的域。这个域由一系列对象实例标识符和这些对象实例的 值组成。 3)通信原语 snmp 定义了 5 种通信原语实现管理进程和代理进程之间的交互信息,它们 分别是1:(l)get-request 原语:get- request pdu 由网络管理站的 snmp 实体 发出。它包括的域山前血的报文格式中给出。pdu 类型说明这是 get-request pdu。request-id 是发送实体为每个请求分配一个编号,用以标识同一代理的 多个未完成的请求,variable-binding 是经过 2)操作的被请求的对象实例列表。 管理代理的 snmp 实体在接收一
40、个 get-request pdu 后,通过返回一个 get- response pud 作为响应。如果代理的 snmp 实体能够为收到的 pdu 中变量绑定 列表的所有变量提供值,则 get-response pdu 为变量绑定域中每个变量赋一个 值。如果其中任何一个变量的不能得到,则所有变量的值均不返回。 计算机学院毕业论文 第 13 页 (2)get-next-request 原语:与 get-request 操作有相同的数据格式和相同 的数据交换模式。它们的操作都是原子同步方式,即要么所有的请求值都被返 回,要么一个也不返回。不同之处是:get-request pdu 的变量绑定列表中
41、的每 个变量指的是将要被返回的对象实例,而对于 get-next-request pdu,每个变 量将要返回的是按字典排序的下一个对象实例的值。get-next-request pdu 的 工作模式使得管理站可以动态发现一个 mib 视图的结构,同时也为检索一个未 知的表提供了有效的方法。这时,代理返回的是列表中每个对象标识的按字典 排序的下一个对象实例的值。 (3)set-request 原语:由管理进程发出,请求设置进程中一个或多个变量 的值。 (4)get-response 原语:由代理进程发出的,向管理进程返回的一个或多个 变量的值,它是 set-request 操作的相应。 (5)t
42、rap 原语:代理进程主动发出的报文,通知管理进程有某事发生。 .5 使用使用 snmpsnmp 协议时所涉及的内容协议时所涉及的内容 管理信息库管理信息库 mibmib 管理信息库 mib(management information base)是网络管理系统中所有被 管理元素信息的数据库23。数据库中的元素是网管中的被管资源,且被管资 源以对象来表示,每个对象表示被管资源某一方面的属性。通过对这些对象的 存取访问,就可以得到网络设备的所有静态或动态内容,涵盖网络性能、配置、 路由和故障等各个方面。每个对象又包含若干信息变量,每个信息变量包含如
43、下信息:变量名、变量的数据类型、变量的读写属性、变量的值。 l)mibl)mib 的数据结构的数据结构 mib 是一个树形结构的数据库,树中的每个节点都是一个对象,mib 就是由 一系列的对象组成,如下图所示: 计算机学院毕业论文 第 14 页 system(1) interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) egp(8) org(3) ccitt(0)iso-joint-ccitt(2) intemet(l) diretory(1) dod(6) mgmt(2)private(4) enterprises(1) experimen
44、tal(3) mib- ..1 root iso(1) 图 2.3 mib 的树型结构 root 为 mib 树的根节点,它有三个子树: iso(1):由 iso 管理。 ccitt(0):由 ccitt 管理。 iso-joint-ccitt(2):由 150 和 ccitt 共同管理。 在 iso(l)节点下由一些其它的子树,其中 0rg(3)是 iso 为其他组织定义的 子树。在 org(3)子树下,一个值得引起注意的特殊节点是 dod(6),该节点被分 配给了美国国防部使用。dod(6)节点下的一个子树 internet(l)分配给 internet 体系
45、结构委员会来管理。 在 internet(1)节点下包括了四棵子树: (l)directory(1)子树 计算机学院毕业论文 第 15 页 该子树保留给 051 目录服务,以备将来使用。 (2)mgmt(2)子树 该子树用于那些在 iab( internet 体系结构委员会)所批准认可的管理信息 库的定义,目前有两个版本:mib-i 和 mib-。由于在任何配置中都只能有一个 mib 存在,因此两个版本的 mib 提供相同的对象标识符。现在使用的大多是 mib-。 mgmt(2)子树的 mib(2)子树下定义了目前使用最广泛的各种对象,一般称 它们“组” 。在它下面定义的组分别为: syste
46、m 组:提供被管理设备的总体信息。 interfaces 组:提供网络实体的物理层接口的信息,包括配置信息 和每个接口上发生的事件的统计信息。 ip 组:提供了一个网络节点中有关 ip 实现和操作的信息。在网络管 理系统中使用非常广泛。 at 组:设备的地址转换信息,在 mib-下,该组内容在 ip 组中。 icmp 组:包括了有关 icmp 的实现和操作的信息。保存了对各种类型 的 icmp 信息的接受和发送的统计结果。 tcp 组:主要用于对流量控制、丢失重传和网络拥挤等问题的解决。 udp 组:提供有关 udp 发送和接收的数据包信息。 egp 组:由有关实体的 egp 信息和一个记录每
47、个 egp 邻居信息的表组 成。 snmp 组:包括有关 snmp 实现和操作的信息。 (3)experimental(3)子树 该子树下包含了在 internet 试验中使用的对象。 (4)private(4)子树 该子树用来指定用户扩展定义的对象。网络管理系统访问最多的部分是该 子树下的 enterprises(l)节点。该节点下的每个子树分配给一个企业,而企业 必须先向认 b 登记注册它们自己的厂商代码,然后就可以在该代码下创建它们 自己的对象。 2)从代理获得 mib 变量的实现 计算机学院毕业论文 第 16 页 为了对 mib 对象有更深的了解,这里对 mib 变量获取的过程进行简单
48、介绍。 代理作为服务器方,后台运行着一个等待进程,这个进程不断等待来自网 络管理者的服务请求,当收到来自代理的请求时,经过语法分析、消息认证等 过程后,从自己的 mib 库中得到管理者所请求的 mib 变量的值,最后取出相应 的应答。从代理获取 mib 变量要经过如下几步: (l)建立管理者和代理之间的连接 首先,作为客户方的管理者要主动和服务方的网络代理建立通信机制,因 为 snmp 是基于无连接的用户数据报协议(udp),所以这里使用无连接的数据报 层。首先构造 socket,然后使用 bind 系统调用进行地址绑定是用来给已建立 的 socket 分配任一地址和端口号。把 interne
49、t 地址设为 inaddr-any,系统将 会在可选择的本机地址中选择一个可用的地址进行绑定。绑定后,就可以利用 此套接口进行通信了。 (2)构造协议数据单元(pdu) snmp 消息是通过 snmppdu 来传送的,所以在发送 snmp 消息之前必须构造 协议数据单元(pdu)。根据用户的输入信息,构造一个 pdu 数据结构,构造一个 可以用来传送信息的 pdu,将所请求的对象放入变量绑定列表,并将变量绑定 加入到 pdu 中。 (3)协议数据单元构造好后,发送请求。send to 系统调用将获取目的地址 并发送报文。 (4)接受代理的响应。 (5)读取数据。
50、snmpsnmp apiapi 基于 snmp 的网络拓扑发现的基础就是利用 snmp 协议向网络设备发送 snmp get 请求,因此实现 snmp 协议就成为整个系统实现的关键一步。我们可以利用 许多公司提供的 snmp 的开发工具包 (snmp api)来开发网络拓扑发现的相应程)子。 计算机学院毕业论文 第 17 页 目前比较流行的 snmp 的开发工具包就是 cmu 大学的 ucd-snmp18,hp 公 司的 snmp+19,advent 公司的 jsnmp20和 microsoft 公司的 winsnmp,它 们各有优缺点。这里笔者就不一一介绍了。 计算机学院毕业论文 第 18
51、页 第三章第三章 网络拓扑发现算法的研究网络拓扑发现算法的研究 这里笔者将讨论和分析几种主要拓扑发现的算法,它们将上一章中介绍的 几种网络拓扑基本技术组合在了一起。笔者觉得通过对这些算法的介绍,能够 扩充读者的思路,以便比较各个网络拓扑发现的算法的优缺点。 3.13.1 基本算法基本算法 本论文讨论的拓扑发现算法是在下述算法的基础上扩展完成的,该算法的 描述如下: 1、确定一个 ip 地址的“临时”集合,这些 ip 地址对应着存在或不存在的 主机和路由器。 2、对集合里的每一个元素,作如下处理: a、验证这个 ip 地址是否可达; b、如果可达,将此地址不重复的加入到“永久”集合中; c、一用
52、这个地址产生更多的 ip 地址,并把这些新产生的地址加入到临时 集合中。 对基本算法的一些说明: 1、算法中存在两个集合,分别为临时集合和永久集合。临时集合中存放着 等待被访问的 ip 地址,这些地址也许并不存在。永久集合中存放着实际存在并 可达的 ip 地址。在下面具体算法的初始状态下,临时集合被设置成不同的初始 值(详见具体算法),而永久集合通常为空集。 2、拓扑发现算法的一个重要思想是通过某个己知的 ip 地址来获取更多的 ip 地址,以此不断的扩大拓扑发现的地址范围。在具体的各种算法中,利用临 时集合中的某个可达地址产生更多 ip 地址的方法各不相同,下面儿个小节将详 细介绍这些方法,
53、这里只是做一个笼统的概括。 计算机学院毕业论文 第 19 页 3、当算法完成以后,拓扑发现的结果由路由器连接关系、路由器和子网连 接关系、子网、主机四个队列表示出来。队列中的每一项都含有一些附加的信 息,如:主机名称、路由器的接口、数量和类型等等。这些信息被存储在文件或 数据库中。接下来将讨论在这个算法基础上产生的一系列具体算法。 3.23.2 基于基于 arparp 和和 snmpsnmp 的拓扑发现算法的拓扑发现算法 这是一个最简单的算法,它假设域中所有主机都运行 snmp。这种算法首先 获得起始主机的缺省路由器,然后通过发出 snmp 请求报文来访问该路由器的路 由表和 arp(地址解析
54、协议)表,分别得到与之相邻的路由器和主机,接着算法 循环遍历所有的路由器和主机直到遇到一个指定域之外的主机为止9。具体算 法描述如下: 1、初始化临时集合和永久集合,临时集合=起始路由器,永久集合为空 集; 2、对临时集合里的每一个路由器,作如下处理: a、ping 该路由器; b、如果路由器处于活动状态,将它加入到永久集合中; c、用 snmp 方法获取路由器的 arp 地址表,并把地址表中的主机加入土机 队列: d、将主机列表加入到永久集合中; e、用 snmp 方法获取路由器的路由表,并把路由表中的路由器加入路由器 队列; f、将路由器列表加入到永久集合中; g、将路由器列表加入到临时集
55、合中。 这种算法的优点是它的速度非常快,其缺点是它无法检测到没有运行 snmp 的主机或路由器,因此它能发现到的主机和路由器数目与实际情况可能相差较 大。根据4的测试,在 域中,这种算法只能发现 10%的路由器和 92%的主机。 计算机学院毕业论文 第 20 页 3.33.3 使用使用 dnsdns 区域传输和广播区域传输和广播 pingping 的拓扑发现算法的拓扑发现算法 这种算法假定域能够执行 dns 区域传输和广播 ping。它首先通过发送 dns 区域传输报文得到域中所有主机和路由器的列表,然后使用 ping 来确定这些主 机是否可达,并通过子网猜测算法来确定每
56、个子网的网络标识,最后为了得到 在 dns 区域传输中没有发现的节点,算法直接向通过上一步所发现的子网发送 广播 ping,并将发回响应的节点添加入主机列表4。具体算法描述如下: 1、初始化临时集合和永久集合,临时集合=通过 dns 传输,报文得的域主 机和路由器,永久集合为空集; 2、临时集合里的每一个节点,作如下处理: a、ping 该节点; b、如果节点活着,将它加入到永久集合中,否则读取下一个节点; c、通过子网猜测算法来确定该节点所在子网的网络标识; d、将子网加入到永久集合中; e、如果该子网没有访问过,在它内部发送广播 ping 报文; f、对做出回应的主机作如下处理: 将该主机
57、加入子网队列中; 将该主机加 入临时集合 这种算法的基础是子网猜测。子网猜测的目的是确定某一个 ip 地址所在子 网的网络标识,也就是子网掩码。本节所描述的算法中运用的子网猜测使用了 广播 ping 这个工具。该算法的思想是:首先将某一 ip 地址对应得子网掩码长度 设置为最大值 31:然后根据这个 ip 地址和假设的子网掩码构造0和255 的定向广播地址,并发送 ping 报文;如果有两个以上的的主机对 ping 做出了回 应,那么说明前面设置的子网掩码是正确的,否则,将子网掩码的长度减 1, 继续重复上面的步骤,直到找到匹配的掩码为止。该子网猜测算法可以用于支 持广播 ping 的域,它比
58、较精确,但速度慢,并对每一个 ip 地址都需要很大的 开销。 因此使用 dns 区域传输和广播 ping 的拓扑发现算法无论从速度还是完整性 方面都有着较大的欠缺,首先因为它使用了广播 ping 进行网络发现,所以它的 速度相当慢; 其次,由于安全性等原因,在许多网络中是禁止使用 dns 区域传 输和广播 ping 的,在这种情况下将不能得到网络的完整拓扑4。 计算机学院毕业论文 第 21 页 3.43.4 使用使用 dnsdns 区域传输和区域传输和 traceroutetraceroute 的拓扑发现算法的拓扑发现算法 这种算法同样假定域能够执行 dns 区域传输。它首先通过发送 dns
59、区域传 输请求报文得到域中所有主机和路由器的列表,然后使用 ping 确定每一个主机 是否可达,接着在探测点和正在测试的节点之间发送 traceroute 报文,以得到 路径中的所有路由器信息。通过这种方式我们可以找出距离我们主机最近的路 由器,这样我们就可以归类出所有具有相同缺省路由器的主机的 ip 地址,并且 据此猜测出子网地址7。 本节所运用的子网猜测方法是在对一组已知的 ip 地址进行“与”和“或” 位运算,从而对这组 ip 地址所在的子网的网络标识进行猜测。假设三个主机, ip 地址分别是 al、a2 和 a3,它们都与某一个路由器的同一个接口直接相连, 该接口的 ip 地址是 a。
60、要找到主机所在的子网以及相应的子网掩码,基本的思 想是首先将 ai、a2、a3 和 a 按位相与,根据同一子网内的 ip 地址具有相同的 网络前缀这个原则,可以大致得到这四个 ip 地址所处子网的网络标识。然后再 将它们按位进行或操作,或操作得出的结果表示子网地址空间至少应该覆盖几 位(结果是“1”的位)。将“与”和“或”运算的结果结合起来,可以作出更精 确的判断。当然,四个 ip 地址不一定能完全的判断出网络地址和子网掩码,但 有一点是肯定的,知道越多数量的与路有器同一接口直接相连的主机 ip 地址, 网络地址和子网掩码的猜测就越精确。为实现以上算法,需要定义两个 hash 表 cumula
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论