版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第32卷 第11期 2010-11(下 【149】收稿日期:2010-09-23作者简介:聂明 (1964 -,男,吉林人,副教授,博士,主要研究方向为软件工程、数据库技术、图形图像技术和职业教育。基于SNMP的网络拓扑自动发现算法的研究和应用1The research and application of network topology automatic discoveryalgorithm based on SNMP protocol聂 明NIE Ming(南京信息职业技术学院,南京 210046摘 要:网络拓扑结构是网络中各个节点之间连接关系的表现,是网络系统高效运行的基础。本文主要
2、论述了网管系统中一个重要的功能网络拓扑结构的自动发现和实现技术。在分析比较了几种常用网络拓扑结构的发现和实现方法的基础上,提出了一种基于SNMP的网络拓扑结构发现算法,该方法经过实际网络管理系统的验证,能够高效地发现整个网络的拓扑结构。关键词:网络;SNMP;MIB;拓扑发现中图分类号:TH166 文献标识码:A 文章编号:1009-0134(201011(下-0149-04Doi: 10.3969/j.issn.1009-0134.2010.11(下.510 引言随着网络规模的日益扩大,复杂度的不断增加,网络拓扑结构也随之变得日益复杂。一个好的网络管理系统应该反映网络中所有设备的布局结构,方
3、便用户全方位地管理网络,对网络异常流量、设备告警、网络攻击现象等进行快速诊断和定位,以减少网络异常造成的损失1。网络拓扑的自动发现,其目的是获得被管理网络的拓扑结构,主要指互连设备,如路由器、交换机、PC 设备等的信息以及它们之间的连接关系。网络拓扑的自动发现是网络管理系统的重要组成部分,是发现系统故障和监控设备性能的基础,更是衡量一个网络管理系统成败的重要标准之一2。1 网络拓扑的自动发现网络拓扑的自动发现通过收集网络拓扑的各种必要信息,确定网络元素之间的互连关系,并在此基础上构造网络拓扑图,为网络管理人员提供一个直观了解全局网络状态的友好界面。网络拓扑的自动发现是对大规模网络进行有效管理的
4、必不可少的手段,当前常用的网络拓扑自动发现方法主要包括基于ARP协议的拓扑发现方法、基于ICMP协议的拓扑发现方法和基于SNMP协议的拓扑发现方法等36。1基于ARP协议的拓扑发现方法。每个支持地址协议的网络设备中都维护着一张ARP表,该表记录了该设备连接的网络设备的IP地址和MAC 地址的对应关系。利用ARP表,可以从一台已知路由器或交换机的ARP表发现其连接的其它网络设备,从这些新发现设备中区分出路由器和交换机,并继续根据这些路由器和交换机的ARP表进行设备发现,从而得到整个网络的拓扑结构。因为ARP表中的网络设备地址都是最近活动过的有效设备的IP地址,几乎没有冗余信息,所以该拓扑发现方法
5、效率很高。但如果网络过大,ARP表中可能无法包括网络中实际存在的所有网络设备,同时待发现的网络设备需要支持ARP协议,所以该方法适合于局域网的拓扑发现。2基于ICMP协议的拓扑发现方法。它通过向网络设备发送ICMP报文,测试设备的可达性。该方法对一个网段内所有设备的网络IP地址依次执行ping操作,根据响应就可以发现当前该网段内所有活动的网络设备。根据给定的IP区间逐一进行ping操作,根据结果,再对上一次操作记录的活动的IP地址逐一进行路由跟踪,记录下每一次路由跟踪的操作结果,根据前面的操作结果,再分析所得到的信息,从中得到整个拓扑的连接情况。该拓扑发现方法简单、可靠、快速,但发现具【150
6、】 第32卷 第11期 2010-11(下有一定的盲目性,并在一定程度上加重了网络的负荷等,此方法适用于子网内网络设备的发现。3基于SNMP的拓扑发现方法。每个网络设备都有路由表,路由信息中包含了完整的网络拓扑信息,包括路由目的网络地址、目的网络的子网掩码、该路由的下一站IP地址、对应的端口索引和路由协议类型等。由于路由表中的下一站地址项所标识的必然是具有路由功能的网络结点,因此从设定路由器开始,读取路由器的路由表,可以逐渐向下发现网络中所有基于路由功能的网络结点。再根据路由表的本地接口的索引标识项,找到接口表中对应的接口索引,由接口表的接口类型就可以了解到所在子网的类型,从而构建出整个网络的
7、拓扑关系图。这种方法的拓扑发现过程和算法简单,目标明确,发现效率高,系统和网络开销小,因此得到人们的广泛应用。但是,该方法也存在不足之处,主要表现在:(1无法发现网络中没有配置IP的网络设备;(2一个路由器往往配置了多个IP地址,并且基于路由表的发现方法算法是基于IP地址的,所以对于路由器多IP现象,可能导致路由器的发现与实际情况不合;(3要依次检测各网络设备的状态,导致算法运行时间可能过长,同时设备的发现受网络时延等影响,不能完全实时反映网络状况;(4路由表中包含了大量冗余信息;(5网络设备必须支持SNMP协议。因此,该方法主要用于大型主干网络的拓扑发现,主要发现网络中的路由设备,反映网络的
8、整体拓扑结构状况。可见,当前各种拓扑方法各有优缺点和局限性,在实际应用中需要根据具体的情况,有选择或综合地应用。本文给出了一种基于SNMP的网络拓扑发现算法,经过实际网络管理系统的验证,能够有效发现整个网络的拓扑结构。2 基于SNMP 的网络拓扑自动发现算法2.1 算法思想在网络中路由器之间的链路是由其两端路由器的端口互联构成的,根据TCP/IP的编址原理,链路两端路由器端口的IP地址必然处于同一个子网中。因此,通过一个子网中已知的IP地址和这个IP地址的子网掩码即可计算出该子网中所有其他的IP地址。根据以上思路,从某个节点开始,访问其MIB库,得到该节点所有接口的IP地址和子网掩码,该节点称
9、为种子节点。通过计算得到与每一接口在同一个子网内的其他IP地址。判断这些IP地址是否属于路由器信息,如果是则将此路由器信息记录到待检测路由设备链表,作为下一层发现的种子节点。并同时记录两个路由器间的链路信息到拓扑信息链表。重复以上步骤直到没有种子节点或者达到指定的发现层数,即可完成相应的拓扑发现过程。2.2 算法描述算法可具体描述如下:1根据网络管理系统的IP和掩码,使用路由跟踪的方法获取网管终端所在的默认路由器网关地址。访问该路由器获取ipAdderssTable地址表信息,将其编号加入AllRouters队列(元素包括路由器名、接口号、接口IP、接口号和接口IP等,其中接口号与接口IP的多
10、少依据各个不同路由器而不同和AccessRouters队列(待访问路由器,结构跟AllRouters类似;2从AccessRoutes取出一个元素设为当前处理的路由器Rx,依次访问Rx的路由表ipRouteTable 表项,将目标子网信息编号无重复地放入子网队列Subnets(元素包括子网号,子网地址,掩码等;3判断路由器与子网连接关系:依次对Rx的ipRouteTable表项检查,如果ipRouteType 项不为4,表示相应子网与Rx直接相连,下一跳地址ipNextHopIpAddress项为空。根据Rx的ipAddressTable信息确定y端口与该子网z相连接,将连接关系组(Rx,y,
11、Subnets无重复地放入R-links-S队列(路由器接口与子网相连的接配对的二元组;4判断路由器之间的连接关系:如果ipRouteType为4,下一跳ipNextHopIpAddress地址有效,表明另一个路由器与Rx直接相连。根据ipNextHopIpAddress地址信息访问另一个路由器的ipAddressTable,判断AllRouters队列中是否己经存在该路由器信息,如不存在则把该路由器编号加入队列AllRouters和AccessRouters中。很容易确定Rx的y端口与另一个路由器Ru的v端口直接连接。因此把元素(Rx,y,Ru,v无重复地放入队列第32卷 第11期 2010
12、-11(下 【151】R-links-R(路由器接口与路由器接口相连的二元组中。5把队列R-links-R进行去冗处理。因为在以上的算法实现中,有可能存相同的连接信息加入到队列中。例如:R1的2端口与R4的3端口直接相连,在算法实现过程中,可能同时在队列中加入了(R1,2,R4,3和(R4,3,R1,2的元素组,虽然它们在形式上不一样,但他们表示同一个连接信息。6把Rx的元素组从AccessRouters中删除,如果AccessRouters不为空,转到(2,如果为空,程序中止。算法运行结束以后,AllRouters包含了所有活动的路由器,子网队列Subnets包含了所有活动的子网,队列R-l
13、inks-S和队列R-links-R的信息表示路由器与子网、路由器与路山器之间连接关系,最终可以准确而完整地把拓扑结构绘制出来。2.3 拓扑发现中几个问题1路由器多IP地址问题路由器的每个接口对应着一个IP地址,一个接口下可以配置多个端口。根据以上拓扑发现方法,就会出现重复访问同一路由器的现象,严重影响拓扑发现算法的准确性和效率。本文采取的具体解决方法是:路由器MIB库中的ipAddrTable 表中提供了该网络设备所有的I P 地址信息,ipAddrEntry表中的每一行是一个ipAddrEntry,而一个ipAddrEntry对应一个接口的地址信息。由于ipAddrTable中的对象都是只
14、读的,所以使用ipAddrTable中的一个IP地址来标识路由器,同时结合ifTable表,可以把接口和其IP地址一一对应起来。在实际应用时选择ipAddTable中的最大的IP作为路由器的标识IP地址更合理,由此就解决多IP识别问题。2控制拓扑阈值上述算法利用路由表来从内向外发现路由器,可以发现的范围很广,如果不加以控制,可能造成拓扑发现时间过长,达不到预期发现的效果。通过对路由器的向下发现Hop数进行控制,并设置阈值,当从某个路由器向下发现Hop数达到设定阈值,则停止继续向下发现。这样得到的拓扑发现结果是以种子节点为中心向外辐射的星形树,同一层次的路由器处于同一树干上。但有时为简化程序复杂
15、度,也可以利用限制拓扑发现时间的办法来控制发现的范围7。3 算法应用依据上述算法思想,在某公司的网络综合管理平台中成功实现了网络拓扑结构的自动发现,并验证了算法的正确性。该平台以开源OPENNMS 框架为基础进行二次开发,主要功能包括拓扑图管理、设备管理、排程管理、告警管理、报表管理和性能管理等,可以对网络中的各类设备进行全面管理和监控,及时发现并排除设备故障。网络拓扑算法采用的开发工具为M Y E C L I P S E 7.0,开发语言是J a v a ,使用JDK1.6.5,前台的拓扑图绘制采用Flex技术实现。算法对交换机和路由器的MIB库的访问利用了Java SNMP开源开发包,该开
16、发包实现了SNMP协议的V1和V2版本。在校园网的实验试验环境下,主干网络由1台路由器和多台三层交换机组成,交换机下挂接了若干PC服务器,用本算法对此网络进行探测,所得到的拓扑图如图1所示。 图1 网络综合管理平台应用本算法绘制的拓扑图根据图1的显示结果分析,本算法已经正确地识别出来了路由器172.18.45.1和交换机172.18.45.118、172.18.45.215、172.18.45.125、192.168.0.47,以及连接在交换机上的所有服务器。本发现算法发现效率高、实用性强,可广泛应用于网络管理软件的拓扑图管理。4 结束语网络的拓扑结构对网络管理系统非常重要,各个软件厂商也采用
17、自己的实现方法开发了一些进行拓扑发现的系统。本文对SNMP网络拓扑算法进行了深入研究,并在此基础进行了改进,提高了算法的发现效率,增强了网络拓扑信息显示的直观性,为网络管理、网络故障定位和网络设备管理提供了强有力的支持。该方法已成功应用于某【152】 第32卷 第11期 2010-11(下公司的网络综合管理平台,取得了良好的效果。参考文献:1 Y.Breitbart,M.Garofalakis,B.Jai,C.Martin,R.Rastogi,A.Silberschatz,"Topology Discovery in Heterogeneous IP Networks:The Net
18、Inventory System,"IEEE/ACM Transactions on Networking,vol.12,no.3,June 2004,pp.401-414.2 F.Nazir,T.H.Tarar,F.Javed,H.Suguri,H.F.Ahmad,A.Ali, "Constella:A Complete IP Network Topology Discovery Solution,"APNOMS 2007,October 2007,Sapporo,Japan,pp. 425-436.3 N.Dufield,F.L.Presti,V.Paxson
19、,D.Towsley,"Network LossTomography Using Striped Unicast Probes,"IEEE/ACM Transactions on Networking,August 2006,vol.14,no.4, 697-710.4 孙德文,高儒振.基于SNMP网络拓扑图的自动构造实现J.上海交通大学学报,1997,31(8:97-101.5 杨棉.网络自动拓扑发现算法研究D.武汉:华中师范大学,2003.6 李玉鹏,王换招,田海燕,等.基于SNMP和JAVA的网络拓扑发现J.计算机工程与应用,2004,(5:152-154.7 李子柱,倪春胜等.网络拓扑发现系统的设计与实现J.计算机工程,2006,1(2:104-106.输出点。输入端均为开关量信号,输出端均接继电器线圈。其地址分配如表1所示。表1 起升机构地址表3.3 PLC 配置及PLC 外围接线图三大机构共有21个输入点,14个输出点,所以输入模块选用两块1746-IV16模块;输出模块选用一块1746-OW16模块;CPU模块选用1747-L531模块;电源模块选用1746-P4模块。整个PLC外围接线如图2所示。3.4 起
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣西科技职业学院《中学科技作品创作》2023-2024学年第一学期期末试卷
- 《护理管理制度培训》课件
- 劳动小学生课件六上浙教版
- 赣东学院《管理研究方法》2023-2024学年第一学期期末试卷
- 甘肃中医药大学《线描人物》2023-2024学年第一学期期末试卷
- 入矿培训课件
- 手指流血安全教育课件
- 安全理念课件标题撰写
- 2021一建考试《建设工程项目管理》题库试卷考点题库及答案解析五
- 《企业并购管理》课件
- 袁莎入门古筝教材1
- 北京冷轧带钢工程酸轧设备安装施工方案
- 核价管理制度
- 傲盾抗DDOS防火墙安装使用手册
- 卫生部健康体检项目目录
- 2023年上海英语高考卷及答案完整版
- 金属非金属矿山(地下矿山)考试题库
- 手卫生依从性
- 第一学期六年级家长会课件1
- 最新国家开放大学电大《工程数学》期末题库及答案
- 年产120万吨氧化铝拜尔法生产高压溶出工艺设计
评论
0/150
提交评论