您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页网络拓扑自动发现方法研究

网络拓扑自动发现方法研究

来源:华佗小知识
网络拓扑自动发现方法研究

舒涛

【摘 要】随着计算机网络的高速发展,网络管理变得日趋复杂,为了提高网络设备和服务管理的智能性及可操作性,对网络拓扑高效而准确地发现成了网络管理中的重要环节。提出了一种利用SNM P协议在网络层和数据链路层进行网络拓扑自动发现的方法,使得拓扑发现算法实现更简单,发现效率也更高。%With the fast development of computer network ,the network management is becoming more and more complex .In order to improve the intelligence and operability of network equipment and service management ,the high efficient and accurate discovery of network topology has been important process of network management .A method to conduct network topology auto-discovery in network layer and data link layer by using SNMP agreement was put forward ,which enables topology discovery computation to become simpler and have high efficiency . 【期刊名称】《辽宁石油化工大学学报》 【年(卷),期】2013(000)003 【总页数】4页(P81-84)

【关键词】网络管理;拓扑发现;简单网络管理协议 【作 者】舒涛

【作者单位】四川民族学院网络信息中心,四川康定626001

【正文语种】中 文 【中图分类】TP393

网络管理是网络发展中的一个重要技术,而拓扑发现又是网络管理的基础。网络拓扑作为一种表示网络设备逻辑连接与物理连接之间关系的方法,通过它网络管理员可以很直观地掌握当前网络设备的运行状况,准确定位网络中的故障点,并对准确分析网络中存在的问题提供基础数据,从而有针对性地优化网络,提高网络的性能,而网络拓扑的自动发现技术是构造网络拓扑图的基础和关键。

目前有多种网络拓扑发现方法,包括:(1)基于SNMP(Simple Network Management Protocol,简单网络管理协议)的发现方法。该方法主要是利用SNMP协议,访问交换机和路由器等网络设备中的MIB库,获取相应信息。该方法的优点是发现效率较高,结果可靠,系统和网络开销小,但要求网络中所有网络设备均支持SNMP协议,否则无法获取完整 拓 扑 图[1]。(2)基 于ICMP(Internet Control Message Protocol,Internet控制报文协议)的发现方法。该方法利用ping数据包进行拓扑发现。该方法的优点是简单易用,但由于ping操作的探测周期较长,网络负载也较大,不适合实时的拓扑发现[2]。(3)基 于ARP协 议(Address Resolution Protocol,地址解析协议)的发现方法。网络设备的ARP表中设备地址都是有效的IP地址,而且没有存储多余信息,且交换机、路由器等均支持ARP协议,所以这种方法发现效率是很高的,应用范围也广,但如果网络太大,ARP表中的记录会不断的更新,将无法包含网络中所有的交换路由设备[3]。(4)基于OSPF(Open Shortest Path Firs,优先开放最短路径)协议的发现方法。这是一种典型的链路状态路由协议,采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,计算路由。

该方法的优点是速度快、性能高。但实现难度大,且搜索只能限定在一定范围内,所有设备也必须支持OSPF协议[4]。

在网络管理中要求拓扑发现算法要准确、高效、完整、快速,本文在充分分析各种协议的基础上,提出了一种采用SNMP协议进行网络和数据链路层网络拓扑发现的方法。 1 SNMP协议

SNMP[5]是IETF(Internet Engineering Task Force,互联网工程工作小组)定义的internet协议簇的一部分,由一组网络管理的标准组成。主要作用是用于对网络中的设备进行监测。它的基本思想是网络中的各种设备都维护一个被称为MIB(Management Information Base,管理信息库)的数据结构,用以保存与网络设备运行相关的信息,并对相关的查询操作予以回应。SNMP描述了如何从MIB中获取设备信息的方法,对网络中设备的要求是必须支持SNMP,并且MIB中的相关信息要尽可能的丰富。由于其具有相对简单且容易实现的特性,已经在网络管理领域成为了标准,现在主流的网络设备都能够对SNMP协议进行支持,因此在网络层的拓扑发现中SNMP协议被广泛的采用。使用SNMP的主要优点在于设备信息能够自动随网络改变及时更新,这样总能及时反映网络的状况。

