校园网网络拓扑发现技术研究
金洪颖,王朝斌,廖鹰梅
(西华师范大学计算机学院,I ̄t JlI南充637009)
摘要:从现有的网络拓扑发现方法出发,结合本校校园网的实际情况,提出了一种分层对校园网进行拓扑发现的方法,并对
该方法进行了详细论述。 关键词:拓扑发现;SNMP;ICMP;ping;traceroute
The Research on Campus Network Topology Discovery
JIN Hong-ying,WANG Chao-bin,LIAO Ying—mei
:oq ute D:paxtmen:,e 14/:, ̄f No:/z ̄]Un/i,e/'s/ty,N ̄nchong.SJch ̄an 657D09.el#ha) Abstract:Based on the existing network topology discovery method,combining with the actual situation of our own campus network,this paper
puts forward a layer of campus network topology discovery methods.and then discusses this method in detail. Key words:topology discovery;SNMP;ICMP;ping;traceroute
1引言 2.2基于ICMP的网络拓扑发现方法
随着我校校园网规模的不断扩大,接入的硬件设备 ICMP是一种差错报告机制,可以被用来向目的主
种类和数量日益增多,如何进行有效快速的网络管理已 机报告或者请求各种网络信息。基于ICMP协议的最著 日益成为学校网络中心的重要任务。网络拓扑发现是网 名应用就是Ping。通过Ping发送ICMP报文,可以探
络管理中的一种基本而又重要的技术,它能够帮助网 测网络设备的活动状态和可达性。对一个网段内所有可
管人员对整个网络DE拓扑结构进行准确的把握和定位, 能的网络IP地址发送ICMP报文,根据应答就可以发 是进行有效网络管理的基础和前提,对于监控整个校园 现该网段内所有活动的节点。这种方法的优点是:基于
网络,获取完整的网络信息,保证网络高效稳定的运行TCP/IP协议的网络设备几乎都支持所有的ICMP协议,发
非常重要。 现网络拓扑的同时,检测简单、快速和可靠。不仅可以
用于搜索活动节点,还可以检测可达性。该方法的不足 2常用的网络拓扑发现方法 是:(1)报文容易伪造。由于可以通过编程直接改写报文
2.1基于SNMP的网络拓扑发现方法 的ICMP头部和IP头部,这样的报文携带的源地址若是
SNMP的基本思想是所有的网络设备维护的一个管 伪造的,在被攻击端根本无法追查。为了防止遭到这样
理信息库,保存该设备所有运行进程的相关信息,并对 的网络攻击,很多系统会将ICMP服务关闭。此种情况
管理工作站的查询进行响应。现在用作网关的网络设备 下,单独使用ICMP搜索会无效。(2)无法发现设备类型
一般都支持SNMP代理,网络拓扑信息主要包含在MIB 和设备之间的连接关系。
中,通过对MIB中拓扑信息的获取,就可以分析出网络 的拓扑连接情况。使用SNMP的最大优点是信息自动随 3校园网网络拓扑发现方法
着网络状况的变化而更新,通过SNMP获取的拓扑信息 通过以上几种网络拓扑发现方法的分析比较,可以 总是反映网络最新的状况。该方法存在的不足有:(1)无 看出它们各有优点和不足,因此,在实际应用中,若能
法发现网络中不支持SNMP协议或没有安装SNMP代 将几种方法结合使用,将能够达到更好的效果。结合我 理的网络设备;(2)路由表中包含了大量的冗余信息;(3) 校校园网的实际情况,现提出如下的分层网络拓扑发现
存在多目路由的问题,不利于直观地反映网络拓扑的连 方法:
按情况。所以,基于SNMP的网络拓扑发现方法比较适 (1)利用SNMP协议发现网络核心层设备;
合用于发现网络中的主干拓扑,反映网络的整体状况。 (2)利用ARP协议来发现网络汇聚层设备;
基金项目:本文由西华师范大学大学生科技创新基金项目资助,项目编号42 708080
(3)利用ICMP协议来发现网络接入层设备。 3.1核心层网络设备的发现 网络的核心层的主要功能是实现骨干网络之间的优
化传输,核心层网络就是整个校园网的主干网络。我校
校园网的主干网络设备都是支持SNMP协议的,因此, 可以利用SNMP协议进行网络拓扑发现。 用SNMP读取入口设备(路由器)的IP路由表,
并存入数据库,然后再从数据库中读取下一路由地址字 段。通过循环且不重复地从数据库中读取下一路由地址 字段便可实现对树的层次遍历。具体算法描述如下:
初始化路由器队列,子网队列,连接队列; Wl1ile(路由器队列非空) f
从路由器队列中取出一个路由器,为当前路由器;
访问其路由表; 把路由表中的ipRouteNextHop不重复地放到路由
器队列中;
把各ipRouteDest不重复地放到子网队列中;
把当前路由器和ipRouteNextHop的连接不重复地 放到连接
队列中; If(ipRouteNextHop和ipRouteDest在同一个子网)
{
把ipRouteNextHop和ipRouteDest的连接放到连 接队 列中;} If(ipRouteNextHop和当前网关的地址相同)
{ 把当前网关和ipRouteDest的连接放到连接队列中。
}
} 3.2汇聚层网络设备的发现 在对核心层支持SNMP的设备进行发现之后,对于
大多数不支持SNMP协议或者是禁用了SNMP的网络
设备,使用ARP协议来进行网络拓扑发现。由于有以太
网接口的网络设备都支持ARP协议,并在本机维护着一 张用于IP地址与以太网网卡地址问的地址解析和转换的
ARP表,并且在统一以太网网段内的所有活动主机的地 址信息一般都在ARP表中,因此,可以利用ARP表进
行拓扑搜索。具体步骤如下:
向目的主机发送ARP请求,如果该主机存在且处
于活动状态,则将到一个ARP回应,提取ARP报文的 发送端硬件地址字段,就可以得到目的主机的MA C地 址,从而惟一确定子网内的网络设备,由此来标志网络
设备。同时,还可以利用ARP回应报文的硬件类型字段
来发现目的主机所处子网的类型:1一以太网,2--实验
太网,3--X.25,4-令牌网,5一混沌网(chaos),6-- IEEE 802.X,7一ARC网络。这样可以对原来用SNMP
协议生成的核心层网络设备拓扑图进行细化。
3.3接入层网络设备的发现 通常将网络中直接面向用户连接或访问网络的部分 称为接入层。接入层网络连接的主要是低端的交换机和
用户的主机,网络结构简单,网络设备种类比较单一,
因此可以使用ICMP中的ping和traceroute工具进行拓
扑发现。具体方法是: (1)通过ping发送ICMP报文(类型码为8,代码 为0),每一个被ping的主机向源主机发一个ICMP回
应应答包(Echo Reply),包中包含应答和时延等信息。
(2)对所有ping通的主机进行taceroute,这样就可 以依次发现并记录所有活动主机的路由信息。
4小结
本文根据现有基于SNMP、ARP和ICMP的拓扑发 现方法,结合我校校园网的具体情况,提出了按照核心、
汇聚、接入三层网络进行分层拓扑发现的方法。下一步
的工作重点就是如何通过软件来实现这个拓扑发现方法,
并画出实时的网络拓扑结构图。
参考文献: [1]李明江.sNMP简单网络管理协议[M】.电子工业出版
社,2007.
[2]吴海峰.基于SNMP的网络拓扑发现算法【J】.大连理工 大学学报,2005年1 0月. [5】王伟莉,陈雷.网络拓扑发现算法的研究与实现[J].
沈阳工业大学学报,2004,26(2). [4]申彦.校园网物理发现系统的实现[J].计算机工程与设
计,2007年3月. [5】杨国政,陆余良.计算机网络拓扑发现技术研究[J].计
算机工程与设计,2006年l 2月.
作者简介:金洪颖(1 983),女,现任西华师范大学计算
机学院通信工程教研室教师,硕士研究生在读。 收稿日期:20】O-08--04