物理拓扑自动发现

2024-09-17

物理拓扑自动发现(精选4篇)

物理拓扑自动发现 篇1

0 引言

当前,网络管理已逐步实现智能化、可视化,网络拓扑自动发现是网络管理实现故障快速发现和准确定位的重要参考。随着网络拓扑结构和组成的日渐复杂,人工维护网络拓扑越发困难,自动发现网络拓扑结构的需求更加强烈。纵观国内外关于自动发现网络拓扑结构的研究,网络层设备发现技术已经较为成熟,而链路层发现因其透明性,仍值得深入探究。

1 国内外研究现状

近年来,互联网变得更加复杂且庞大,对互联网进行网络拓扑发现也变得愈加困难和复杂。因此,关于网络拓扑结构发现的研究是一项具有挑战性的工作,尤其在工程领域和军事工业领域有着巨大应用价值。国内外很多专家和机构对网络拓扑结构发现进行了大量研究。

数据链路层的拓扑发现能方便地使用简单网络管理协议,HwaChim Lin等通过Bridge的信息库管理方式将交换机的连接信息采集出来,这样做会导致拓扑发现结果不准确。著名贝尔实验室的Yuri Breitbart、卡耐基梅隆大学的Brucelowekamp,以及我国相关学者[1,2,3]分别在地址转发表的基础上进行了物理拓扑发现算法的改进。Breitbart算法是在各网桥地址转发表均一致的基础上改进的,因此该算法利用Bridge地址转发表来探测获取拓扑信息;Bruce的算法主要适用于网络中使用了Hub所产生拓扑发现问题的情况。国内学者通过对现有网络增加额外流量来维护转发表,从而改进了网络拓扑发现算法,并且成功实现了链路层网络拓扑发现。

2 链路层拓扑发现

因为网络拓扑结构包括网络层和链路层。一般目标网络内包括主机、集线器、交换机、路由器等设备。链路层中的连接关系主要有网络设备与交换机之间的连接、交换机与交换机之间的连接。

链路层拓扑信息在网络管理中非常重要,但该信息内容很难得到。以太交换机硬件相互之间的透明性,导致链路层拓扑发现异常复杂。子网中交换机只有在执行生成树协议STP时才与相邻设备进行信息交换,并且该协议也并非在所有环境中都可以使用。交换机可以保存转发数据库,交换机主程序将收到的数据包参照该数据库将数据包转发到相应的端口。链路层拓扑发现有这些信息即可,这些信息可以利用SNMP协议的标准MIB来获取。交换机之间的连接关系确定了整个局域网的拓扑结构[4]。

图1为链路层模型图,包含了多个交换机、主机。交换机可以和其它交换机通过各自的端口相连,主机可与交换机相连,也能够连接在集线器上。图1中,交换机设备和集线器等设备组成的局域网能够被分为交换设备集合P与端点集合C。在图中表示为:P= {C,D,A,B},C={Z,X,W,Y}。交换机能够通过各端口使该网络的其它设备连接到一起。集线器是用来将若干台主机设备连接到一台交换机的同一个端口的设备。本文称不支持SNMP的交换机为哑交换机。

在以太局域网中,交换机和交换机以及转发集的连接关系绝不会是环路,即便本来有环路,交换机也能够利用STP算法选择一个不存在环路的路径。若从某节点发出的报文经过交换机的某个端口,则该交换机可以记录该报文的源地址和对应的端口。在以后的数据传输中,如果交换机发现接收到发往该地址的报文,就会自动地转发到对应的端口,这些数据包的源地址和对应端口的关系构成了交换机的FDB。然而在交换机的FDB中,每个端口都是和多个设备的物理地址对应,对于某个交换机的端口,将物理地址所从属的设备集合叫作该端口的转发集。在图1中,FxC能够代表交换机C的x端口转发集,假设x为1,有F1C={A,Z,B,D ,X,W},如果某端口连接的所有设备都被包含在该端口的转发集中,则说明该转发集完整,从图中可知F1C是完整的[5]。

2.1 交换机之间的直接连接定理

假设两个不同的交换机节点互相连接,而且没有任何其它设备在它们之间,则称该连接是直接连接。如果有其它设备在两个节点的中间,则称该连接是间接连接。需要注意的是:直接连接仅仅是间接连接的特殊情况。由图1可知,交换机设备B与A通过端口4和1直接连接,交换机C和交换机A通过1和1端口间接连接。

从链路层拓扑发现的原理可知,若可以得出两个交换机的某些端口之间是否有直接连接关系,就能够容易地得出该网络中的交换机互联关系,则交换机和主机的连接关系也可以很容易被发现。在图1中,假设F1B与F1C全是完整的,也即F1C={A,B,W,X,D,Z},F1B={C,Y}。可以得出结论:F1B∩F1C=ф(空集),F1B∪F1C=N(N是图中主机设备的全集)。此结论的得出并非巧合,原因是:假设两个交换机设备通过端口x和y进行直接连接,并且路径中也没有任何其它网络设备,则以两交换机相连处为中间线,该网络中主机设备可以分成两部分:一部分是端口x所对应一侧,也即FxA,另一部分是端口y所对应一侧,也即FyB。因此,FxA∪FyB=N。

