摘要: 网络 拓扑发现是网络工程的一个重要的研究子分支,是实现网络管理的基础性环节。由于大规模ip网络本身所具有的大规模性、动态性、异构性等特点,使得面向大规模ip网络的拓扑发现成为一项非常具有挑战性的课题。为了提高ip网络拓扑发现的效率和真实性,人们发明了多种多样的网络拓扑发现方法。本文介绍网络拓扑发现的分类,重点探讨了基于snmp的网络拓扑发现技术。
关键词:大规模ip网络;拓扑发现;snmp
一、网络拓扑发现概述
(一)网络拓扑发现的概念
网络拓扑是指网络元素及其之间的连接关系。这里所讲的网络元素,既可以是路由器,也可以是交换机、网桥等,还可以是客户端、服务器,甚至是子网、as等。这里所讲的网络,既可以指局域网,也可以是互联网,也可以是互联网的一部分。而网络拓扑发现,就是指发现并确定网络元素及其之间的连接关系。
(二)互联网的拓扑结构抽象
网络技术 发展 到今天,除非为某种特殊应用而专门设计的局部网络,以太网( ethemet)已经成为事实上通用的网络组网方式,tcp/ip协议簇已经成为事实上的网络通讯协议标准。从概念上说,互联网可以看作是一个个小的局域网络通过互联(互连)而成的。但一方面,组成互联网基础的各个局域网络的拓扑结构本身可能很不相同,另一方面,各个局域网络的之间的互联(互连)关系也千差万别。因此,互联网的拓扑结构不可能用局域网三种基本的网络拓扑结构进行抽象。wWW.133229.COm
二、网络拓扑发现的分类
(一)按照网络拓扑发现的对象进行分类
按照对象的不同对网络拓扑发现进行分类,可分为面向域内的网络拓扑发现和跨域的网络拓扑发现。
面向域内的拓扑发现,是指面向同一as或者同一isp、甚至更小规模的局部网络的拓扑发现技术。跨域的网络拓扑发现则是指面向不同as(或isp)网络的拓扑发现技术。二者的不同主要在于,面向域内的拓扑发现网络管理员一般具有对网络元素的管理和控制权,而跨域的拓扑发现网络管理员一般无法对域外的网络元素进行管理和控制。由于探测的对象不同,因此所适用的网络发现方法以及网络拓扑发现的目的等均有很大的不同。由于网络管理员不能对网络元素进行管理和控制,因此在一般情况下,跨域的网络拓扑发现比域内的网络拓扑发现困难得多。
(二)按照网络拓扑发现的方法进行分类
按照发现方法对网络拓扑发现进行分类,可分为主动式网络拓扑发现和被动式网络拓扑发现。
所谓主动式的网络拓扑发现,是指将一组精心设计的数据报注入被探测的网络,通过对网络反馈信息进行分析,得到网络的拓扑连接情况。例如,各种基于traceroute的网络拓扑发现方法,就是典型的主动式网络拓扑发现。基于snmp的网络拓扑发现,从原理上也应该归类为主动式的网络拓扑发现方法。由于主动式网络拓扑发现可以根据探测需要,由探测发起者对探测数据报进行专门设计,因此适用情形较广,可以探测网络范围可以很大,并且可通过提高注入数据包的 科学 性和合理性,不断提高网络拓扑探测的准确度。主动式网络拓扑探测的缺点主要是探测数据报将增大网络的负荷。在大规模多点探测中,甚至有可能导致网络性能的严重降低。在极端的情况下,由于注入数据报严重改变了网络负荷,甚至使探测到的网络拓扑与实际情况不相符。
而被动式的网络拓扑发现,则是指对网络元素间的数据进行侦听,通过对侦听得到的数据进行分析,进而得出网络的拓扑连接情况。例如,通过侦听路由器间的ospf交换数据包来探测网络拓扑的方法,就是一种被动式的拓扑发现方法。被动式的网络拓扑发现方法不向网络注入数据包,因此对网络负荷的影响较小。但由于被侦听的只是局部网络,因此往往通过分析也只能得到局部网络的拓扑情况。另外,侦听得到的数据可能存在很多不真实的数据,如不能对数据进行有效的分析处理,有可能得到不真实的网络拓扑图。
(三)按照网络拓扑发现的粒度分类
根据粒度的不同,网络网拓扑发现大致可以分为粗粒度、中间粒度、细粒度三个级别。
粗粒度是一般指as级别的拓扑发现。在粗粒度的拓扑图中,节点代表一个域,而边则代表域间的连接。中间粒度是指集群(路由器集簇)间的拓扑发现。在中间粒度的拓扑图中,节点代表单路由器或主机的特定集群,边则代表路由器或集群主机之间的连接。细粒度是指路由器级的拓扑发现。在细粒度的拓扑图中,节点代表路由器(子网或主机),边代表路由器的连结。目前,面向internet的拓扑发现的研究主要集中在as级和路由器级两个方面。
三、基于snmp的 网络 拓扑发现分析
(一)snmp协议简介
snmp c simple network management protocol)即简单网络管理协议,目前有snmpvi、snmpv2两个版本。snmpvl于1990年开始发布,其规范文为rfc1157等。snmpv2于1993年开始发布,rfc1441对snmpv2进行了系统地介绍。目前,最新版本snmpv3的规范文本为rfc2571。snmp采用“管理者一代理”的模式,实现对网络设备的监视和控制。采用“轮询”与“陷阱”两种方式,实现管理进程与代理进程之间的信息交互,共定义了基本的5种报文:get-request操作:从代理进程处提取一个或多个参数值;get-next-request操作;从代理进程处提取一个或多个参数的下一个参数值;set-request操作:设置代理进程的一个或多个参数值;get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的。它是前面3种操作的响应操作;trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
snmp是一个应用层协议,尽管可以在传输层采用各种各样的协议,但是在snmp中,用得最多的传输层协议还是udp。另外,为了实现对网络的管理,snmp又对其它两个必需的部分进行了定义。一个是管理信息库mib(management information base),管理信息库包含所有代理进程的所有可被查询和修改的参数。rfc1213定义了第二版的mib,叫做mib-ii。另外一部分是关于mib的一套公用的结构和表示符号,叫做管理信息结构sib( structure of management information),由rfc1155定义。
(二)基于snmp的网络拓扑发现的基本原理
所有的网络设备维护一个mib(管理信息库),保存该设备上与网络运行相关的全部信息,并对管理工作站的smmp查询进行响应。管理工作站通过发送请求信息,查询储存于网络路由设备中的管理信息库mib中的相关信息,从中解析出网络拓扑相关的信息,就可以构画出整个网络的拓扑结构。从原理上看,基于snmp的网络拓扑发现类似于图的广度优先搜索。
mib中的路由表iproutetable定义了该设备的路由信息,其中与拓扑发现相关的表项有:iproutedest、iproutemask、iproutelf index, iproutenexthop、iproutetype等。iproutedest记录以该设备为起点可以到达的目的地址范围,iproutemask记录的是目的网络的子网掩码,iprouteif index记录iproutedest所对应的接口索引号,iproutenexthop记录本接口所对应的下一跳网关地址或者直连子网的网关地址,iproute升pe记录iproutenexthop所表示的地址与该设备的连接关系。
(三)基于snmp的网络拓扑发现的优缺点及适用范围
基于srrnrn的网络拓扑发现的优点是发现过程和算法简单,目标明确,发现效率高,系统和网络开销小。由于入nb的信息可以自动随着网络的状况更新,这样通过srrnrn获取的拓扑信息就总是反映网络最新的状况。另外,此方法除了可以实现网络层拓扑探测外,经过对入心b数据进行精心分析,还可以实现对链路层的拓扑发现。基于snmp的网络拓扑发现的主要缺点是方法受到路由设备访问权限的限制。随着网络安全问题越来越受的人们的重视,因此采用此方法开展跨管理域的网络拓扑发现变得越来越困难。另外,除了标准的mib信息外,有的厂家为自己的设备开发了专门的mib,如果在拓扑自动发现程序中使用了这些mib,其处理上就需要随厂家的不同而作特殊的处理。
参考 文献
[1] 熊英,基于tcp/ip的网络拓扑发现方法的研究.湖北 工业 大学学报.2005
[2] 宰家斌,大规模网络拓扑发现方法分析研究, 计算 机仿真.2008
[3] 李可,ip网络拓扑自动发现研究,计算机工程,2004