2012年第3l期 SCIENCE&TECHNOLOGY INFORMATION 0 IT论坛O 科技信息 一种网络拓扑算法的研究和分析 卢红梅 (镇平县培训中心河南镇平474250) 【摘要】网络拓扑是一种表达网络逻辑连接关系和物理连接关系的方法,对配置管理乃至整个网络管理都是十分必要的 论文首先对基 于SNMP协议的网络拓扑发现算法进行了研究,接着在定义拓扑发现技术衡量指标的基础上.总结了基于SNMP拓扑发现技术的最佳使用 环境。之后提出了具体的基于SNMP拓扑发现技术工具的实现方式,介绍了拓扑发现算法实现.对三层交换机的发现和指定子网内活动主机 的发现作出了算法改进.并对一些关键技术的实现细节进行了分析 【关键词】网络管 ̄D,-;K(.SNMP);拓扑发现;网络管理;管理信息库 An Algorithm of Network Topology Analysis Based'on SNMP LU Hong-mei (Zhenping County Training Center,Zhenping Henan,47425O) 【Abstract]Network topology is lf logical connection between the network and physical connection between the expression methods,.for both con— iguratifon management and the whole network management is necessary.Papers first algorithm for network topology discovery based on SNMP protocol was studiedthen to define measures on the basis of the topology discovery technology,.summed up the best use of topology discovery based on SNMP .,technology environment.Made after the speciic tfopology discovery based on SNMP technical tools implementation.introduced the topology discovery ,lgoraithm,,on three-layer switch discovery and specify active host discovery made in the subnet has improved,and the implementation details of some key technologies will be analysed. 【Key words]Network management protocol(SNMP);Topology discovery;Network management;Management information base 0引言 agcment InformationBase.简称MIB)保存其所有运行进程的相关信息. 并对管理工作站的查询进行响应 每个支持SNMP的被管理设备都维 随着互联网在全世界范围内迅速普及.各种信息系统对计算机网 护了一些MIB库。管理信息库(MIB)指明了网络元素所维持的变量, 络的依赖性越来越高.网络安全因素已成为一个日益重要的研究课 给出了网络中所有可能的被管理对象的集合的数据结构 通过对这些 题。网络拓扑结构是计算机网络的重要基础信息,它是网络管理、数据 数据项目的存取访问.就可以得到该网关的所有统计内容。MIB-.ti是 模拟和信息收集的基础.同时也是网络安全评估和实施网络攻击的前 MIB的第二版.是它的扩充 网络拓扑发现主要是判断路由器及子网 提。网络拓扑是一种表达网络逻辑连接关系和物理连接关系的方法. 的连接关系,其信息来源就是SNMP定义的MIB..-II库。 通过它网络管理员可以直观地了解网络当前的运行状况.准确定位网 MIB—II信息中与路由器级拓扑发现相关的分为3组:系统(svs. 络中的故障以进行隔离.并对整个网络中可能存在的瓶颈进行准确分 tern)组、接口(interfaces)组和IP组。分述如下: 析.从而有针对性地改造网络.提高网络的整体性能。网络拓扑的自动 (1)系统组 包括7个简单变量.其中sysService可用于判断设备 发现技术成为构建网络拓扑图的关键所在 目前拓扑发现主要采用两 类型.从其二进制形式最低位到第7位.如果某位为1则提供OSI对 种方案.一是利用SNMP【q实现对于路由表的被动查询:二是利用 应层次服务.第3位为l则说明该节点提供路由功能,是路由器设备。 ICMP实现基于ping和tracemube的主动探测。本文讨论的拓扑发现算 (2)接口组。包含关于该实体的物理接口方面的一般信息,包括配 法是基于SNMP实现的 置信息和发生在每个接口的事件的统计信息。其中定义了一个表示本 设备接口数量的简单变量ifNumber和一个接口表iFFable,每个接口 1 常用拓扑发现方法 行 表的索引项是用ind,ex.其取值范围是从l到ifNumber.并为每 使用ICMP协议构造三层拓扑.TCP仃P协议规定.当路由器接收 个接口分配一个唯一的序列号。ifDes ̄cr为接口名称,itType表示接口 到1rrL字段被减为O的IP报文时.路由器从其近端端口向探测源地 类型.亦即本接口所在子网的类型,常见如以太网、802.5令牌环、FD— 址返回IcMP超时报文 Traceroutt,e应用程序根据此原理来检测点到 DI 可见.访问路由器接口表itTable值可确定与之相连子网的简单 点之间的路由连接状态.并获取从探测源地址到探测目的地地址之间 拓扑的情况。 所有经过的路由地址序列 使用tracerom【e技术.可以对整个网络中的 (3)IP组。IP组定义了许多简单变量,其中ifForwarding为1时表 地址空间进行路径探测.从而可以计算出整个网络的网络层拓扑连接 示该节点具有IP转发功能.可作为路由器的判定依据。本组还定义了 关系 由于tracelro tte每进行一次探测.实际上都向网络中发送3个 3个十分有用的表格变量:IP地址表(ifAddrTable)、IP路由表 UDP数据包.构造整个网络的拓扑关系会产生很大的网络开销。 (ipRouteTabh )和ARP地址转换表(ipNetT0MediaTable),它们是网络 一2 SNMP算法基础 2.1 SNMP介绍 拓扑发现的重要信息来源。 3 SNMP算法实现 简单网络管理协议fSNMP)是目前TCP/IP网络中应用最为广泛 3.1主要数据结构 的网络管理协议 1990年5月.RFCl157定义了SNMP(simple neb. 在链路层拓扑发现中,除了使用网络层拓扑发现的部分数据结构 w,ork manage ̄ment proto(co1)的第一个版本SNMPv1。RFC1157和另一个 外.还定义了如下的数据结构。同样也是使用二维链表结构来存储节 关于管理信息的文件RFC1155一起.提供了一种监控和管理计算机 点数据 网络的系统方法 ①stmct D0tldS1LpP0rtEritflnfo//生成树信息 SNMP(简单网络管理协议)由于其简单和易于实现的特性,已经 f int dotldStlYPortSulte; //端口状态 成为网络管理领域事实上的协议标准.且目前主要的网络设备都提供 char design£ ̄Bridg,e[24】;//端口指定网桥 对SNMP协议的支持.因此基于SNMP协议的网络层拓扑发现技术被 广泛采用。它的基本思想是所有的网络设备维护一个MIB(管理信息 1; 库)保存其所有运行进程的相关信息.并对管理工作站的查询进行响 ②struct DotldTpFdbEntrlnfo //地址转发表 应。SNMP协议描述了一种从MIB库中获取信息的方法,对设备唯一 f char dot1dTpFdbAddress[18];//MAC地址 的要求是支持SNMP并且MIB中的信息足够丰富 使用SNMP的最 int dotldTpFdbPort; ,,对应端口索引 大优点是信息自动随网络的状况更新.这样通过SNMP获取的拓扑信 int dot1dTpFdbStatus; /MAC地址状态 息总是反映网络最新的状况 2.2 MIB介绍 】; SNMP的基本思想是所有的网络设备维护一个管理信息库(Man一 ③stmct IEEE8021D ,/网桥节点 144 科技信息 O IT i8:t ̄o SCIENCE&TECHNOLOGY INFORMATION 2012年第31期 是目前最常用的环境管理协议。 SNMP的最大优点就是信息自动随网络状况更新,而且几乎所有 的网络设备生产厂商都实现了对SNMP的支持。这样通过SNMP获取 的拓扑信息总是能客观准确的反映网络最新的状况。除此之外,SNMP 被设计成与协议无关.所以它可以在IP,IPX,AppleTalk,OSI等其他传 输协议上被使用。大大的提高了网络环境的兼容性以及拓扑发现工具 J; 的普遍适用性 这些优势最大限度的保证了拓扑信息的准确性与实时 3I2算法实现 而且不会带来过多的网络负载。非常符合中小型网络拓扑发现的 首先在算法中定义:outBoundAddressSets表示与出口路由器直接 性.相连的下一跳路由器地址集合,用它来限制网络层拓扑发现的范围, 实际需求。 对网络拓扑发现来说.由于网络结构本身的复杂性与异构性,任 以避免因该下--t4 ̄路由器具有与被管域中设备相同的通信口令字而 出现程序上扩大网络:communitySnmpReadList表示读口令字链表对 何单一的网络拓扑发现方法都不能具备很好的通用性。只有将多种方 象:nexthopQueue表示待发现的路由器地址队列;seedRouter表示种子 法有机结合.并对所收集信息最大限度的加以分析、挖掘,才能提高拓 路由器:Gather-ROHter|nfoAll函数用来收集路由器的数据,该函数返 扑结果的准确程度.给基于网络拓扑发现的各种研究提供一个可靠的 回RouterN0de类型的节点:SnmpPing函数使用sNMP Get操作原语. 分析基础 但是.对于一般的研究和应用,尤其是中小型网络,基于 实现测试指定设备对某种组合方式的通信口令字、协议版本能否响 SNMP协议的网络拓扑自动发现过程有其不可比拟的优势。 f int dot1dStpRootCost; ,/累计根代价 int dotldStpRootPort; ,/根端口号 DotldStpPortEntrlnfo*infostp;|{生或树信息 DotidTpFdbEntrInfo info fdb;,/地址转发表信息 _应。 4结束语 网络层拓扑发现算法实现的流程如下: (I)从配置文件中读取拓扑发现配置信息,初始化如下对象:out— 本文首先介绍了基于sNIcIP协议的网络拓扑发现算法所依赖的 BoundAddressSets、seedRouter、communitySnmpReadList,将seedRouter 理论基础.并对算法本身进行了剖析说明,总结了基于SNMP拓扑发 加入到空队列nexthopQueue中。 现技术的最佳使用环境 网络拓扑发现是可视化网络管理的基础,本 (2)如果nexthopQueue为空队列,则转(7);否则取出nexthopQueue 算法使用SNMP协议实现了网络层拓扑结构图的快速发现。但是,现 中队头节点.使用c0mmunitySnmpReadList链表作为输入,调用Snmp— 在的企业内部网由于网络节点数目不多.网络流量不大,经常采用交 Ping测试出响应的通信口令字和协议版本号。 换机完成局域网的组建.而一般的交换机工作于数据链路层,没有路 (3)如果(2)中没有能够找出响应的通信口令字,分两种情况处 由功能.所以上述方法不适合属于链路层的拓扑结构的发现。更遗憾 理:被测试设备地址为seedRouter,则转(9);被测试设备地址不为see— 的是上述方法只适用于同一个管理机构下的IP网络的拓扑自动发 dRouter,则转(2)。 现.而对属于不同管理机构的网络(如Inte1Ttet)拓扑自动发现,实现起 (4)使用(2)中测试成功的通信口令字、协议版本和设备地址作为 来要复杂得多 在这两种情况下就需要采用其它技术来实现链路层网 输入参数.调用GatherRouterlnfoAll收集路由器的地址信息info_ipAd 络拓扑发现和不同管理机构的网络拓扑自动发现方法.这将成为我们 ipR 和路由表信息info 0.并将返回的节点作为二维链表的纵向节点串今后努力的方向 接.同时对地址信息等链表作为横向节点进行串接。 (5)分析(4)中收集到的节点的路由表数据。若ipRouteType=4.则 【参考文献】 记录该路由器与相对应的ipRouteNextHop值所代表的设备直接相连. [1]胡成松,汪凯.STALLINGS W.SNMP网络管理[M].北京:中国电力出版社, 同时检测该值是否存在于集合outBoundAddressSets(避免程序上扩大 2001:87—114 网络拓扑发现算法的研究与实现 沈阳工业大学学报,2004,26 网络)和横向地址信息链表info_ipAd(解决不同地址可以代表同一个 [2]王伟莉,陈雷.(2):211—214. 路由器的问题,避免重复访问设备)中;如果都不存在,则将它添加到 网络多层拓扑发现算法的分析[M]网络信息技术,2004,1. nexthopOueue队列中 若ipRonteType=3.记录该路由器与子网直接相 [3;N锋,吴秋峰.连。 (6)重复(2)~(5)的操作 [4]David G Andersen,Nick Feamster,Steve Bauer,et a1.Topology inference from BGP routing dynamics[DB/OL].http:Nnms.1cs.mit.edu/papers/elustering—imw.pdf, 2Oo2. (7)分析横向地址信息链表info_ipAd,找出运行OSPF等路由协 议后因选择最短路径而可能未被记录到MIB中的连接关系:如果两 个接口IP地址与对应掩码做与运算后所得的网络地址相等.它们之 间是直接连接或者是同一子网间相连 (8)根据横向地址信息链表i ̄o_ipAd计算出整个被管网络中所 有可能存在的主机地址集合.为链路层拓扑发现做准备 (9)算法结束 3-3算法分析 [5]杨妮妮,赵新慧.基于Web的SNMP网络网络管理【J1.微计算机信息,2006 (2—3):110—112. [6]李琳,李杰.基于SNMP的网络拓扑发现算法I Jl计算机工程与设计,2008,3,29 (6). [7]I娟娟.基于SNMP的网络拓扑发现算法研究[D]武汉:武汉科技大学,2008. [8]MELENDEZ E,QASEM A.Methods of internet topolo—gY discovery:A con— pareative survey[EB/OL].【S.1.】:[S.B.】,2000.http://www.CS.rice.edu/qaserdpapers/ topology.pdf,2005-08-01. d Zehserman.SNMPv3与网络管理[M】.潇湘工作室,译.北京:人民邮电出 网络拓扑发现算法除了应具备正确性及可理解性等~般算法所 [9]Davi版社.2000. 应具备的基本特征外,为了能更好地适应应用需求,这些算法还应具 备下述特征:精确高、速度快、开销低、适用范围广。网络拓扑发现可采 作者简介:卢红梅(1975 O2~),女,河南镇平人,镇平县培训中 ,讲师。 用多种工具或协议,归纳起来有SNMP、ARP、ICMP(Ping) ̄1 DNS等。 这些算法各具特点,通过相关数据的分析比较.我们不难看出SNMP [责任编辑:周娜] (上接第121页)[5]张晨,张宁.3aNiON络拓扑性质研究l Jll上海理工大学 版,2007,28(4):314—318. 学报.2006.28(5):489—494. [6]何大韧,等.复杂系统与复杂网络fM1.高等教育出版社,2009. [7]高自友,吴建军,毛保华,黄海军交通运输网络复杂性及其相关问题的研究l J1 .交通运输系统工程与信息.2005,5f41:79—84 [8]李英,周伟,郭世进.上海公共交通网络复杂性分析lJ].系统工程,2007,25(1): 38-41. [11]张欣公交网络复杂性研究[1)J.大连:大连理工大学,2006. [12]马景富,王红蕾.贵阳公交交通网络复杂性分析[JJ.网络与通信,2009,28(4】: 89-90,194. 作者简介: ̄5(i983--),男,助教,硕士,主要研究方向为复杂网络、网络 拓扑结构 [9]王酷,彭其渊.成都市公交复杂网络拓扑特性研究【JJ.交通与计算机,2007,25 (2):39—42. [1O]李岸巍.太原市公交网络的复杂网络特性分析【J】l中北大学学报:自然科学 [责任编辑:王洪泽] 145