IP网络拓扑自动发现_第1页
IP网络拓扑自动发现_第2页
IP网络拓扑自动发现_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IP网络拓扑自动发现目匕方交通大学马文彬张慧勇自从20世纪90年代以来,越来越多的企业及个人在加入Internet网,使网络规模持续扩 大。为了适应越来越多的流量,新节点、新链路不断的被引进到网络上,从而使手工维护很难跟 上网络的变化,给网络管理带来困难。网络由一起工作的大量实体构成,向用户提供某种服务。这些实体功能由硬件和软件执行, 一些出现在真实网络中实体的例子有路由器、服务器、普通主机、链路等,所有这些都影响着网 络运行的方式及提供给最终用户的服务质量。例如,如果一个应用服务器(Web Server )出现宕 机而从网络上剥离下来,那么用户将得不到他们所期望的服务(浏览网页)。提到拓扑发

2、现,一 般是指发现完成最终用户服务所涉及到的所有实体,不仅要发现实体,而且要发现实体在网络中 所起的作用及实体间互相连接的方式。网络拓扑对网络管理、网络规划非常有用。例如,网络故障、流量瓶颈等重要信息能直接显 示在网络拓扑上,这样网络管理员对当前的网络状况就有一个清楚的认识,对哪里发生了故障一 目了然。如果网络拓扑上显示一条链路总处于满负荷传输状态,那么扩大该条链路的容量对提高 网络性能将有很大帮助。此外,网络拓扑对网络仿真也十分重要,要仿真能否在现有网络上新开 放一种应用,必须首先有正确的网络拓扑。获得网络拓扑的最简单的方法莫过于让管理员根据实际网络手工绘出其拓扑,但现在网络越 来越复杂,越

3、来越庞大,并一直在膨胀,而且实体在网络中担负的功能也越来越复杂,要跟踪这 样一个网络需要花费很多时间或精力,而且网络一旦有所改变所有工作必须重做。网络拓扑自动 发现正是基于这个原因发展起来的,本文对能用于拓扑发现的一些常用的工具和技术作了简要的 介绍,并基于笔者的实践提供了一个简单的算法实现,该算法主要针对同一个管理机构下的IP 网络的拓扑自动发现,更复杂的拓扑发现算法可在此基础上进一步扩展。一、用于拓扑发现的工具PingPing命令是IP网上最古老的一种工具,用来监测网络节点是否活着,或用于监测到网络节 点间的往返时延(RTT)。通常Ping只涉及网络上的源和目的两节点,而忽略网络细节。另外

4、我 们可以使用广播Ping,其Ping的地址不是一个单一的地址,而是子网的广播地址,所有位于该 子网的主机均对此Ping包进行响应,从而一次就可得到子网内的全部活动主机。使用Ping的最大问题是,当Ping 一个活着的主机时,其往返时延往往在几十毫秒左右,但 Ping 一个不存在的或宕着的主机,一般比较常用的超时通常为20秒,再加上为了减少丢包对测 量结果的影响而采取发23个Ping包,这样对这类主机的监测代价就非常大。这个问题最直接 的解决方案是减少超时值,但是必须注意不要小于网络实际的往返时延。通过精心设计超时和重 发策略(随着跳数的增多,超时相应增大),可以有效减少等待时间同时又减少误判

5、。使用广播Ping的问题是,现在实际网络中广播Ping很少得到完全支持,部分网络由路由器 代替子网内的主机响应。在另外一些网络中主机根本就不对广播Ping进行响应,甚至路由器根 本不转发能引起广播的包。这是基于网络安全的考虑,因为可以利用这个特性进行拒绝服务攻击, 例如向几个大的子网进行广播Ping,并把源地址设置为受害者的地址,这样受害者就会淹没于 大量ICMP Ping的响应包,从而拒绝提供任何服务。对该问题的一个解决方案是设计一个专门的 Broadcast Ping程序,其内部实现是直接将子网的广播地址转变为多个主机地址,然后启动多 个线程或进程来分别向主机发送Ping包,从而获取子网内

6、的全部主机地址。Tracerou teTraceroute命令是TCP/IP家族内另一个比较早的工具,它可用来发现测试点和目标主机之 间的路由器。路由器在转发包之前总是将其TTL值减1,如果TTL降为0,则路由器向源地址发 送TTL-Expired ICMP消息。Traceroute实现的原理就是应用路由器的这个特性,通过发送TTL 逐渐增大的探测包,由测试点到目标间这条路经上所有的路由器依次向测试点发送TTL-Expired ICMP包,从而发现所有路由器。因为几乎所有的路由器设计时都实现了发送TTL-Expired ICMP 消息的功能,所以大多数情况下Traceroute的结果是准确可信