可以这样描述直接连接定理:如果FxA和FyB同时都完整,则A通过x端口和B的y端口进行直连的充要条件为:FxA∩FyB=ф并且FxA∪FyB=N。

通过上述直接连接定理,能够很容易地遍历局域网中所有交换机的FDB,之后再对不同交换机的端口转发集作“并”运算操作,若运算结果为全集并且“交”运算操作的结果是空集,则可以说这两个交换机通过这两个端口直接连接。然而。直接连接方法存在一个很大缺陷,即必须要求交换机的端口转发集全部是完整的。但在实际应用中,当网络规模不断扩大时,几乎不可能获得完整的端口转发集。因此,上述直接连接定理的方法就不适用实际网络环境了。

2.2 交换机之间的间接连接定理

与直接连接定理不同,间接连接定理方法的思想是:通过反证法,依次否决掉没有可能的连接。通过反证法判断连接的例子如图2所示。

首先可以假设交换机A与交换机B间接连接,然后判定此连接是否和交换机A、B中的FDB信息相矛盾。若找不出矛盾,则可以说该连接可能存在;若有一条矛盾,就可以说该连接肯定不存在。由图2可知,交换机A与B的连接可以有6种关系,如图3所示。

假设A、B通过端口1、1 进行间接相连,图2表示了图3列举的第一种情况。在以太局域网中,交换机设备相互连接成树状的结构,不能存在环路。因此,此时该网络应该被分成3个部分。首先是交换机A的2和3端口连接的设备;其次是交换机B的2端口所连接的设备;然后是交换机A、B和两者中间的设备。但是事实是:第一部分为F2A∪F3A,第二部分为F2B,这两部分不可以有交集。因为(F2A∪F3A)∩ F2B ≠ф,所以该事实情况和交换机A通过端口1和交换机B的端口1相连是矛盾的。事实上,除非两个端口之间是间接连接,则不同交换机上的两个端口转发集不能有相同的元素。如果有相同的元素,就相当于某个设备同一时刻存在于网络的不同位置,这显然不正确。图3中列出了5种情况,很显然只有第5种情况正确,其它情况都不对。真实的情况是交换机A和B通过端口1和2相连,该连接不一定是直接相连,也可能是间接连接。

间接连接判定交换机连接关系可以不用完全获取所有交换机的端口转发集,利用已知信息排除所有不可能存在的连接即可。首先依次组合两个交换机的所有端口,分别对交换机剩下端口的转发集做并运算,然后将得到的两个转发集再做交集运算。如果结果为空,则说明两个交换机相连,直接相连是间接相连的一种特殊情况。

2.3 通过间接连接定理判定直接连接关系

假设目标子网内,交换组成的集合是G。由STP协议可知,交换机之间是构成树的组织结构。选择任意交换机Si作为根交换机节点,设Si经过n个端口和其余交换机构成间接连接结构,则可以将G-{Si}构造成一个划分Ti,该划分中可以包括n个元素,并且每一个元素都是与Si的某个p端口进行间接连接的交换机设备集合,可以设为Gp。在Gp内选中交换机Sj,能够推出:Sj与Si之间一定是通过某个端口q、端口p进行间接连接。如果Sj没有经过端口q和Gp中其它交换机(记录Si的p端口转发集)间接连接,则能够判断出Sj与Si通过端口q和p是直接连接。

3 结语

网络拓扑结构自动发现包括网络层拓扑发现和链路层拓扑发现,网络层拓扑发现已发展成熟。本文详细介绍了链路层拓扑发现中用到的“直接连接定理”和“间接连接定理”,通过此两种定理可以快速、有效地勾画出链路层设备拓扑结构,使得完全拓扑结构发现得以实现,对现代网络管理意义重大。

参考文献

[1] 宋翠.网络拓扑发现算法的研究[J].企业导报,2014(16):137-146.

[2] 焦彦平,李唱,陈东宁.基于协议的网络拓扑发现算法研究[J].科技创新导报,2014(20):46-50.

[3] 牛新征,梁帆,周明天.基于无线传感器的物联网网络拓扑发现算法研究[J].计算机科学,2012(4):118-122.

[4] 吴远,李润知,刘亚珂.网络拓扑发现算法的分析[J].电子技术应用,2006,32(8):28-31.

[5] 刘海华,王萍萍.基于生成树算法的链路层拓扑发现研究[J].计算机技术与发展,2008,32(5):101-104.

以太网物理拓扑发现方法研究 篇2

关键词:以太网,物理拓扑,自动发现,SNMP,MIB

1 概述