采用SNMP的网络管理主要由以下三部分组成[6]:(1)Agent(代理程序)。它是被管理设备上的软件模块。它拥有本地的相关管理信息,并将这些信息转换成与SNMP兼容的格式;(2)NMS(管理应用程序)。该程序用以实现对被管理设备的监控;(3)MIB(管理信息库)。记录被管理设备的运行信息。 在拓扑发现中,主要用到MIB中的如下信息[7]:(1)ipRouteTable(IP路由表)。该表中包括以下对象:ipRouteDest(路由项的目的IP地址)、ipRouteIfIndex(路由项的端口)、ipRouteNextHop(下一跳IP地址)、ipRouteType(路由类型)。(2)ipAddrTable(IP地址表)。该表中包括以下

对象:ipAdEntAddr(端口对应的IP地址)、ipAdEntIfIndex(端口号)、ipAdEntNetMask(端口对应的IP地址的子网掩码)。(3)透明网桥转发表。该表中包括以下对象:dotIdTpFdbAddress(主机的MAC地址)、

dotIdTpFdbPort(交换机的端口号)、dotIdTpFdbStatus(端口转发状态)。(4)端口映射表。该表中包括以下对象:dotIdBasePort(网桥设备的逻辑端口号)、dotIdBasePortIfIndex(逻辑端口对应设备的实际接口号)。(5)ipForwarding对象。表示是否可转发数据(是否具有网关功能)。(6)sysService对象。表示网络设备的服务级别。 2 网络层拓扑发现 2.1 算法描述

实现网络层拓扑发现算法的基本思路是:从网管工作站所在网络的网关地址开始,采用SNMP协议对网关IP进行扫描,获取该网络设备的MIB信息,读取ipAddrTabel中的ipAdEntNetMask和ipAdEntAddr对象,取得该节点中所有端口的IP地址和子网掩码。然后通过计算就能得到与每一端口在相同子网内的其他IP地址。通过读取IP地址所属设备MIB中的ipForwarding对象和sysService对象(ipForwarding=1且sysService>3表明是网络层设备,ipForwarding=2且sysService=2或3表明是数据链路层设备,ipForwarding和sysService为其他值表明是非交换路由设备)判断是否属于网络层设备,如果是网络层设备就将此设备的信息记录到需要进一步检测的网络层设备表中,作为网络中发现下一级的开始节点,同时记录两网络层设备间的链接信息。重复以上步骤直到发现所有网络层设备就可以完成网络层拓扑的发现。 以下是采用伪Object Pascal语言对算法的描述: Begin

对待搜索网络层设备集合(L3Gather)进行初始化;对网络层设备的连接集合

(L3ConnGather)进行初始化;

获取起始网关的标识和指定的IP地址,并创建为类L3,设定其p_flag值为false,将该类放入L3Gather中;

While(L3Gather中还有p_flag为false的路由器)do Begin

从L3Gather中读取一个L3类,记为CurrentL3;

获取CurrentL3的ipAddrTable信息,填入addrGather中;

获取CurrentL3的ipRouterTable信息,除去ipRouteType值非3、4的记录; for(ipRouterTable表中各项路由记录)do begin if(ipRouteType=3,路由到直接子网)then begin

将ipRouteDest和ipRouteMask等相关信息创建为Subnet类对象; end; else begin

获取当前条目中的ipRouteNextHop不同于CurrentL3的所有IP地址: 获取ipRouterNextHop对应网络层设备的标识L3ID;

将ipRouteNextHop和CurrentL3的标识及IP地址值创建为一个L3Cotmect类对象L3Conn;if(L3Conn没有在L3ConnGather中存在)then 将L3Conn填入L3ConnGather中;

将ipRouteNextHop等信息创建为L3类对象aL3; 设置aL3的p_flag为false,将其放入L3Gather中; end; end;

将CurrentL3标志设置为已经处理;