7、的。由于采用逐渐增大TTL值的 方法,每探测一个目标需要依次发送不同TTL值的多个包,因此用Traceroute获取结果比Ping 要慢的多。可以设计一种并发式的Traceroute命令,一次发送不同TTL值的多个包,从而加速 路由器的发现速度。DNSIP地址是为网络上的路由器或主机等机器设计的,它不符合人类的记忆习惯,DNS(Domain Name System)就是为了解决这个问题而开发的。DNS系统主要用于网络设备IP地址到名字的映 射,同时也维护一些其他信息如设备的硬件平台及操作系统等。使用DNS服务器提供的区域传输功能可以一次获取域内许多主机和路由器,快捷方便,这是 它的优点。但如果

8、主机的地址通过DHCP获得,则DNS对此就无能为力,此外,DNS服务器提供 的信息可能与实际情况不一致,甚至有些DNS服务器没有提供区域传输功能。尽管有诸多缺点, DNS在拓扑发现中还是很重要的,我们可以把DNS返回的信息作为其他算法的起点;我们还可以 在不知道网络具体结构的情况下,使用不同时间返回来的信息直接用来估算网络的增长速度。SNMPSNMP (简单网络管理协议)的基本思想是所有的网络设备维护一个MIB (管理信息库)保存 其所有运行进程的相关信息,并对管理工作站的查询进行响应。SNMP协议描述了一种从MIB库 中获取信息的方法,对设备唯一的要求是支持SNMP并且MIB中的信息足够丰富

9、。使用SNMP的最大优点是信息自动随网络的状况更新,这样通过SNMP获取的拓扑信息总是反 映网络最新的状况。其缺点是并不是所有设备都支持SNMP协议,而且除了标准的MIB信息外, 各厂家都为自己的设备开发了专门的MIB,如果在拓扑自动发现程序中使用了这些MIB,其处理 上可能不得不随厂家的不同而作特殊的处理。因此,我们建议尽量使用标准MIB。本文中用到的 MIB组有System组、Interfaces组、IP组,它们均为当前MIB-II下的标准组。其它工具或技术除了上面介绍的几种常用工具外,我们还可利用节点的ARP表查询它直连的设备,利用路由 协议(如OSPF、BGP)发现所有子网或网络,发现

10、所有的路由器,在BGP下还可发现一条路经经 过的自治域(Autonomous Systems )。对于非IP网络,可利用专门的技术(对IPX网络可采用 SAP)发现网络拓扑信息。此外,一些厂家专有的技术如Cisco的CDP (思科发现协议,仅用于 Cisco设备)、Netflow技术等也可用于拓扑发现。二、算法实现在本小节,我们给出一个IP网络拓扑自动发现算法,使用的技术是ICMP(Ping)和SNMPo 本文提供的算法要求输入SNMP Read-Community,适用于发现同一个管理机构下的IP网络。算 法首先从本地子网开始,通过Ping获取本地所有活动主机,利用SNMP区分出普通主机和路

11、由器, 然后对路由器进行查询,下载路由器的System组、Interfaces组、IP组的信息。获取路由器直 连的网络,进行下一轮运算,直到发现所有网络或到达指定的深度(跳数)。程序主要涉及四大 模块:主循环控制模块:程序初始化及算法深度控制,到达指定深度后跳出循环;子网搜索模块:搜索子网内的所有活动主机和路由器;ICMP模块:处理ECHO请求及应答;SNMP模块:处理SNMP相关操作。程序中两个重要的类为Rou terClass和Net Class。Rou terClass包括两个指针分别指向 IpList和Net Lis t, IpList存放路由器的IP地址,Ne tList存放路有器连

12、接的网络。Net Class 包括两个指针分别指向Rconnect和Hconnect。本算法使用了两个集合:临时网络集合,已发现网络集合。临时网络集合用于存放当前深度 和下一深度中还没有被搜索的网络,对已搜索的网络需要添加到已发现网络集合。算法中为了避 免多次发现同一路由器(因为路由器有多个IP地址),需要遍历路由器的IPList。程序使用的 主要算法流程如下:子网搜索模块(1)利用Ping搜索子网内所有的活动IP地址。(2)利用SNMP区分路由器和普通主机,并分别添加到Net Class的Rconnect和Hconnec t。(3)针对每一个路由器,下载有关MIB变量(System组,Int

13、erfaces组,IP组),对MIB 变量分析,分别写入Rou terClass的IPList和Net Lis t。(4)为防止路由器被多次发现,要遍历RouterClass的IPList。(5)将在(3)中发现的而又没有搜索的网络添加到深度为n+1的临时网络集合中。主循环控制模块(1)从深度为n的临时网络集合中抽取一个子网进行子网搜索(调用子网搜索模块)。(2)将(1)中搜索的网络添加到已发现网络集合。(3)重复进行(1)和(2)直到临时网络集合为空。(4)如果n小于指定深度(nN), n加1后跳到1,否则算法停止。本文提供了一个可用于IP网络的拓扑自动发现算法。这个算法使用了路由器的MIB信息和 ICMP (Ping)的结果来产生拓扑。

温馨提示

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

评论

0/150

提交评论