搜索
您的当前位置:首页正文

网络拓扑自动发现系统的设计与实现

来源:尚佳旅游分享网
维普资讯 http://www.cqvip.com 第27卷第7期 计算机应用 Vo1.27 No.7 2007年7月 Computer Applications July 2007 文章编号:1001—9081(2007)o7—1587一o4 网络拓扑自动发现系统的设计与实现 董宏亮 ,杨英杰 ,姜增良 (1.信息工程大学电子技术学院,郑州450004;2.炮兵指挥学院三系,河北廊坊065000) (dh10606@yahoo.Com.cn) 摘要:在对目前的网络拓扑自动发现技术深入分析研究的基础上,设计并实现了一个网络拓扑 发现系统。该系统能够从多个数据源中获取网络拓扑信息,具有网络拓扑自动分级发现和网络拓扑 自动分层表示的功能。较传统的网络拓扑发现系统而言,该系统具有设计复杂度低、发现的网络拓扑 完整和直观的优点。 关键词:网络拓扑;拓扑发现;管理信息库;简单网络管理协议 中图分类号:TP393.02 文献标志码:A Design and implementation of a topology discovery system for networks DONG Hong—liang ,YANG Ying-jie ,JIANG Zeng—liang (1.Institute ofElectronic Technology,Information Engineering University,Zhengzhou ttenan 450004,China; 2.3rd Department,Isntitute foArtillerist Command,Lanffang ttebei 065000,China) Abstract:Based on the analysis of present network topology discovery methods,a topology discovery system for networks was designed and implemented,which gained topology configuration information from multi-sources,automatically discovered topology by level and displayed topology by hierarchy.Compared with traditional topology discovery systems,this system has lower design complexity.And the topology map discovered by this system is more complete,and much easier to be observed. Key words:network topology;topology idscovery; Management Ifnomration Base(MIB); Simple Network Management Protocol(SNMP) 0 引言 系统。首先,该系统能够从多个数据源中获取网络拓扑信息, 保证了网络拓扑信息的完整性;其次,该系统将拓扑发现过程 直观的网络拓扑配置信息不仅能反映网络中各个网络设 自动分级实现,降低了系统在设计上的复杂度;最后系统将拓 备的布局状况,方便用户多角度观察网络结构,快速诊断和排 扑显示过程自动分层表示,增强了网络拓扑信息的直观性。 除网络故障,而且对网络流量监控、异常告警、防范网络攻击 具有重要意义…。然而随着网络规模的不断扩大与网络结 1 网络拓扑自动发现系统的设计 构的日益复杂,拓扑配置信息的获取变得愈来愈困难。 1.1系统架构 目前提出的网络拓扑发现方法主要有基于SNMP路由表 为了增强系统模块的独立性,降低模块之间的耦合度,系 法 。J、基于ARP地址转换表法 和基于Ping和Traceroute 统在设计上划分为三个层次,自底向上依次为数据层、业务层 主动探测法 J。虽然以上方法在其适用的领域都能很好地 和逻辑层。系统架构见图1。 工作,但是它们也存在一些明显的不足。例如,基于SNMP路 由表的方法要求待发现的网络设备必须支持SNMP;基于 ARP协议的方法要求待发现的网络设备支持ARP协议;基于 DNS Zone Trans ̄r的方法则需要DNS服务的支持;基于ICMP 的方法在一定程度上加重了网络的负荷等。总之,它们采用 的拓扑信息来源比较单一,使得发现的网络拓扑很难做到完 整和准确;并且它们大都依赖于具体的协议或服务来实现,在 实际应用中具有各自的局限性。由于网络中存在着如路由 器、交换机、网桥、集线器、中继器、子网、主机等种类众多、类 图1网络拓扑自动发现系统架构 型各异的网络设备,其中路由器、子网工作在网络层,交换机、 1.1.1数据层 网桥和集线器工作在链路层,主机工作在应用层。在同一层 数据层包含网络拓扑数据源和拓扑信息数据库。 面上发现和显示所有的网络设备非常困难,并且会降低网络 网络拓扑数据源 本文网络拓扑数据源主要来自待发现 拓扑图的直观性,不便于网络管理员观察和研究网络拓扑。 网络设备的MIB.I1(RFC1213)中的接El组、IP组和Ping的探 针对以上不足,本文设计并实现了一个网络拓扑自动发现 测结果。 收稿日期:2007一O1一O5;修回日期:2007—03—27。 基金项目:河南省自然科学基金资助项目(0611051300)。 作者简介:董宏亮(1976一),男,陕西商州人,助教,硕士,主要研究方向:网络安全;杨英杰(1971一),男,河南郑州人,副教授,博士,主要 研究方向:信息安全、数据挖掘;姜增良(1974一),男,山东沾化人,讲师,硕士,主要研究方向:信息安全。 维普资讯 http://www.cqvip.com 1588 拓扑信息数据库史拓扑信息。 1.1.2业务层 计算机应用 拓扑信息数据库中存储着当前和以往 用邻接表来存储网络拓扑图。 2007车 的网络拓扑信息,其主要功能是为拓扑信息显示模块提供历 定义4网络拓扑邻接表。包含节点表和边表。 节点表以顺序存储结构保存图中的所有节点,每个节 点包括两个成员,data和next,data表示节点的数据元素信 息,next指向该节点的边表。 业务层包含拓扑信息采集模块和拓扑信息存储模块。 拓扑信息采集模块数据。 拓扑信息存储模块该模块完成两个功能:从拓扑信息 该模块主要功能是利用第三方开发 包提供的SNMP接口从拓扑信息数据源中的MIB—II中采集 边表边。 以链式存储结构保存与一个节点相关联的若干条 网络拓扑信息的形式化描述如下: TopologyGraph=(NodeList,EdgeList) 发现模块获取网络拓扑信息,并将数据写入拓扑信息数据库 中;为拓扑信息显示模块提供历史拓扑信息。 1.1.3逻辑层 逻辑层包含拓扑信息发现模块和拓扑信息显示模块。 拓扑自动发现模块拓扑自动发现模块是算法的核心, 完成网络拓扑自动发现功能。该模块将从拓扑信息采集模块 中获取的数据加工为网络拓扑信息,并将该拓扑信息提供给 拓扑信息存储模块和拓扑信息显示模块。 拓扑自动显示模块该模块不仅能够从拓扑信息发现模 块中获取当前的网络拓扑信息,还能够借助拓扑信息存储模 块从拓扑信息数据库中获取历史的拓扑信息。 1.2数据层设计 1.2.1 网络拓扑数据源 1)网络拓扑信息数据源 系统的网络拓扑信息主要来自于MIB.II和基于ICMP的 主动探测结果。MIB.II定义了描述被管理对象的信息集合。 网络管理员可通过读取和设置被管节点MIB.II中被管对象 的值实现对被管节点资源的监视和控制。MIB.II中的管理信 息被划分为若干组,与网络拓扑相关的组主要有系统组、接口 组和IP组。其中,系统组包含了关于实体所在系统的数据。 接口组对象提供了关于网络设备上每个特定接口的数据,接 口组定义了提供接口信息的接口表(ifTable)。IP组定义了三 个表对象:IP地址表(ipAddrTable),IP路由表(ipRouteTable) 和ARP地址转换表(ipNetToMediaTab),它们是网络拓扑发现 的重要信息来源。 基于ICMP的主动探测结果主要包括两部分:1)利用 ICMP协议的ECHO REQUEST/ECHO ERPLY测试网络设备 是否可达;2)用TRACEROUTE 获取的相邻网络设备在实际 网络中的连接关系。 2)网络拓扑信息的形式化描述 定义1 图(Graph)。由节点集合及节点间关系集合组 成的数据结构。图中的节点又称为顶点,节点之间的关系又 称为边。一个图G记作G=G(V,E)。其中 是节点的有限集 合, 是边的有限集合。 定义2无向图(Undirected Graph)。一个图中,如果用 节点的无序偶对代表一条边,则称边是无向的,用圆括号将一 对节点括起来表示无向边,如(A,B)和(B,A)表示同一条边。 此时图G称为无向图。通常采用邻接矩阵、邻接表、十字链表 等数据结构来存储无向图。 定义3 网络拓扑图。用无向图表示的网络拓扑配置信 息就是网络拓扑图。网络拓扑图描述了构成网络的路由器、 子网和主机的分布以及它们之间的关系。 考虑到邻接矩阵会造成很大的存储空间的浪费,本文采 其中: NodeList=RouterQueue U SubnetQueue Edgeust=RouterEdgeList U SubnetEdgeList //假设网络中有s个路由器,£个子网 RouterQueue=(Rl,R2,…,R R ),R‘为路由器 SubnetQueue=(Nl,Ⅳ2….,Ⅳj,…, ), 为子网 RouterEdgeList=fRouterEdge J 1≤i≤ } SubnetEdgeList=(SubnetEdge,l 1≤ ≤£) RouterEdge =((R ,Rk)l 1≤k≤s k≠i) SubnetEdge,=((R‘, )l 1≤i≤s) 网络拓扑自动发现过程即为从网络拓扑信息数据源中获取 相关信息,逐步得到RouteQueue、SubnetQueue、RouterEdgeList和 SubnetEdgeList,从而最终得到网络拓扑图的过程。 1.2.2拓扑信息数据库的设计 依据前面网络拓扑配置信息的形式化描述设计的主要数 据表如表1一表4所示。 表1 Routerf路由器) 字段 说明 ID 路由器标识 Address 路由器的某一个IP地址 InterfaceQueue 路由器接口队列 表2 Interface(路由器接口) 字段 说明 Index 接口索引 Address 接口IP地址 接口类型,当type为3时,接口与子网连接; typ。 当type为4时,接口连接下一跳路由器 DestlD。 。 表3 Subnet(子网) 字段 说明 字段 说明 ID 子网标识 Mask 子网地址掩码 Address 子网IP地址 HostQueue 主机队列 表4 Host(主机) 字段 说明 字段 说明 Address 主机IP地址 Mask 主机IP地址掩码 1.3业务层设计 1.3.1拓扑信息采集模块的设计 由于SNMP协议被绝大多数网络设备支持,基于SNMP 协议的采集引擎成为当前最流行的数据采集技术。对于提供 SNMP代理的网络设备,该模块采用的就是基于SNMP协议 的数据采集技术,该技术以管理者/代理(Manager/Agent)模 维普资讯 http://www.cqvip.com 第7期 董宏亮等:网络拓扑自动发现系统的设计与实现 1589 式来访问存在于网络设备中的管理信息库(MIB)中的数据, 级拓扑发现子线程来完成子网内活动主机的发现; 从而实现数据采集。该模块使用的基于SNMP协议的数据采 14)如果ipRouteType不为“indirect”(“indirect”表示接口 集引擎是基于开发包Java SNMP Package 设计与实现的。 与子网不是直接连接),转17); 对于未提供SNMP代理的网络设备,该模块采用基于ICMP 15)获取this—router的下一站路由器ipRouteNextHop; 的Ping和Trace orute的主动探测实现拓扑信息数据采集。 16)将ipRouteNextHop不重复地加入tempRouterQueue中; 1.3.2拓扑信息存储模块的设计 17) = +1,如果 不大于IP路由表条目数,转8); 如图1所示,该模块主要完成两个操作:1)写数据库操 18)将this—router加入到permRouterQueue中,转3); 作,即将从拓扑信息发现模块获取网络拓扑信息写入拓扑信 19)利用文献[6]提出的算法发现icmpRouterQueue中的 息数据库;2)读数据库操作,即从拓扑信息数据库中读取拓 每一个路由器与其他网络设备之间的连接关系; 扑信息显示模块所需的历史拓扑信息。目前绝大多数数据库 20)算法结束。 管理系统,如Oracle,Sybase,Microsoft SQL Server,MySql等都 RouteDiscovery算法在第3)步tempRouterQueue为空时转 采用了SQL(Structure Query Language)标准,本模块也将通过 第19)步,利用文献[6]提出的算法发现icmpRouterQueue中 SQL实现对拓扑信息数据库的存储操作。 的每一个路由器与其他网络设备之间的连接关系。算法在第 1.4逻辑层设计 16)步将ipRouteNextHop不重复地加入到tempRouterQueue中 1.4.1拓扑自动发现模块的设计 的目的是为了避免重复发现路由器。见图2,其中R1一R3为 为了降低拓扑发现算法设计的复杂度,将网络拓扑自动 路由器,s1一SIO为子网,A—F为路由器端口。假设 发现算法分两级设计:路由级拓扑发现和子网级拓扑发现。 permRouterQueue={R1,II2},tempRouterQueue={R3}o R3 1)路由级拓扑发现算法设计 发现端口D与c连接,端口E与F连接,通过检查 路由级拓扑发现算法的功能是将拓扑信息采集模块采集 permRouterQueue中路由器的端口,发现c是已发现的路由器 到的数据处理加工为能正确反映网络中的路由器、子网以及 R2的端口,F是已发现的R1的端口,所以应避免将R1和R2 路由器与路由器、路由器与子网之间的连接关系的拓扑信息。 重复加入到tempRouterQueue中。 算法用到的主要的数据结构如表5所示。 表5路由级拓扑发现算法的主要数据结构 数据结构名 说明 tempRouterQueue 待发现的路由器队列 permRouterQueue 已发现的路由器队列 icmpRouterQueue 未提供SNMP代理的路由器队列 图2网络拓扑 S ̄bnetQueue 已发现的子网队列 2)子网级拓扑发现算法 考虑到目前绝大多数路由器都支持SNMP,路由级拓扑 传统的子网级拓扑发现方法主要利用ICMP协议中 发现算法将基于SNMP来实现。算法中的函数SNMP—Get ECHO REQUEST/ECHO REPLY命令对整个子网空间进行扫 (object)实现了SNMP的Get-Request消息,其功能是获取 描,由于ping非活动主机的延迟约为20s【1 J,使得子网级拓扑 MIB中object对象值。算法描述见RouterDiscovery。 发现的效率不高。因此,本文采用ICMP协议中ECHO RouteDiscovery ERQUEST/ECHO ERPLY命令与SNMP中的ARP地址转换表 输入搜索处的默认网关路由器router; 相结合的方法来发现子网内的活动主机,其步骤是:首先利用 输出permRouterQueue、icmpRouterQueue 和 SNMP获取与路由器某接口关联的ARP地址转换表中设备的 SubnetQueue; IP地址;其次,利用ICMP协议的ECHO REQUEST/ECHO 1)初始化tempRouterQueue、permRouterQueue、 REPLY命令获得与该接口连接的子网内活动主机。该方法 icmpRouterQueue和SubnetQueue为空; 的扫描地址空间仅为ARP地址转换表,从而避免了对整个子 2)将搜索起点的默认网关路由器加入到 网空间的扫描而造成工作效率不高。 tempRouterQueue中; 1.4.2拓扑自动显示模块的设计 3)若tempRouterQueue为空,转19); 算法将拓扑显示分为两层(路由层和子网层)显示。在 4)从tempRouterQueue队首弹出一个路由器this—router; 路由层,算法表示的网络拓扑为路由器、子网及其连接关系; 5)Ping this_router; 在子网层,算法表示的网络拓扑为子网内的网络之间的连接 6)若this_router是非活动的,转3); 关系。 7)若this_router未提供SNMP代理,将this—router追加到 遍历permRouterQueue中每一个路由器的接口列表可以 icmpRouterQueue,转3); 显示出路由层网络拓扑。遍历SubnetQueue中每一个子网的 8)访问ipRouteTable的第f行(f初始值取1); 主机列表可以显示出子网层网络拓扑。路由层网络拓扑显示 9)ipRouteType=SNMP_Get(ipRouteType); 算法见RouteD;splay。 10)若ipRouteType不为“direct”(“direct”表示接口与子 RouteD;splay(permRouterQueue) 网直接连接),转14); 输入permRouterQueue 11)由路由目的IP地址和IP地址掩码得到子网地址; 输出拓扑图 12)如果该子网已存在于SubnetQueue中,转17); 1)若permRouterQueue为空,转6); 13)将该子网加入到SubnetQueue中;而后生成一个子网 2)从permRouterQueue中弹出一个路由器this_router; 维普资讯 http://www.cqvip.com 1590 计算机应用 2007.皋 3)在拓扑图上标注this—muter; 采用本文设计的拓扑自动发现系统获得的以IP地址为 4)遍历this_router的每一个接口,若接口与子网连接,在 192.168.176.2的MSL6K路由交换机为默认网关而得到的路 拓扑图上标注该接口所连接的子网;若接口与路由器连接,在 由级拓扑如图3所示。 拓扑图上标注所该接口所连接的路由器; 采用本文设计的网络拓扑自动发现系统获得的子网Net 5)转1); 192.168.191.0的子网级网络拓扑如图4所示。 6)算法结束。 2 网络拓扑自动发现系统的实现 1 9218 ̄ 1 1 92. 1. 6.9 16 . 6 ̄. 1 9 1m.110 l92...168.船.191..16嚣辩 甲叩 .。“ 。2.1 系统实现的关键技术 系统实现中涉及的关键技术除了基于SNMP的数据采集 ¨技术、网络拓扑自动发现技术和网络拓扑分层显示技术外,还 192 ….168 .191.1 18趣2 .168.191. 23 涉及到基于JDBC的数据库连接技术和多线程技术。 M1 9.l92.168.191.86…’………。 . 1)基于JDBC的数据库连接技术 JDBC是一种用于执行SQL语句的Java API(应用程序接 I=I),它由一组用Java编程语言编写的类和接口组成,能够完 3 结语 成诸如与数据建立连接,发送SQL语句,处理结果等工作。 借助JDBC提供的标准的API,就能够实现业务层中数据存储 本文设计并实现了一个网络拓扑自动发现系统。该系统 模块的主要功能。 实现了拓扑信息采集、拓扑信息存储、拓扑自动发现和拓扑自 动显示等关键技术。从多个数据源中获取拓扑配置信息,保 2)多线程技术 为了提高算法执行效率,在网络拓扑自动分级发现算法 证了网络拓扑信息的完整性;自动分级发现网络拓扑降低了 中采用多线程机制,即将路由级拓扑发现过程作为主线程,将 系统在设计上的复杂度;自动分层显示网络拓扑增强了网络 拓扑信息的直观性;多线程机制的运用提高了拓扑发现的效 子网级拓扑发现过程作为子线程,每当新发现一个子网时,就 率。该系统能够动态、及时、准确发现工作在网络层上的路由 由主线程创建一个新的子线程,实现主线程和子线程、子线程 器、子网、主机及其连接关系。 之间的并行运行。 参考文献: 2.2运行结果 【1】 SIAMWALLA R,SHARMA R,KESHAV S.Discovering interact topology[c]//Proceedings of the IEEE INFOCOMO0 Conference. New York,NY:IEEE Communication Society,1999. 185Ne64 t 1921I 168.186.Net . l94168.186.128 [21 王志刚,王汝传,王绍棣,等.网络拓扑发现算法的研究【J】.通信 学报,2004,25(8):36—43. t lg2.168.191.0 【3】李可,薛质,铁铃.IP网络拓扑自动发现研究【J】.计算机工程, 2004,30(5):66—68. 【4】JACOBSEN V.traceroute[EB/OL]-【2007—01一o51.fot://fto. Net l92.168.184. ee.1b1.gov/traceroute.tar.gz. 【5】 SEVY J.Java SNMP Package[EB/OL].【2007一O1一o5].ht— Net 192.16 ̄.1791128 l t l .176.0 ot://gic1.cs.drexe1.edu/poople/sevy/snmp/snmp—package.htm1. 【6】HUFFAKER B,PLUMMER D,MOORE D,et a1.Topology discov・ cry by active probing[c/ou.Proceedings of Symposium on avpli・ Net l92.168.179.0 ) Net 192.168.176.128 Net l92.I68.177.0 cations and the Interact.2002[2007—01一o51.http://www.cai— 图3路由级网络拓扑 da.org/tools/measurement/skitrer/. (上接第1586页) 1.4内网服务器访问的解决 数据库的,因为校外的IP地址不在电子资源供应商所允许的 对于一些校内的特殊服务器,例如教学系统、财务系统、 IP地址列表中。采用VPN服务器后,由于用户端取得了校园 学生管理系统、办公自动化系统等,因为它们不需要提供对外 网的合法IP地址,如果在VPN服务器上增加到各电子资源 界的服务,如何才能保证广大师生员工在校外快速访问校内 服务器的IP地址路由,用户就可以使用此IP地址直接访问 资源。一个被广泛使用的方案就是采用VPN服务器,校外用 各大电子资源供应商的服务器,在线阅读并下载电子资源。 户可以通过拨号软件或浏览器建立同VPN服务器的连接,分 配得到校园网的II)地址,成为校园网的一部分。目前比较流 参考文献: 行的VPN服务器主要有Windows操作系统中自带的L2TP 【1】 BIND 9.0 Configuration Guide[EB/OL].【2007一O1—05].ht— VPN和商用的SSL VPN。用户通过VPN登录到VPN服务器 ot://www.isc.org/sw/bind/. 后,就可以像在校园网上一样访问校内资源了。此处VPN的 【2】校园网络应用优化解决方案【EB/OL].【2007—01一o51.ht— 设置同样采用广域网DNS负载均衡技术来实现Cemet与 tO://eo1.cn/xiao— yuan— wang——2471/20060323/t20060323— ChinaNet用户同时的高速访问。 145129.shtm1. 1.5图书馆电子资源的访问 【3】Bind9 View底下的master/slave设定方案【EB/OL].【2007—01 通常情况下,广大师生在校外是无法访问图书馆的网络 -o51.http://www.study—a.1 ̄a.org/tips/bind9一view.htm. 

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

Top