第 22卷第 1期
2006年 1月
苏 州 大 学 学 报 (自然科学版 )
坚 ! ! ( SCIENCE EDITION)
Vo1.22。No.1
lan.2006
基于 SNMP的网络拓扑发现算法与实现
关 媛 ,王小军,陆建德
(苏州大学 计算机科学与技术学院,江苏 苏州 215006)
摘 要:提 出了一个基于 SNMP的网络拓扑 自动发现算 法 ,以获取指定深度网络 中所有路 由设备以及指定子
网内所有活动主机的网络拓扑结构 ,特别对三层交 换机 的发现和指定子 网 内活动主机的发 现作 出 了算法改
进,并对一些关键技术的实现细节进行了分析 .
关键词 :SNMP;拓 扑发 现算法;三层交换机;MIB;OID
中豳分类号 :TP393.07 文献标识码 :A 文章编 号 :1000 2073(2006)01—0043—06
O 引言
目前 ,可以实现网络拓扑 自动发现的一些常用技术有 ping、traceroute、DNS、SNMP等 .其 中 SNMP的基
本思想是:所有的网络设备维护一个 MIB库(管理信息库),保存该设备上所有与网络运行相关的信息,并对
管理工作站的 SMMP查询进行响应 ,管理工作站通过从这些网络设备 中获取 的 SNMP响应包 中解析 出与
网络拓扑相关的信息,就可以构画出整个网络的拓扑结构,并获得其他一些网络管理信息.
由于 MIB的信息可以自动随着网络的状况更新 ,这样通过 SNMP获取 的拓 扑信息就总是反映 网络最
新的状况 ,它的主要缺点在于并不是所有设备都支持 SNMP协议 .但随着网络设备 的不断发展 ,现在大部分
的网络设备都可支持 SNMP,这也使得 SNMP可以充分发挥它的优点而不受设备支持的限制.
目前提出的基于 SNMP的网络拓扑发现算法 ,大多数是一次性地搜索得到种子路 由器可达 网络范围内
所有路由设备和主机_1_3 J.在算法执行过程中,由于要访 问大量 网关 ,子网搜索要依次检测各网络设备的状
态 ,导致算法运行时间可能过长…l,在搜索包含三层交换机的网络时往往还会导致拓扑发现不完整_4 J,另
外 ,对指定子网内活动主机的发现也不能完全实时反映【 .本文针对上述一些缺陷提出了一种改进 的基于
SNMP的网络拓扑发现算法 ,经过实际网络的验证 ,能够有效地解决这些问题 .
1 主干网拓扑的获取算法
众所周知,网络拓扑结构中各子网通过各自的网关与其他子网通信 ,这些子网可以是一个局域网,也可
以是某局域网内的一个子网,它们都连接到某个路由设备 的一个端 口上.通常每个子网需要一个路 由器端
口,因为通信量只能通过路 由器从一个子网移动到另一个子网,所 以网关与路 由端 口是一一对应 的.路 由器
的一个端 口可以连接到一个子网 ,也可以与其他的路由器相连.
对于指定深度 的网络 ,基 于 SNMP的拓扑发现算法通常是使用一个种子路 由器 ,获取其路由表 内记 录
的所有可达网段 ,以及到达该网段所经由的下一跳路由器的端 口 IP地址及相关路由信息 ,然后它将继续扩
展其搜索 ,一直达到用户指定的深度 为止[引.同时它还可获取到每个路 由设备上所有端 口的直连子网及其
相应的子网掩码 ,根据这些信息 ,进而获取到这些子网中的所有活动主机.如果这些设备支持 SNMP,则还可
收稿 日期 :2005—09—01
作者简介:关媛(1981一),女 ,江苏南 京人,硕士研究生 ,主要研究方向为网络技术与信息安全
维普资讯 http://www.cqvip.com