随着计算机网络技术和应用的迅猛发展,网络变得庞大而复杂。单纯依靠人工来绘制拓扑图将变得越来越难。因此,为了能科学有效的管理网络,网络拓扑自动发现变得尤为重要并具有现实意义。网络拓扑又分为逻辑拓扑和物理拓扑,逻辑拓扑主要是对网络层设备的发现以及其逻辑关系的确定;物理拓扑主要是对链路层和物理层的设备的发现,设备间的连接关系,如交换机之间的连接以及主机和交换机的连接。对于网络管理,逻辑拓扑是不够的,要通过物理拓扑来查看网内的设备连接关系。目前获得物理拓扑的技术还不很成熟,本文重点讨论用于获取物理拓扑的方法。

2 研究现状

目前实现的物理拓扑发现方法大致有以下几种方法:基于SNMP协议来采集拓扑数据;基于Bridge-MIB中的地址转发表来确定设备间的连接关系、;基于STP协议来确定;基于Cisco的CDP协议来发现邻居设备(针对Cisco设备)。以上方法,在一定程度上能够完成物理拓扑的发现,但是存在以下缺点:对于地址转发表的要求较高,地址转发表应保持完整;并不是所有的交换机都提供STP MIB;只有Cisco的设备才能使用CDP协议,不适合网络中交换机的多样化的需求;并且SNMP协议对设备的MIB信息进行读取操作时有一定延时,对于一定规模的网络,总延时会比较大。

3 改进的物理拓扑发现方法

本文提出了一种改进的物理拓扑发现方法,这种方法是基于SNMP、MIB来实现的。物理拓扑发现经过以下步骤:节点发现、连接关系计算。现在详细叙述各个模块的实现

3.1 节点发现模块的实现

该模块用于发现局域网内所有活动的节点。通常有两种方法:一是通过路由器的MIB中的ip Net To Media Phys Address信息获得活动的节点的IP地址;另一个是使用Ping工具,通过将管理机的IP地址与子网掩码与运算得出该网段内所有可用的IP地址,逐个进行Ping操作,能够Ping通的则是活动的主机。这两种方法都存在各自的优点和缺点。

下面主要介绍第一种方法的过程:

1)开始发现;

2)获取网管主机IP以及子网掩码;

3)获取网管主机网关地址;

4)访问网关路由器ip Net To Media Phys Addre;

5)将活动的IP加入到Active Node队列;

6)Active Node是否为空(如果为空直接结束,否则转7));

7)取出一个队头节点,访问该节点的MIB库(sys Services);

8)sys Services==2(如果为真,到9),为假跳到10);

9)将节点加入到Switch集合中(List);

10)将节点加入到Terminal Node队列;

11)跳转到6)。

3.2 连接关系的计算

为了说明方便,这里定义几个概念、表示符号、相关的数据库:

叶节点:不具有转发功能的节点称为叶节点,如终端主机、服务器、管理终端等。

交换机端口:一个交换机具有多个物理接口,用Sij交换机Si的j端口

转发模式集合:交换机具有多个端口,有的端口可以转发多个不同的MAC,有的仅能转发单一的MAC,用Ui(端口,转发的MAC)来表示i交换机能转发单一MAC的集合。用Mi来表示i交换机能转发非单一MAC的集合

用{R}表示与交换机直接相连的路由器的接口的MAC

终端主机的MAC:用{T}表示终端主机的MAC

以下就是使用SNMP获取地址转发表的具体步骤:

1)设定SNMP请求PDU,绑定dot1d Tp Fd Address(其OID为1.3.6.1.2.1.17.4.3.1.1)这样,收到的应答中能够解析出交换机能够转发的MAC,格式形如:1.3.6.1.2.1.17.4.3.1.1.0.0.12.7.172.8=Hex:00 00 0C 07 AC 08

2)根据交换机能够转发的MAC得到转发该MAC的桥端口:设定SNMP请求PDU并绑定dot1d Tp Fdb Port(其OID为1.3.6.1.2.1.17.4.3.1.2),收到的应答中能够解析出以转发的MAC相对应的桥端口。格式形如:1.3.6.1.2.1.17.4.3.1.2.0.0.12.7.172.8=13

3)根据得到的桥端口号能够得到与该桥端口相对应的交换机端口号:设定SNMP请求PDU并绑定dot1d Base Port If Index(其OID为1.3.6.1.2.1.17.1.4.1.2),收到的应答中能够解析出与桥端口相对应的交换机的端口号。格式形如:1.3.6.1.2.1.17.1.4.1.2.13=2

4)根据以上步骤完成了地址转发表的读取并格式化,最终的格式为[交换机端口,转发的MAC]。

下面针对几种典型的拓扑来说明如何确定连接关系

交换机和路由器相连,并连着终端主机。此时交换机的单一转发集合U中,转发的MAC应包含{R}、{T},这种情况下很容易确定连接关系以及相应的连接端口。

