1、 中图分类号: TP319 密 级: 公开 UDC: 本校编号: 工 程 硕 士 学 位 论 文 论文题目: 基于SNMP的校园网拓扑发现系统的 设计与实现 研究生姓名: 刘家乐 学号: G07084 学校指导教师姓名: 吴辰文 职称: 教授 企业指导教师姓名: 陈贻品 职称: 副教授 申请学位工程领域名称: 计算机技术 论文提交日期: 论文答辩日期: 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含获得 兰州交通大学 或其他教育机构的学位或证书 而使用过的材料。与
2、我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名: 签字日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解 兰州交通大学 有关保留、使用学位论文的规定。 特授权 兰州交通大学 可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 导师签名: 签字日期: 年 月 日 签字日期: 年 月 日 工 程 硕 士 学 位 论 文 基于SNMP 的校园网拓扑发现系统
3、的 设计与实现 Design and Implementation of Campus Network Topology Discovery System Based on SNMP 作 者 姓 名: 刘家乐 工 程 领 域: 计算机技术 学 号 : G07084 校 内 导 师: 吴辰文 企 业 导 师: 陈贻品 完 成 日 期: 2010年 10 月 10日 兰 州 交 通 大 学 Lanzhou Jiaotong University 兰州交通大学专业学位硕士学位论文 - I - 摘 要 随着校园网络规模的不断扩大和网络技术的不断发展, 依靠传统的手工管理方式对 大型校园网进行管理几乎已
4、经是一个不可能的任务。 迫切需要功能强大的网络管理软件 对校园网进行自动化管理。 而网络拓扑信息的自动发现正是网络管理软件中非常基础和 重要的功能。SNMP协议是网络管理领域的业界标准,被各网络厂商广泛支持、应用。 本文正是在对校园网管理工作的实践, 和对网络拓扑发现技术的深入了解基础上设计与 实现了基于 SNMP 协议的校园网网络拓扑发现系统。 首先, 本文介绍了课题的背景及研究现状。 本课题来源于某高校校园网的管理需求。 大规模的校园网络需要高效的网络管理软件进行管理。从上世纪九十年代开始,陆续有 一些学者和专家对网络拓扑发现技术进行了研究,并提出了相应的技术和理论。与此同 时,许多厂家发
5、布了一些商业软件产品,从不同程度上实现了拓扑发现功能。 然后,本文研究和分析了拓扑发现的基础理论及技术。这部分的相关技术主要包含 了网络层拓扑发现和链路层拓扑发现两个方面。 本系统根据校园网络的特点主要采用技 术成熟、实现较简单的基于 SNMP 协议的路由表网络拓扑发现技术实现网络层拓扑发 现;采用基于地址转发表的技术实现链路层拓扑发现。上述拓扑发现技术都是基于 SNMP的,笔者在论文中对 SNMP协议进行了全面的分析研究。 其次,研究和分析了常用的拓扑发现算法,对本系统中要应用的网络层拓扑发现算 法和链路层拓扑发现算法进行了详细研究。这是拓扑发现的核心技术,也是本系统开发 的难点。 再次,
6、本文应用 ObjectSNMP和 AdventNet SNMP API 开发包在 Java 语言编程平台 和 MySQL 数据库平台上设计和实现了一个具有实用用价值的校园网拓扑发现系统。从 系统的体系结构、模块划分、数据库设计到开发环境、界面设计、数据存储、拓扑展现 等关键技术的应用等都进行了详细的阐述。 在得到网络拓扑结构信息后,拓扑图形的呈现是非常重要的功能。本文采用了基于 分层的拓扑图布局算法对拓扑图形进行布局呈现,将拓扑发现的结果清晰地展现出来。 最后,应用仿真软件对拓扑发现系统进行了测试,并在真实校园网环境中进行了试 运行。测试环境应用 GNS3 和 Dynamips 仿真软件进行搭
7、建。测试和运行的结果表明, 本文设计的网络拓扑发现系统效率高、性能稳定,能较好地满足校园网络管理的需求, 达到了预定的设计目的。 关键字:网络拓扑发现; SNMP; 校园网; 网络管理; 拓扑图布局 兰州交通大学专业学位硕士学位论文 Abstract With the constant expansion of the campus network and network technology continues to evolve and rely on traditional manual management on a large campus network management is
8、 almost an impossible task. Urgent need for a powerful network management software to automate the management of the campus network. The automatic discovery of network topology information is network management software is very basic and important function. SNMP network management protocol is the in
9、dustry standard, widely supported by the network vendors, application. This article is in the work on the campus network management practices, and network topology discovery based on deep understanding of technology design and implementation of a campus network based on SNMP protocol network topolog
10、y discovery system. First, the article describes the background and status of the subject. This topic comes from a college campus network management needs. Large-scale campus network requires an efficient network management software to manage. Starting from the nineties of last century, one after an
11、other, some scholars and experts on the network topology discovery techniques were studied, and the corresponding technologies and theories. At the same time, many manufacturers released a number of commercial software products, from different levels to achieve a topology discovery. Then, the paper
12、studies and analyzes the basic theory of topology discovery and technology. This part of the related technology mainly includes the network layer topology discovery and link-layer topology discovery of two aspects. The system according to the characteristics of the campus network mainly uses mature
13、technology to achieve a simpler routing table based on SNMP protocol network topology discovery network layer topology discovery technology;-based address forwarding link layer topology discovery technology. The topology discovery techniques are based on SNMP, the author of the SNMP protocol in the
14、paper conducted a comprehensive analysis. Second, the research and analysis of the common topology discovery algorithm, the application of this system to the network layer and link layer topology discovery algorithm for topology discovery algorithm in detail. This is the core technology for topology
15、 discovery, but also the difficulty of the system development. Again, this paper ObjectSNMP and AdventNet SNMP API package in the Java programming language development platform and MySQL database platforms, design and implement a practical value of the campus network with a topology discovery system
16、. From - II - 基于 SNMP的校园网拓扑发现系统的设计与实现 - III - the system architecture, the module division, the database design to development environments, interface design, data storage, topology and other key technology to show and so were described in detail. Get the information in the network topology, the top
17、ology graph is a very important function of rendering. In this paper, topology-based hierarchical layout algorithm presents the layout of the topology graph, the topology discovery results clearly demonstrated. Finally, topology discovery system simulation software was tested, and in the real enviro
18、nment of the campus network was test run. Application GNS3 and Dynamips test environment simulation software to build. Testing and operation results show that the design of network topology discovery system, high efficiency, performance and stability, to better meet the needs of the campus network m
19、anagement, to achieve the intended design purpose. Keywords:Network Topology Discovery; SNMP; Campus Network; Network Management; Topology Layout 兰州交通大学专业学位硕士学位论文 目 录 摘 要. I Abstract II 1 1 绪论 1.1 .1 课题来源及背景 1.2 .2 课题研究现状 1.2.1 理论研究现状.2 1.2.2 市场上流行的部分产品.3 1.3 .4 课题研究的目的和任务 2 6 拓扑发现相关技术 2.1 .6 网络层拓扑发
20、现技术 2.1.1 基于ARP .6 2.1.2 基于ICMP .6 2.1.3 基于OSPF路由协议 .7 2.1.4 基于DNS.8 2.1.5 基于SNMP协议的网络拓扑发现技术9 2.1.6 网络层拓扑发现技术小结.9 2.2 .10 链路层拓扑发现技术 2.2.1 基于地址转发表.10 2.2.2 基于生成树协议的方法.10 2.2.3 基于LLDP.11 2.2.4 基于端口流量.12 2.2.5 链路层拓扑发现技术小结.12 2.3 13 SNMP协议简介 2.3.1 SNMP基本原理.13 2.3.2 管理信息库MIB .14 2.3.3 SNMP的五种消息类型.14 3 17
21、 拓扑发现算法 3.1 .17 网络层拓扑发现算法 3.1.1 算法的理论基础.19 3.1.2 算法的数据结构.21 3.1.3 算法流程图.22 3.1.4 算法的伪代码.22 3.2 .24 链路层拓扑发现算法 3.2.1 算法中涉及的MIB .24 3.2.2 算法的理论基础.25 3.2.3 算法的数据结构.26 3.2.4 算法流程图.27 3.2.5 算法的伪代码.27 3.2.6 主机拓扑信息的发现.29 4 30 拓扑发现系统的总体设计 4.1 .30 系统需求分析 - IV - 基于 SNMP的校园网拓扑发现系统的设计与实现 - V - 4.2 .30 校园网络基本结构和特
22、点 4.3 .31 系统体系结构 4.4 .32 功能模块 4.5 .33 数据库设计 5 34 拓扑发现系统的详细设计与实现 5.1 .34 系统开发环境 5.1.1 Java简介.34 5.1.2 Eclipse简介 34 5.1.3 SNMP软件开发包简介.35 5.1.4 MySQL数据库简介.35 5.2 .36 界面设计 5.2.1 主界面设计.36 5.2.2 右键菜单设计.37 5.3 .38 网络拓扑发现 5.3.1 主干网拓扑发现.38 5.3.2 子网拓扑发现.39 5.3.3 拓扑信息的储存.41 5.4 .43 网络拓扑结构的图形呈现 5.4.1 拓扑图构造概述.43
23、 5.4.2 基于分层的拓扑图布局算法.44 6 47 系统测试与运行 6.1 .47 系统的测试 6.1.1 测试目标.47 6.1.2 测试环境.47 6.1.3 测试方案.47 6.1.4 设备的配置.48 6.1.5 测试结果.48 6.2 .49 系统的运行效果 7 50 总结与展望 7.1 .50 总结 7.2 .51 展望 致 谢.52 参 考 文 献.53 兰州交通大学专业学位硕士学位论文 1 绪论 随着计算机和网络通信技术的快速发展, 计算机网络在现代社会中扮演着越来越重 要的角色,其应用范围也越来越广,己经渗透到了社会生活的各个领域,对社会进步与 经济发展起着越来越重要的作
24、用。高校校园网便是其中的一个典型应用领域,高校校园 网的建设和发展也是近十多年来计算机网络发展的一个方面,结构越来越复杂,校园网 络设备和用户数量不断增加,网络规模越来越大,行为也越来越丰富多样。为保障网络 正常、高效运行,迫切需要对校园网络进行实时监测和管理。校园网络管理问题日渐成 为高校日常管理的一个重大课题。 按照国际标准化组织 ISO的定义,网络管理主要包括五个功能域:故障管理、配置 管理、性能管理、安全管理和计费管理。五大功能域之间既相对独立,又存在着联系。 在五大功能域中,配置管理是基础,它的主要功能包括发现网络的拓扑结构、监视和管 理网络设备的配置情况,而已知网络的拓扑结构是监视
25、和管理网络设备的基础。因此校 园网络拓扑结构的获得对于整个校园网管理具有十分重要的作用, 它是对校园网络进行 高效管理的前提和基础。 1.1 课题来源及背景 本课题来源于作者的工作岗位,作者就职于湖南交通工程职业技术学院(简称交工 院)网络管理中心,负责整个学院校园网络的管理和维护工作。正是在网络管理工作的 实践中遇到了一些实际问题驱使使我去研究网络拓扑发现这一领域, 促进我们的网络管 理工作。 交工院校园网始建于 1998 年 6 月,建设初期校园网络规模较小,仅仅覆盖一个校 区内的几个楼栋、几十个信息节点。随着学院的发展,办学规模不断扩大,信息化程度 不断提高。 校园网经过多次扩充和改造,
26、 已经建成跨越四个校区, 覆盖到二十多栋楼宇, 上千个信息节点的较大规模的计算机网络。尤其是我院 2009 年启动新校区建设以来, 新校园网将以新标准、新技术和更高的要求进行设计和建设,初步规划的信息点总数将 超过 5000 的校园园区网络。届时将进一步提高我院的信息化水平,为我院日常管理和 各项事业的发展提供一个更好的平台和支持环境。 对于小型的网络,网络管理员可以采用手工绘制的网络拓扑图,依靠过去的网络管 理经验,使用简单的 Ping、Tracert、Netstat 等命令判断链路的性能,找出网络中的问题 原因和故障点。 但是对于大规模的校园网来说, 网络中包含的网络设备及主机数目众多,
27、连接关系复杂, 尤其是近年来无线接入技术在校园网络中的大量应用使得网络变动性大 大增加:可能在短时间内就会有一定数目新主机和网络设备的接入,也有可能原有网络 设备会撤离。面对上百台设备,几千个用户,手工获取和管理网络拓扑非常繁琐,几乎 - 1 - 兰州交通大学专业学位硕士学位论文 变成了一件不可能的任务。 必然导致不能够及时发现故障点、 排除故障, 致使工作被动, 很难完成网络维护任务。目前网络病毒日益泛滥以及用户的各种非法操作,使得校园网 内几乎每天都有网络故障发生,从而要求网络管理人员必须及时地发现网络故障,因此 网络拓扑图的高效生产更显的尤为重要。 本课题所研制的网络拓扑自动发现系统便是
28、自 动发现校园网的拓扑结构,为网络管理提供有效的技术支持和辅助手段。 1.2 课题研究现状 1.2.1 理论研究现状 对网络拓扑自动发现的研究始于上世纪九十年代。1990 年,J.D.Case 等人提交了 RFCll57,即名为“一种简单网络管理协议”的规范;一年后 M.Rose 和 K.Mecloghrie 在 RFC1213中提出了因特网管理信息库 MIB-II,这 是 基 于 TCP/IP协议的规范。他们制 定这些文档时都特别考虑了网络管理中的拓扑发现需要,从这以后, SNMP协议成为拓 扑发现的主要工具。基于 SNMP 的网络层拓扑发现算法最开始于 1996 年由 Glelm Mans
29、field 等人提出,之后网络拓扑发现算法有许多改进,一些相关的拓扑发现软件也 相继问世。比如 IBM 公司的 Tivoli、Cisco 公司的 Cisco works、HP 公司的 OpenView, 其拓扑发现的核心技术就是采用了基于 SNMP协议的网络层拓扑发现算法。 此外,由 Bureh和 Cheswich提出了的基于 ICMP的方法;Siamwalla等人采用基于 ICMP 命令的方法,针对网络层拓扑发现提出了一种启发式方法,它利用的工具是如 traceroute和 ping这样的工作于 ICMP协议的。 网络层拓扑信息仅仅是网络连接情况的一部分, 此外子网内的连接关系亦是网络管 理
30、者所关心的。为了获取子网内网络设备的复杂连接关系,因此随后研究者们在链路层 拓扑发现方面也相继开展了一些卓有成效的研究工作并提出了一系列物理拓扑发现技 术。2000年,IETF推出了物理拓扑 SNMP MIB信息管理库,但是对于如何获得物理拓 扑信息,IETF并没有定义任何通用的算法和协议。 目前在物理拓扑发现方面,美国南加州大学信息科学学院 SCAN 研究组,康奈尔 大学网络研究组、加州伯克莱大学计算机系及卡朗讯贝尔实验室等研究机构走在前列。 Myung-Heeson 等提出了一种基于生成树协议 STP 的物理拓扑发现算法;Yuri Breithart 等提出了基于地址转发表 AFT 的物理
31、网络拓扑发现算法;Richard Black等提出一种基 于探测包的技术;Lowekamp等人提出了一种基于非完整地址转发表的拓扑发现算法。 国内在网络拓扑发现方法方面也有所研究。郑海、张国清等人提出了一种算法,只 要下行端口的地址转发表是完整的就可以构造出交换机之间的连接关系;陈松、王珊等 提出了一种新的物理网络拓扑发现算法, 其基本思想是采用树的形式表示交换机拓扑连 接关系,再利用生成树集合演绎树的变化过程来完成拓扑发现。 - 2 - 兰州交通大学专业学位硕士学位论文 很多网络厂商也纷纷意识到了拓扑管理技术的重要性, 相继开发了相应的协议和工 具。 如北电网络公司 Nortel 开发的 O
32、ptivity Enterprise和思科网络公司 Cisco开发的拓扑 发现协议(Cisco Discovery Protocol, CDP)。 国内这方面的研究起步较晚,主要是一些重大的国家重点基金项目,在网络管理、 网络拓扑发现方面作了系统性、深刻的研究工作。比如国家重点基金项目“基于网络探 测的 IP 网络拓扑发现和性能分析”等。国内许多高校也有一些科研项目,开展了网络 拓扑发现方面的研究。国内的一些厂商也纷纷推出了相关的产品。比如锐捷公司的 StarView 网络管理软件,游龙公司的 SiteView 网络管理软件,联宇科技有限公司的 EasyMan 软件等。 随着 IPv6 技术的
33、发展和逐渐地广泛应用,对 IPv6 网络的研究也逐渐深入,人们开 始关注 IPv6 网络的拓扑自动发现。由于 IPv6 网络地址数量巨大以及 IPv6 协议地址结 构等方面发生了变化,适用于 IPv4 网络的拓扑发现方法和技术不一定能直接用于 IPv6 网络环境中,必须做出相应的调整、改进才能适用用于 IPv6 网络环境中。 综上所述,对于拓扑发现技术,基于 SNMP 协议的网络层的拓扑发现研究较早, 发现机制和算法相对成熟;而对于子网内的链路层拓扑的发现,发现机制不同于网络层 拓扑,研究较晚,到目前还没有成熟的方法和技术,因此它是目前网络拓扑发现领域内 一个新的研究方向,发现难度比较大,需要
34、做的研究工作还很多。 1.2.2 市场上流行的部分产品 伴随着计算机网络的发展,对网络管理软件的需求也越来越强,许多厂商开发了自 己的网络管理产品。目前业界应用较为广泛的产品主要有: (1)HP公司的 OpenView Network Node Manager 软件 HP OpenView是第一个出现的网络管理系统,是一个非常经典的网络管理软件,是 一个广泛使用、 获得大多数用户认可的网络管理系统, 多次被评为最优秀网络管理软件。 它的主要特 点是给第三方网络管理应用程序开发人员提供了二次开发平台,同时也可 向用户提供最终的可安装产品。 HP OpenView 为 UNIX 和 Windows
35、 环境提供了统一的系统管理,为运行在不同的 平台上的软件版本提供了统一、直观的界面,所以 IT 部门能够很容易地控制并配置大 量的多机种系统。 HP OpenView的主要功能:网络性能与吞吐量的分析;自动发现网络拓扑结构;历 史数据分析;故障报警机制。 OpenView 的网络拓扑自动发现功能相当不错,启动后能立即自动发现本网段的结 点,并将网段中的路由器或网关、子网以图标的形式显示在拓扑图形上。 (2)思科公司的 Cisco Works 软件 - 3 - 兰州交通大学专业学位硕士学位论文 由 Cisco公司开发,是一个基于 SNMP的网络管理软件,并且使用了 Cisco的专门 技术 CDP
36、 对思科公司的网络产品进行精确的搜索, 所以 CDP 只能搜索本公司的网络产 品,对其它厂家的网络产品不具备兼容性。 Cisco Works 主要功能:自动安装管理器;通用命令管理器;网络设备的监控;网 络设备的设置;路径工具;故障预警;实时图形。 CDP 支持对 VLAN 的拓扑发现,前提是网络设备必须是 Cisco的产品。 (3)IBM 公司的 Tivoli NetView及 Switch Anlyzer IBM Tivoli NetView检测 TCP/IP网络、显示网络拓扑结构、相关信息和管理事件以 及 SNMP 陷阱、监控网络运行状况并收集性能数据,配合 Tivoli Switch
37、Analyzer可以对 网络实施第二层监控。Tivoli NetView提供了强大的信息过滤能力,可通过设置阀值来 减少部分冗余报警;通过可扩展性和灵活性满足大型网络管理人员的使用需要,以管理 关键任务。 (4)锐捷网络公司的 StarView 星网锐捷网络公司是国内一家较早从事网络设备解决方案的网络厂商, 公司推出的 网管软件 StarView是国内教育行业应用较广泛的网络管理产品,具有灵活的操作性能, 并且实现模块化,有利于用户定制。其中的功能如设备管理、网络拓扑管理、性能监测、 事件管理与预警管理等网管智能性较高。 网管的定量化分析是通过强大的后台数据库支 持,结合报表统计等功能实现的。
38、StarView可以自动检测与描绘网络拓扑结构,集成了 目前最先进的二层拓扑发现算法,有效实现了拓扑视图和集中式管理。 在网络拓扑管理方面, StarView可以按照网络管理员的需求自行组建物理视图,软 件提供了各种各样的的功能视图和管理窗口, 不但将网络设备拓扑图一目了然的展现在 用户面前,而且能直接进行各种操作,完成设备的配置、控制与监视,功能非常强大。 1.3 课题研究的目的和任务 目前市场上流行的网络管理软件都相当昂贵,并且很多客户反映,花大量资金购买 的网管软件也不一定能达到预想的效果;另一方面,这些软件大多数不利于二次开发。 因此,结合校园网的自身需求,量身定制一个低成本、易用、可
39、靠、有效的网络管理系 统十分必要,一方面可节省大量经费,另一方面可以提高网络管理人员的技术水平和科 研水平,随着日后网络的变化还可以进行进一步开发。 网络拓扑的发现和管理是网络管理系统的重要基础功能, 本文所阐述的校园网拓扑 自动发现系统就是为了解决校园网络中的拓扑发现和管理问题而提出的。 系统的一般原 理是:通过拓扑算法,利用网络协议或网络工具,自动探测、扫描整个网络,以获取网 络设备及主机的活动信息和它们之间的连接关系,并以图形化的方式显示给网络管理 者。 - 4 - 兰州交通大学专业学位硕士学位论文 - 5 - 本系统紧密围绕我院校园网特点进行设计。交工院校园网主要有三个特点:一是地 理
40、跨度大;二是网络主干设备是三层交换机;三是主干网络设备支持 SNMP 协议;四 是还存在大量旧的网络设备。因此,本文的拓扑发现以三层交换机为网络核心,研究重 点是主干拓扑发现和链路层拓扑发现,并在此基础上发现哑设备。 本文将对现有的拓扑发现方法及 SNMP 协议进行深入分析和研究,在此基础对校 园网络拓扑发现系统进行设计,并最终实现预定功能。 具体来讲,本课题的主要任务包括: (1) 分析了当前网络拓扑发现的主要技术,及解决这一问题的主要方法。 (2) 应用一种网络层发现算法,对主干网络设备进行拓扑发现。 (3) 应用一种物理层发现算法,对交换机的链接关系进行拓扑发现。 (4) 对发现后的网络
41、拓扑结构进行布局,并以图形化的方式显示出来。 (5) 对校园网络拓扑发现系统的系统结构和功能模块进行设计,并利用 Eclipse + ObjectSNMP开发环境实现该系统。 (6) 利用 Dynamips 实验环境对拓扑发现系统的模块功能进行测试,验证拓扑发现 算法的正确性、有效性。 (7) 通过在正式校园网环境中的使用,验证该系统能适用于现行的校园网络环境 中。 兰州交通大学专业学位硕士学位论文 2 拓扑发现的相关技术 拓扑自动发现是利用网络协议或网络提供的可用工具,通过拓扑算法,自动探测整 个网络,以获取网络设备的存活信息和它们之间的连接关系。本章将分析拓扑发现的各 种方法,并对它们进行
42、相应的比较。一般情况下,拓扑发现按照所在的层次不同可以分 为网络层拓扑发现和数据链路层拓扑发现, 按照表现形式的不同可以分为逻辑拓扑发现 和物理拓扑发现。因为网络层拓扑发现主要是发现路由器、三层交换机和子网的连接关 系,子网间设备的表现形式主要是逻辑表现方式,因此习惯上网络层拓扑发现和逻辑拓 扑发现经常混合使用。数据链路层拓扑发现主要是发现链路层的设备,发现的目标主要 是连接关系较难确定的交换机及主机等,而表现形式更偏重于它们之间的真实连接关 系, 即物理表现方式, 因此习惯上数据链路层拓扑发现和物理拓扑发现也经常混合使用。 本章将使用逻辑拓扑发现和物理拓扑发现的表述方法,对拓扑发现的各种方法
43、进行介 绍,并做相应的对比。 2.1 网络层拓扑发现技术 2.1.1 基于ARP ARP 协议的广泛应用是因为以太网技术是目前应用最普遍的网络技术。任何有以 太网接口的网络层设备如果要通过网络层协议,如 IP 协议与其他设备通信,就必须支 持 ARP 地址解析协议。该协议在本地维护着一张 ARP 表,该表中记录了通过该设备连 接的以太网中其它网络设备的 IP地址和 MAC地址的对应关系。 根据网络中间一台路由器或者交换机的 ARP 表,可以发现与其各个以太网端相连 的以太局域网中的所有其它网络设备,再判定连接的设备类型是路由器或者交换机,并 根据 ARP 表继续进行发现,从而得到整个以太网络的
44、拓扑结构关系。 这种方式要求连接设备间必须要有通信流量后才能发现。 这种方法适合于局域网发 现,发现速度快、发现效率高,但 ARP 表一般为动态生成,所以一般情况下这种方式 不适合在大规模网络环境中应用, 且不能对那些不支持 ARP 协议的网络设备进行发现。 2.1.2 基于ICMP 因特网消息控制协议 ICMP 是一个网络层的协议,和 IP 协议密切相关。基本上支 持 IP协议的设备几乎都支持 ICMP协议, ICMP是一种用于主机和网关传送控制信息或 差错信息的协议。主机使用这种机制测试目的主机的是否可达,网关使用这一机制报告 递交信息传递过程中的状态。 我们熟知的 Ping和 Trace
45、route是两种基于 ICMP协议的路 由信息探测工具。Ping利用 ICMP协议的 ECHO REPLY 消息来检测主机是否可达,从 而判断目标主机的连通性;Traceroute则是利用 IP协议中的 TTL字段以及 ICMP TIME - 6 - 兰州交通大学专业学位硕士学位论文 OUT 和 PORT UNREACHABLE 消息来发现到目的主机的路由信息, 确定数据包传递的 路径。在基于 ICMP拓扑发现的具体实现一般是这样的:首先利用 Traceroute操作得到 目的 IP 的路径,把此路径经过的设备信息、IP 地址、网段信息记录下来,形成详细的 网络路径表;然后利用 Ping命令依
46、次检测每一个网段地址区间中的每一个 IP地址,以 便确定每一个区间的所有活动主机,并把得到的结果记录下来展现在拓扑结构上。再结 合路径表便得到了包含路径信息及各子网活动主机信息的网络拓扑图。 使用 ICMP协议的拓扑发现可以检测到网络设备的活动情况,且实现较为简单。但 由于它在子网的发现过程中要对整个子网范围的 IP逐一进行 Ping测试,费时较长并且 增加了网络的负担,同时无法得到有关网络接口的详细信息。另外一方面,防火墙技术 的广泛应用使得很多情况下 ICMP信息无法顺利通过网络设备到达主机。 所以这种方法 仅仅适合于小范围,如子网内且防火墙关闭对 ICMP限制的拓扑发现,不适合大范围的
47、局域网络拓扑发现。 2.1.3 基于OSPF路由协议 OSPF 开放最短路径优先是一个基于链路状态的协议。采用 OSPF 的路由器彼此交 换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。它们采用的 策略是每个路由器主动地测试与其相邻站路由器相连链路的状态, 并将这些信息发送给 它的其他邻站,而邻站将这些信息在系统中传播出去。每个路由器接收这些链路状态信 息,并建立起完整的路由表。 大型网络大都可以划分为三层,最上层是骨干网络,中间层是自治系统,第三层便 是从各个自治系统划分的很多不同的区域。在自治系统中使用的协议主要是 OSPF 协 议。 大型网络的骨干网络会被分解成为多个自
48、治系统。自治系统是按照网络管理、地理 区域或者是行政上的不同被划分成不同的组的路由器的集合。一个自治系统,必须由一 个管理机构来统一分配编号,进行统一地登记。通常地,一个自治系统拥有相同的路由 选择策略,因为它们是在相同的技术主管部门下运行的一组路由器构成的。 在基于 OSPF 协议的拓扑发现算法中,可以通过间隔一定时间导出路由器配置文 件,也可以定期导出 OSPF 的链路状态数据库来实现网络拓扑结构的发现,还可以使用 协议抓包器,比如 Sniffer抓取所有 IP数据包,从中分析出拓扑结构的改变和变化。直 接获得 OSPF 的数据库是更加快捷的方法,因为 OSPF 为每个路由器都保存了一份网
49、络 链路状态数据库。首先在此数据库的基础上提取原始网络拓扑信息,再通过实时获得更 新的链接状态公告 LSA来进一步同步改变了的网络拓扑信息。 这类算法具有快速、高效和准确的特点。但该算法正常运行的前提是目的网络内的 路由器都必须支持 OSPF 协议;另一方面,基于 OSPF 的算法实现难度较大。因为算法 - 7 - 兰州交通大学专业学位硕士学位论文 必须对 OSPF 协议进行编程实现,包括实现协议的各种命令原语,构造组装和解析协议 数据单元。 2.1.4 基于DNS Internet 上连接到一个 IP 网络的所有计算机都至少有一个唯一的 IP 地址。因为记 住所有使用机器的 IP地址是很困难的,域名系统 (Domain Name System, DNS)应运 而生。DNS主要用于建立域名和 IP地址的对应关系,此外它也能保留有关计算机的一 些其他信息,如使用的硬件和操作系统、邮件交换器及其他一些信息。因此 DNS 是一 个规模非常大的分布式数据库,在这个数据库中保存有服务器、网络设备、用户计算机 等信息。所有的因特网系统和服务器主机都在这个数据库中注册了一个 DNS 域名,利 用这些域名可以很便利的访问主机地址和邮件系统。DNS 还有一项反向查找功能,