基于SNMP的拓扑发现的研究
2009-03-30赵飒飒
[摘要]随着现代网络规模不断扩大和结构日趋复杂,网络管理成为网络系统正常运行的关键,网管系统的基本功能是以图形方式直观地将被管对象显示出来,因而拓扑发现是不可缺少的一部分。拓扑发现确定网络元素之间的互连关系,是配置管理的中心,故障管理的基础。
[关键词]SNMP拓扑发现
中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)0210048-01
一、网络的结构
目前的TCP/IP网络全部是通过路由器互联起来的,路由器工作在OSI的第三层,即网络层。路由器利用网络定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,这样的网络连接属于网络的逻辑拓扑连接。逻辑连接的网络拓扑实现起来相对来说比较容易。因为,主机和路由器中都保存有一个路由表,路由表中明确的列出了到达目的地的下一跳路由器,并且MIB库中有对该路由标的抽象,通过使用SNMP协议可以很容易的得到路由设备的路由表信息。这样,只要从管理站出发,到达路由表中的规定的下一跳路由器反复执行直到目的地,就可以发现IP路由层的网络拓扑。
二、Internet的拓扑结构
众所周知,Internet是由许多子网互连而成的,而且分层管理。第一层是Internet的主干,由核心网关互连而成;下一层是由各个自治系统所包括的子网组成。
各个子网通过各自的网关同其他的子网通信,这些子网可以是一个局域网,也可以是某个局域网中的一个子网,它们都连接到网关的一个端口上,网关的端口可以和一个子网相连,也可以和其他网关相连。当子网的某一机器发送数据的时候,数据包首先到达该子网的缺省网关,缺省网关检测数据包中的目的地址,根据其路由表中的信息判断目的地址是否在与自己相连的子网中,如果是,则把数据包发送到目的地,否则根据路由表转发到规定的下一个网关。这样下一个网关做类似的处理,依此类推,数据包将最终到达目的地址。
基于SNMP协议的网络拓扑发现主要是通过一些算法,使用SNMP协议从网络设备的MIB信息库中提取有用的信息来完成网络的拓扑发现。使用SNMP协议存在的问题是,并不是所有的网络节点(如:未被管理的交换机)都实现了SNMP协议,或者网络节点在拓扑发现的时候处于关闭状态。因此,只是靠SNMP并不能发现所有的网络节点,我们还需要处理SNMP的数据来获得拓扑的详细信息,特别是在数据链路层的网络设备。下面将分层进行说明网络的拓扑发现过程。
三、基于路由裹的拓扑发现方法分析
将上述算法中的节点替换成路由器,该算法就实现了网络层拓扑结构的遍历。基于TCP/IP的互连网是由全世界成千上万的网络互连而成的,其间的核心设备就是路由器。当今的主流路由设备都提供了对SNMP协议的支持,因此网络层的拓扑发现,主要是采用基于SNMP协议路由表的方式发现主干路由器,路由表是网络管理的重要信息,从路由表中提取网络拓扑的有关信息,而MIB提供了访问路由表的方法。
路由表存储有关可能的目的网络节点和怎样到达目的网络节点的信息,每台主机和路由器都要为数据报选择路由,因此它们都有IP路由表。路由表中包含的是目的地址而不是特定主机的地址,这样可以大大减少路由表的大小,提高路由选择的效率,而把特定主机的信息限定在这些主机运行的特定环境中。一个路由表包含一系列的(N,R)序偶对,其中N代表目的网络的网络地址,R代表到达网络N的路径上下一个要经过的路由器的IP地址,通常称路由器R称为下一跳。路由器的路由表仅仅指定从该路由器到达目的网络路径上的一步,其中并不包括到达目的网络的完成路径。
从路由表的信息,我们可以知道IP数据报传输的路径,从而得到网络连接的拓扑。在一个由路由器连接起来的互连网中,假定其中所有的连接都是连通的,那么,任何一条从源网络到目的网络的IP数据报的传输路径都会在路由表里面表现出来,因为路径本身就是通过路由表来选择的。
在一个路由器R的路由表中,包含了经过R的所有IP路径。和路由器R直接相连的路由器都将在路由器R的路由表中出现。即,路由器R的路由表中的所有“下一跳”的集合,就是和R直接相连的所有路由器的集合。从某个路由、器R开始,找到和它相连的所有其他路由器R1,R2,…Rn,在分别在R1,R2,…Rn上重复这个过程,递归下去,可以找到一个互连网络里的所有路由器。这就是对一个图进行广度优先遍历的过程。但是这样发现的范围很多,如果不加以控制,可能造成搜索时间过长的情况下,可以采用对某个路由器向下发现跳数进行计数,并设置最大值,当从这个路由器出发的发现跳数达到最大值的时候,停止搜索。也可以采用限制搜索时间,超时则不再向下搜索。
四、结束语
网络的拓扑发现进行网络管理的重要手段和工具。但是设计和实现一个高效的网络拓扑搜索工具一直是网络管理领域中重要但是又很困难的部分。本文根据网络本身的结构特点,分析构建网络的拓扑图的方法,将网络的拓扑构建分成两级来实现:一级拓扑和二级拓扑。一级拓扑实现了路由设备和子网之间的互连的拓扑发现,二级拓扑完成了子网内主机的互连以及子网类型的分析。对于采用大量的交换机互连的局域网,为了精确的发现链路层交换机设备之间,以及其与主机、路由设备的互乱,就需要分析交换机的工作原理,以及交换机所使用的支撑树算法(spanning Tree Protocol),并从中找出了对于拓扑发现有用的信息,提出了另一种链路层设备的拓扑方法。
作者简介:
赵飒飒,女,汉族,山东淄博,软件工程硕士,淄博职业学院信息工程系,助教,主要研究方向:网页设计,计算机网络。