如图1,交换机S1的单一转发集合U1中应包含{R}、{T1},由此即可推断交换机S1与路由器相连且有终端主机(叶节点)与之相连,非单一转发集合M1中应包含{T2}、{T3},由此可以推断交换机S1还连着具有转发功能的设备(如交换机);交换机S2的单一转发集合U2中应包含{T2}、{T3},由此可以推断交换机S2有两个终端主机(叶节点)相连,非单一转发集合M2中应包含{R}、{T1},由此可以判断交换机S2连着一个具有转发功能的设备,综上可知交换机S1和交换机S2的连接关系。

如图2,交换机S1的单一转发集合U1中应包含{R}、{T1},由此可知交换机S1与路由器直接相连,并且有以终端T1与之相连,非单一转发集合M1中应包含{T2}、{T3}、{T4}、{T5},由此可知交换机S1还连着两个具有转发功能的设备(M1中含有不同的转发端口);交换机S2的单一转发集合U2中应包含{T2}、{T3},由此可知交换机S2连接着两个终端T2和T3,非单一转发集合M2中应包含{R}、{T1}、{T4}、{T5},由此交换机S2还与一个具有转发功能的设备相连,又由于M1中能转发的MAC与U2中能转发的MAC具有交集,这可判断交换机S1与交换机S2相互连接;交换机S3的单一转发集合U3中应包含{T4}、{T5},可知交换机S3连接着两个终端T4、T5,非单一转发集合M3中应包含{R}、{T1}、{T2}、{T3},由此交换机S3还与一个具有转发功能的设备相连,有由于M1中能转发的MAC与图2拓扑二U3中能转发的MAC具有交集,故可判断交换机S1还与交换机S3相互连接。

如图3,交换机S1的单一转发集合U1中应包含{R}、{T1},由此可知交换机S1与路由器直接相连并且有一终端T1与交换机S1相连,非单一转发集合M1中应包含{T2}、{T3}、{T4},由此可知交换机S1还与另一具有转发功能的设备相连;交换机S2的单一转发集合U2中应包含{T2},说明有一终端T2与交换机S2相连,非单一转发集合M2中应包含{R}、{T1}、{T3}、{T4},由此可判断交换机S2连着两个具有转发功能的设备((M2中含有不同的转发端口);交换机S3的单一转发集合U3中应包含{T3}、{T4},可知交换机S3连接着两个终端T3、T4,非单一转发集合M3中应包含{R}、{T1}、{T2},由此可知道交换机S3还与一个具有转发功能的设备相连,又由于M2与U3有交集,故交换机S2还与交换机S3相互连接。

以上三种拓扑比较简单,但很具有代表性和现实意义,因为现实中的局域网都可以基于以上三种进行扩展。下面将对以上所述的内容进行总结并提出物理拓扑发现的一般过程,定义Active Node队列用于存放活动的IP地址以表示活动的节点,定义Switch集合用于存放交换机的IP地址表示交换机节点。

3.3 确定连接关系的过程

用流程图详细描述确定连接关系的过程如图4所示。

4 综述

以上所描述的物理拓扑发现过程都是基于现实意义的,当然现实的拓扑可能要复杂的多,但无非是通过各种各样的组合来实现的。本文中所讨论的方法在一定程度上可以降低对地址转发表的要求,改进了现存的方法,当然有些缺点是不可避免的,像是SNMP读取消息的延迟,还有就是由于网络设备IOS版本的不同,读取出来的MIB信息的格式也是不同的,这就要求对信息进行格式化处理,处理成所需要的格式。

总而言之,物理拓扑的发现意义重大,当前需要解决的最重要的问题是:如何使物理拓扑发现的方法规范化、标准化,使之能够适用与不同的拓扑、来自不同厂家的设备。

参考文献

[1]李明江.SNMP简单网络管理协议[M].北京:电子工业出版社,2007:1-40.

[2]李琳,李杰.基于SNMP的网络拓扑发现算法[J].计算机工程与设计,2008,29(6):1346-1347.

物理拓扑自动发现 篇3

关键词:网络,SNMP,MIB,拓扑发现

0 引言

随着网络规模的日益扩大,复杂度的不断增加,网络拓扑结构也随之变得日益复杂。一个好的网络管理系统应该反映网络中所有设备的布局结构,方便用户全方位地管理网络,对网络异常流量、设备告警、网络攻击现象等进行快速诊断和定位,以减少网络异常造成的损失[1]。网络拓扑的自动发现,其目的是获得被管理网络的拓扑结构,主要指互连设备,如路由器、交换机、PC设备等的信息以及它们之间的连接关系。网络拓扑的自动发现是网络管理系统的重要组成部分,是发现系统故障和监控设备性能的基础,更是衡量一个网络管理系统成败的重要标准之一[2]。

1网络拓扑的自动发现

网络拓扑的自动发现通过收集网络拓扑的各种必要信息,确定网络元素之间的互连关系,并在此基础上构造网络拓扑图,为网络管理人员提供一个直观了解全局网络状态的友好界面。网络拓扑的自动发现是对大规模网络进行有效管理的必不可少的手段,当前常用的网络拓扑自动发现方法主要包括基于ARP协议的拓扑发现方法、基于ICMP协议的拓扑发现方法和基于SNMP协议的拓扑发现方法等[3~6]。

1)基于ARP协议的拓扑发现方法。每个支持地址协议的网络设备中都维护着一张ARP表,该表记录了该设备连接的网络设备的IP地址和MAC地址的对应关系。利用ARP表,可以从一台已知路由器或交换机的ARP表发现其连接的其它网络设备,从这些新发现设备中区分出路由器和交换机,并继续根据这些路由器和交换机的ARP表进行设备发现,从而得到整个网络的拓扑结构。因为ARP表中的网络设备地址都是最近活动过的有效设备的IP地址,几乎没有冗余信息,所以该拓扑发现方法效率很高。但如果网络过大,ARP表中可能无法包括网络中实际存在的所有网络设备,同时待发现的网络设备需要支持ARP协议,所以该方法适合于局域网的拓扑发现。