end;

算法结束后,结果将保存在网络层设备集合L3Gather和网络层设备的连接集合L3ConnGather中。

2.2 路由设备多IP地址解决方法

在网络中,三层交换机和路由器的每个端口都会分配一个IP地址,这样在进行拓扑发现时同一设备就会多次重复出现,将造成拓扑发现不准确。其解决方法是:通过读取MIB中的ipAddrTable表的ipAdEntAddr对象,取得该IP地址所在设备所有端口的IP地址,并放入数据库中,在发现IP时,先查询该IP是否已经存在于数据库中,如果存在则说明该IP所在设备已经被发现,就不加入到拓扑中,这样就避免了同一设备被多次发现[8]。 3 数据链路层拓扑发现

当子网中有交换机时,要高效地进行数据链路层的拓扑发现,应首先对通过交换机中的MAUMIB中的ifMauTable对象的ifMauStatus记录取得交换机各个端口的状态。交换机端口的工作状态共有6种,可以根据端口的状态值来收集有用端口的地址转发信息。识别出哪些是有用端口后,就可以通过读取交换机Bridge-MIB中的dotldTpFdb-Address、dotldTpFdbPort和dotldTpFdbStatus获取这些端口的地址转发信息及状态。然后将dotldTpFdbAddress与

ipNetToMediaTable表中的ipNetToMediaPhysAddress进行比较,如果相同则通过ipNetToMediaAddress获取到主机IP[9]。将获取到的IP加入到已在网络层发现的拓扑中,即可发现一个完整的网络拓扑。 4 系统测试 4.1 网络设备配置

采用SNMP进行拓扑发现,要求网络设备必须支持SNMP协议,并配置正确。下面以CISCO 3750三层交换机为例进行配置演示[10]。

#config terminal --进入配置模式

<config>snmp-server community cisco ro --配置通信只读字符串为cisco

<config>snmp-server community cisco2rw --配置通信读写字符串为cisco2

<config>snmp-server host 192.168.1.3 --配置网管工作站地址,只允许该工作站读取设备的SNMP信息 4.2 运行效果

上述方法已经在一个实际的网络管理系统中进行了应用,效果良好,其运行效果如图1所示。

准确、完整、及时、高效的网络拓扑自动发现在网络管理中是必不可少的。本文在总结前人经验和充分分析SNMP协议的基础上,提出了一种基于SNMP协议在网络层和数据链路层进行网络拓扑自动发现的新方法。 图1 运行效果图 参考文献

【相关文献】

[1]杨安义,朱华清,王继龙.一种改进的基于SNMP的网络拓扑发现算法及实现[J].计算机应用,2007,27(10):2412-2413.

[2]李兴良,王涛,陈达孚.一种网络拓扑发现算法的设计与实现[J].苏州科技学院学报:自然科学版,2012,29(2):55-59.

[3]孙克辉,陈艳山,程巍,等.网络层与链路层综合拓扑发现算法及其实现[J].计算机工程与应用,2012,48(4):107-110.

[4]荆栋,肖刚.网络拓扑发现算法[J].重庆理工大学学报:自然科学,2012,26(9):90-95.

[5]Stallings,William.Snmp,Snmpv2,Snmpv3,and Rmon 1and 2[M].Upper Saddle River:Addison-Wesley,2005.

[6]郭晓永,王相军.一种基于SNMP的网络拓扑发现算法[J].重庆工商大学学报:自然科学版,2011,28(1):59-62.

[7]刘家乐,雷显臻,周兴旺.基于SNMP的校园网拓扑发现系统的设计与实现[J].科技信息,2011(13):66-67.

[8]单立新.面向多层次网络拓扑发现算法的研究[J].西安航空技术高等专科学校学报,2012,30(5):-67.

[9]潘楠,王勇,陶晓玲.一种基于SNMP的链路层拓扑发现算法[J].计算机工程,2012,38(2):103-105.

[10]王达.Cisco/H3C交换机配置与管理完全手册[M].第2版.北京:中国水利水电出版社,2012.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务