论文摘要:在网络管理中,网络拓扑信息是其它所有管理功能的基础,快速高效准确的发现网络拓扑信息是当前网络管理领域关注的焦点。本文正是在现有网络层拓扑发现算法基础上提出改进设计,将基于SNMP和基于通用协议两种算法进行综合,兼顾效率和通用性。
论文关键词:网络拓扑发现
1、网络拓扑发现的重要性
网络的拓扑是指网络中各个节点在物理上或逻辑上的布局,称为网络的物理拓扑或逻辑拓扑,相应地包含了网络节点之间物理的或逻辑的关联关系,包括互连设备(如路由器、网关、网桥、交换机等)、主机和子网。
掌握被管网络准确的且及时更新的拓扑信息是网管系统实现性能评估、事件综合分析、故障定位、资源管理等一系列功能的基础。例如,网络中单一故障可能导致相关的大量设备都产生报警信号而形成报警风暴。这时,对于故障原发节点的准确定位显然离不开关于网络布局和节点连接关系的信息。精确而完整的网络拓扑图有助于分析设备和链路失效的影响,提高网络管理的效率。网络管理员可以通过拓扑图了脚整个网络结构;唯有得到正确的网络拓扑,方能对网络进行合理的管理。
在网络发展的早期,网络管理员手工地承担了网络拓扑图建立和维护的工作,而在网络结构日趋发杂易变,网络管理要求愈加深入全面的今天,由网管系统自动发现网络拓扑并及时维护变化是十分必要的。
2、网络层拓扑发现的常用工具和算法
网络拓扑发现分为网络层和链路层两级发现,网络层拓扑发现是通过查询指定区域缺省网关的路由表,找出一定范围内的路由器与子网拓扑结构图。网络拓扑图自动搜素实际是一个图的遍历过程。网关和子网可以认为是网络拓扑结构图中的节点,其中网关节点是与子网和其他网关节点相邻的节点,而子网节点可以认为是与网关节点相邻的,至少与它的缺省网关相邻。
网络拓扑发现算法的原理是:通过使用Internet的标准协议比如ICMP、SNMP、RIP等得到协议有关的数据,再使用一定的算法从中获得网络拓扑的信息。
常用的拓扑发现工具的比较:
1.Ping:利用ICMPechoreply消息来检测主机是否可达,当向大量待定IP地址发出Ping报文时效率很低。
2.广播Ping:对查找一个子网中所有的主机非常有效,但并不是所有网络都支持广播Ping。
3.traceroute:利用ICMPtimeexceed和portunreachable消息以及IP协议中TTL字段来发现到目的主机的路由信息,它通过探测点和目的节点间不断发送TTLs一次递增的多个分组来实现路由发现的。但是一些ISP通过一定策略不响应traceroute,隐瞒内部结构,其次,traceroute需要较长的路径。
4.DNS区域传输:DNS是一种用于TCP/IP应用程序的分布式数据库,每个站点都保留自己的域名服务器,其中保存着主机名字和IP地址的映射。该方法可以以较小的开销快速的发现许多节点,适于用作其他算法的起始点,但是数据库中存放的信息可能不一致。
5.SNMP:假设域中所有主机都运行SNMP,首先获得起始主机的缺省路由器,然后通过发出SNMP请求报文来访问该路由表和ARP表,分别得到与之相邻的路由器和主机,接着算法循环遍历所有路由器和主机知道遇到一个指定域之外的主机为止。优点是速度非常快,缺点是无法检测到没有运行SNMP的主机和路由器。
目前网络层拓扑发现主要有两个算法:
1.基于通用协议的网络层拓扑发现算法:从临时地址集出发,逐一探测其中每个IP的存活状态,对那些存活的设备,将其加入结果集后探测路由,并通过猜测等手段获知更多的IP加入临时地址集中,然后重复上述步骤。
随着网络的逐渐增大,ICMP协议已不能满足网管的需要,SNMP的隆重出世也极大的促进了网络拓扑技术的发展。
2.通过SNMP获取路由器中的路由表,采用广度优先遍历算法。
算法具体过程如下:

3、改进后的网络层拓扑发现算法
虽然大多数网络设备是支持SNMP协议的,但不排除个别设备不支持该协议或未开启SNMP网管功能的可能性。基于这个问题,需要有一个算法可以集上述两种基本算法的优点,既简单高效又有较强的通用性。
算法流程:

4、小结
目前,管理域内的自动拓扑发现算法大多基于SNMP协议。但是,由于种种
原因,网络中并不是所有的设备都支持SNMP协议,而且存在获得管理权限的问
题。另一方面,采用基于通用协议ICMP的traceroute工具来发现拓扑是一种通用
性更强的方法,但算法比较复杂,发现所需时间长。因此本文提出了一种改进的
管理域内网络层拓扑自动发现算法,采用将基于SNMP的算法和基于通用协议的
算法相结合的方法,使得改进算法既具有了快速高效性,又具有了较强的通用性。
参考文献
1 马颖,计算机网络自动拓扑发现的研究,2007.
2 吴远,基于SNMP的网络拓扑发现系统的研究和发现,2008. |