2)基于ICMP协议的拓扑发现方法。它通过向网络设备发送ICMP报文,测试设备的可达性。该方法对一个网段内所有设备的网络IP地址依次执行ping操作,根据响应就可以发现当前该网段内所有活动的网络设备。根据给定的IP区间逐一进行ping操作,根据结果,再对上一次操作记录的活动的IP地址逐一进行路由跟踪,记录下每一次路由跟踪的操作结果,根据前面的操作结果,再分析所得到的信息,从中得到整个拓扑的连接情况。该拓扑发现方法简单、可靠、快速,但发现具有一定的盲目性,并在一定程度上加重了网络的负荷等,此方法适用于子网内网络设备的发现。

3)基于SNMP的拓扑发现方法。每个网络设备都有路由表,路由信息中包含了完整的网络拓扑信息,包括路由目的网络地址、目的网络的子网掩码、该路由的下一站IP地址、对应的端口索引和路由协议类型等。由于路由表中的下一站地址项所标识的必然是具有路由功能的网络结点,因此从设定路由器开始,读取路由器的路由表,可以逐渐向下发现网络中所有基于路由功能的网络结点。再根据路由表的本地接口的索引标识项,找到接口表中对应的接口索引,由接口表的接口类型就可以了解到所在子网的类型,从而构建出整个网络的拓扑关系图。这种方法的拓扑发现过程和算法简单,目标明确,发现效率高,系统和网络开销小,因此得到人们的广泛应用。但是,该方法也存在不足之处,主要表现在:

(1)无法发现网络中没有配置IP的网络设备;

(2)一个路由器往往配置了多个IP地址,并且基于路由表的发现方法算法是基于IP地址的,所以对于路由器多IP现象,可能导致路由器的发现与实际情况不合;

(3)要依次检测各网络设备的状态,导致算法运行时间可能过长,同时设备的发现受网络时延等影响,不能完全实时反映网络状况;

(4)路由表中包含了大量冗余信息;

(5)网络设备必须支持SNMP协议。

因此,该方法主要用于大型主干网络的拓扑发现,主要发现网络中的路由设备,反映网络的整体拓扑结构状况。

可见,当前各种拓扑方法各有优缺点和局限性,在实际应用中需要根据具体的情况,有选择或综合地应用。本文给出了一种基于SNMP的网络拓扑发现算法,经过实际网络管理系统的验证,能够有效发现整个网络的拓扑结构。

2 基于SNMP的网络拓扑自动发现算法

2.1 算法思想

在网络中路由器之间的链路是由其两端路由器的端口互联构成的,根据TCP/IP的编址原理,链路两端路由器端口的IP地址必然处于同一个子网中。因此,通过一个子网中已知的IP地址和这个IP地址的子网掩码即可计算出该子网中所有其他的IP地址。

根据以上思路,从某个节点开始,访问其MIB库,得到该节点所有接口的IP地址和子网掩码,该节点称为种子节点。通过计算得到与每一接口在同一个子网内的其他IP地址。判断这些IP地址是否属于路由器信息,如果是则将此路由器信息记录到待检测路由设备链表,作为下一层发现的种子节点。并同时记录两个路由器间的链路信息到拓扑信息链表。重复以上步骤直到没有种子节点或者达到指定的发现层数,即可完成相应的拓扑发现过程。

2.2 算法描述

算法可具体描述如下:

1)根据网络管理系统的IP和掩码,使用路由跟踪的方法获取网管终端所在的默认路由器网关地址。访问该路由器获取ip Adderss Table地址表信息,将其编号加入All Routers队列(元素包括路由器名、接口号、接口IP、接口号和接口IP等),其中接口号与接口IP的多少依据各个不同路由器而不同)和AccessRouters队列(待访问路由器,结构跟AllRouters类似);

2)从AccessRoutes取出一个元素设为当前处理的路由器Rx,依次访问Rx的路由表ip Route Table表项,将目标子网信息编号无重复地放入子网队列Subnets(元素包括子网号,子网地址,掩码等);

3)判断路由器与子网连接关系:依次对Rx的ipRouteTable表项检查,如果ipRouteType项不为4,表示相应子网与Rx直接相连,下一跳地址ipNextHopIpAddress项为空。根据Rx的ip Address Table信息确定y端口与该子网z相连接,将连接关系组(Rx,y,Subnets)无重复地放入R-links-S队列(路由器接口与子网相连的接配对的二元组);

4)判断路由器之间的连接关系:如果ip Route Type为4,下一跳ip Next Hop Ip Address地址有效,表明另一个路由器与Rx直接相连。根据ip Next Hop Ip Address地址信息访问另一个路由器的ip Address Table,判断All Routers队列中是否己经存在该路由器信息,如不存在则把该路由器编号加入队列All Routers和Access Routers中。很容易确定Rx的y端口与另一个路由器Ru的v端口直接连接。因此把元素(Rx,y,Ru,v)无重复地放入队列R-links-R(路由器接口与路由器接口相连的二元组)中。

5)把队列R-links-R进行去冗处理。因为在以上的算法实现中,有可能存相同的连接信息加入到队列中。例如:R1的2端口与R4的3端口直接相连,在算法实现过程中,可能同时在队列中加入了(R1,2,R4,3)和(R4,3,R1,2)的元素组,虽然它们在形式上不一样,但他们表示同一个连接信息。

6)把Rx的元素组从AccessRouters中删除,如果AccessRouters不为空,转到(2),如果为空,程序中止。

算法运行结束以后,All Routers包含了所有活动的路由器,子网队列Subnets包含了所有活动的子网,队列R-links-S和队列R-links-R的信息表示路由器与子网、路由器与路山器之间连接关系,最终可以准确而完整地把拓扑结构绘制出来。

2.3 拓扑发现中几个问题

1)路由器多IP地址问题

路由器的每个接口对应着一个IP地址,一个接口下可以配置多个端口。根据以上拓扑发现方法,就会出现重复访问同一路由器的现象,严重影响拓扑发现算法的准确性和效率。本文采取的具体解决方法是:路由器MIB库中的ipAddrTable表中提供了该网络设备所有的I P地址信息,ipAddrEntry表中的每一行是一个ipAddrEntry,而一个ipAddrEntry对应一个接口的地址信息。由于ipAddrTable中的对象都是只读的,所以使用ipAddrTable中的一个IP地址来标识路由器,同时结合if Table表,可以把接口和其IP地址一一对应起来。在实际应用时选择ip Add Table中的最大的IP作为路由器的标识IP地址更合理,由此就解决多IP识别问题。

2)控制拓扑阈值

上述算法利用路由表来从内向外发现路由器,可以发现的范围很广,如果不加以控制,可能造成拓扑发现时间过长,达不到预期发现的效果。通过对路由器的向下发现Hop数进行控制,并设置阈值,当从某个路由器向下发现Hop数达到设定阈值,则停止继续向下发现。这样得到的拓扑发现结果是以种子节点为中心向外辐射的星形树,同一层次的路由器处于同一树干上。但有时为简化程序复杂度,也可以利用限制拓扑发现时间的办法来控制发现的范围[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开源开发包,该开发包实现了SNMP协议的V1和V2版本。

在校园网的实验试验环境下,主干网络由1台路由器和多台三层交换机组成,交换机下挂接了若干PC服务器,用本算法对此网络进行探测,所得到的拓扑图如图1所示。

根据图1的显示结果分析,本算法已经正确地识别出来了路由器172.18.45.1和交换机172.18.45.118、172.18.45.215、172.18.45.125、192.168.0.47,以及连接在交换机上的所有服务器。本发现算法发现效率高、实用性强,可广泛应用于网络管理软件的拓扑图管理。

4 结束语

网络的拓扑结构对网络管理系统非常重要,各个软件厂商也采用自己的实现方法开发了一些进行拓扑发现的系统。本文对SNMP网络拓扑算法进行了深入研究,并在此基础进行了改进,提高了算法的发现效率,增强了网络拓扑信息显示的直观性,为网络管理、网络故障定位和网络设备管理提供了强有力的支持。该方法已成功应用于某公司的网络综合管理平台,取得了良好的效果。

参考文献

[1]Y.Breitbart,M.Garofalakis,B.Jai,C.Martin,R.Rastogi,A.Silberschatz,"Topology Discovery in Heterogeneous IP Networks:The NetInventory 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,D.Towsley,"Network Loss Tomography 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.

物理拓扑自动发现 篇4

随着三网融合和 中国NGB(下一代广 播电视网)战略的推进,EPON(以太网无源光网络)技术以其高带宽、易维护和成熟可靠的优势,成为广电网数字化、双向化改造的热门选择。而容量大、业务配置灵活、部署成本低的EoC(以太网数据通过同轴电缆传输)方案则成为同轴电缆接入的主要技术标准[1]。EPON与EoC的结合,既有效利用了现有的大量同轴电缆资源,也助推了NGB的建设。

EPON-EoC方案扩充了网管范围,但EoC的管理报文在EPON系统内是透明传送的,无法做到真正的EPON-EoC统一管理[2]。现网中数量庞大的EoC设备必须在EoC入网前对其管理信息进行本地人工配置,并且当EoC发生异常时,必须到现场对其重新设置。由于EoC设备数量庞大,手工方式无法进行有效的网络维护和管理[3]。因此建立一个统一的网管系统是EPON-EoC能广泛应用的关键,而实现EoC头端的自动发现功能显得尤为迫切。

针对上述问题,本文提出了切实可行的实现方案。

1EPON-EoC自动发现协议

EPON-EoC自动发现协议流程如图1所示,具体描述如下:

CBAT维护三个 参数:CDBP发送时间 间隔T1(默认60s)、T2(默认1200s)和一个CDBP报文发送方式。CBAT设备在上电、复位和软件重启后,向所连接的ONU设备以T1间隔连续发送CDBP广播帧。直到CDBP报文发送间隔被配置为T2。

ONU设备收到下接CBAT设备发送的CDBP报文后,修改报文,增加CBAT设备上联的ONU的端口号和IP地址等信息。

OLT收到ONU转发的CDBP报文后,应根据ONUID、ONU端口号和IP地址等信 息,确定CBAT上联的ONU信息,并将CBAT信息和ONU信息写入OLT本地CBAT自动发现表中。

若OLT连续3600s未收到同一个CBAT的CDBP帧 ,或检测到CBAT设备上联 的ONU去授权、UNI(用户网络接口)状态LINKDOWN,则将该CBAT条目从EoC表中删除。OLT在本地对eponLinkedEoCManagementObjects条目[4]进行创建、更新或删除操作后,向网管系统发送newCBATRecognized、existedCBATUpdate和existedCBATRemoved等事件。网 管系统收 到existedCBATRemoved事件,则将相应EoC设备设置为离线状态。网管系统收到newCBATRecognized/existedCBATUpdate事件,则读取对 应OLT的eponLinkedEoCManagementObjects表的信息,同时网管系统还应通过SNMPSet命令设置CBAT设备的CDBP报文发送方式为T2,对EoC的IP、管理VLAN(虚拟局域网)标识、读写共同体按照预先的规划进行回写,实现EoC设备的自动发现及配置。

2自动发现协议在 OLT 上的实现

2.1自动发现协议在 EPON 线卡上的处理

在本设计中,EPON线卡承担 了在OLT上与自动发现协议进行包交互的任务。软件实现主要有以下几个模块:CDBP报文处理模块、EPON线卡本地EoC表维护模块和自配置报文处理模块。

2.1.1CDBP报文处理模块

CDBP报文是二层以太网报文,以太网类型为0x88B7,交换芯片依据 以太网类 型抓包送 入CPU(中央处理器)。CDBP报文处理模块首先将报文内容送入消息队列,由CDBP处理任务进行处理,解析出EoC设备生产商名称、技术类型、产品类型、软件版本、硬件版本、局 端设备SN(序列号)、管理VLAN、管理IP、子网掩码、网关、MAC地址、MIB(管理信息库)版本信息、SNMP版本和读写共同体等设备信息,以及包含CBAT拓扑信息的PON口、ONU授权号、UNI号,作为CBAT表项的重 要索引。但是,并非所有ONU都有能力修改CDBP报文,添加UNI信息。对此,可根据CDBP报文的源MAC地址,通过OAM消息查询ONU的MAC地址表,获取UNI信息。这些信 息将被送 入EPON线卡本地EoC表维护模块。模块流程图如图2所示。

2.1.2EPON 线卡本地 EoC表维护模块

线卡本地EoC表为一维表。经过解析的EoC自动发现信息进 入本模块 后,首先按PON口号、ONUID(标识符)、UNI号构成的 索引查找 本地EoC表是否存在与索引和设备MAC地址相同的表项。索引相同且设备MAC地址也相同的表项将被更新,同时刷新时间戳信息。由于一个UNI下只允许存在一个EoC头端设备,索引相同而设备MAC地址不同的原表项将被删除。继续查找是 否存在MAC地址相同的表项,若存在,原表项索引和属性将同时更新,并刷新时间戳。若未查找到索引相同或者设备MAC地址相同的表项,上报的EoC设备将被视为新添加设备而插入表中。

当ONU下线或去授权时,将触发删除其所有下挂CBAT相应的表项。当ONU通告UNI端口LINKDOWN时,将触发删 除下挂CBAT相应表项。同时,EoC表老化任务将轮询所有表项的时间戳,超时未上报自动发现消息的CBAT表项将被删除。

对EPON线卡本地EoC表的插入、更新和删除操作,将同时触发向主控卡上报表项变化事件,以保持主控卡与线卡EoC表的同步。模块流程图如图3所示。

2.1.3自配置报文处理模块

EoC自配置功 能支持修 改管理VLAN、管理IP、子网掩码、网关、读共同体和写共同体等六项配置。EoC配置包由主控卡下发到EPON线卡,首先查找本地EoC表,确认相应CBAT存在,且索引与配置包中的拓扑信息匹配,否则配置过程将中止。将配置信息按自配置报文格式组包,调用交换芯片发送协议报文。

2.2自动发现协议在 EPON 主控卡上的处理

在本设计中,主控承担了收集所有线卡的EoC表并对用户提供MIB接口的任务。软件实现上主要有以下两个模块:网管(MIB)接口模块、主控卡本地EoC表维护模块。

2.2.1网管接口模块

本模块提 供EoCDevInfoTableGetApi、EoCDevInfoTableSetApi、EoCDevInfoTableGetFirst和EoCDevInfoTableGetNext等四个网管接口。

当主控卡对本地EoC表条目进行创建、更新或删除操作后,将向网络 管理系统 发送newCBATRecognized、existedCBATUpdate、existedCBATRemoved等相关事件。

2.2.2主控卡本地 EoC表维护模块

为了实现EoC表项的快速存储和安全查询,主控卡本地EoC表采用二叉树的数据结构。

当网管系统通过MIB接口对EoC表进行写入操作时,需遍历EoC表,确认索引存在且与EoC设备MAC地址匹配后,方可修改主控EoC表,并通过主从通信模块将其发送至EPON线卡。

当对EPON线卡本地EoC表进行插入、更新、删除操作后,立即向主控卡上报相应的表项变化事件。主控卡收到 上述表项 变化事件 后,完成本地EoC表的插入、更 新、删除操作,保持主控 卡与EPON线卡软表 同步,并触发向 网管系统 上报newCBATRecognized、existedCBATUpdate、existedCBATRemoved等事件。

3系统测试及分析

测试拓扑结构如图4所示,采用了1台OLT(含一主一备两张主控卡,两张EPON线卡),每张EPON线卡下挂32台ONU,每个ONU下挂1台EoC头端,选取一个EoC头端与32台终端相连。

系统测试步骤如下:

(1)根据拓扑图模拟现网拓扑搭建网络,进行实验性的打流,判定网络是否正常。

(2)网络测试正常后,改变物理网络拓扑,重启OLT,插拔EPON线卡,对ONU进行反复插拔光纤、重启、授权、去授权、插拔下接EoC的以太网线,重启EoC头端,改变EoC头端设备本地配置,模拟EoC设备老化,测试自动发现功能能否按照协议要求稳定可靠地更新EoC自动发现信息。

(3)通过网管进行配置,并立即在EoC设备本地查看配置,验证EoC自动配置功能是否有效且稳定可靠。

(4)配置正常生效后,采用RFC2544基准测试方法对系统进行吞吐量、时延和丢包率定量测试。

按照以上测试步骤对系统进行测试,测试结果如图5所示。

按步骤(2)测试,结果表明在各种可能的应用条件下网管均能及时收到正确的事件上报,且EoC表维护正常,拓扑图更新正确。按步骤(3)测试得知,配置下发无误,且响应十分迅速。按步骤(4)测试,结果表明该系统业务性能良好,吞吐量符合业务要求,且系统的时延小,无业务丢包,正常业务不受影响。

以上测试结果 说明本系 统能够达 到EPONEoC统一管理的目的,使得EoC局端的管理负担得到缓解,整个网络更加稳定和健壮。

4结束语

在现有的EPON-EoC网络中 ,需要在EoC入网前或管理信息重置后在本地对其管理信息进行人工配置,给整个网 络管理带 来了额外 的工作量。EoC头端的自动发现功能为EoC的维护提供了新的手段,使管理复杂的网络变得非常容易。在本系统中,EPON系统通过二层报文实现对EoC的自动发现与配置。通过软硬件的实现和测试结果证明,该设计是可行的,能够解决实际的问题。

摘要:目前大部分EPON(以太网无源光网络)和EoC(以太网数据通过同轴电缆传输)技术联合组网时都采用独立网管的方式,文章分析了现有技术在管理方面存在的不足,对EPON和EoC综合网管设备的自动发现协议进行了介绍,提出一种可以在OLT(光线路终端)上实现的EPON-EoC拓扑自动发现方案,并测试验证了该方案的有效性,该方案极大地减少了网络管理的负担并使EPON-EoC网络的统一管理成为现实。

关键词:以太网无源光网络,以太网数据通过同轴电缆传输,网络拓扑,自动发现,统一网管

参考文献

[1]GY/T269-2013,NGB宽带接入系统C-HPAV系统技术规范[S].

[2]赵中伟.EPON网管系统拓扑发现的设计和实现[J].电脑知识与技术,2010,6(22):6186-6187.

[3]潘志宏,谢海明,聂晶,等.EPON_EOC统一网管拓扑发现功能的设计和实现[J].光通信研究,2011,(1):1-4.

上一篇:把握小学数学课堂下一篇:北京动物园科普馆