IPv6拓扑发现四篇

2024-07-23

IPv6拓扑发现 篇1

目前,网络规模的迅速扩大,基于IPv4协议的Internet网络逐渐显示出地址空间匮乏、没有提供质量服务等弊端,IETF从1991年开始着手研究下一代IP网络协议——IPv6协议。网络拓扑管理一直是IP网络管理的一个基本功能,主要实现网络拓扑自动发现、更新和配置信息管理。由于IPv6网络庞大地节点数量以及IPv6协议对各类协议的重新定义,适用于IPv4网络的拓扑发现技术和方法不能很好的适应IPv6网络环境。因此,大规模网络环境下,特别是IPv6和IPv4混合网络环境下的拓扑自动发现和管理成为网络管理功能面临的现实问题,同时也成为本文研究的核心内容。

拓扑发现是网络管理中的一项基本功能,主要实现网络拓扑的自动搜索发现,并对网络拓扑定期更新,同时管理网络设备的配置信息。网络拓扑信息的获得对于Ipv6网络的管理的规划具有重要的意义。

2 IPv6网络拓扑发现

2.1 IPv6简介

IPv6是为了解决IPv4的一些问题,如有限的地址空间,分组处理效率低,路由表迅速膨胀,移动性、安全性和QOS等方面问题而提出的[1]。

Internet工程任务组(IETF)于1995年推出了IP v6,其主要特点有:

1)地址空间巨大:IPv6地址空间由IPv4的32位扩大到128位,2的128次方形成了一个巨大的地址空间。采用IPV6地址后未来的移动电话、冰箱等信息家电都可以拥有自己的IP地址。

2)地址层次丰富分配合理:IPv6的管理机构将某一确定的TLA分配给某些骨干网的ISP,然后骨干网ISP再灵活地为各个中小ISP分配NLA,而用户从中小ISP获得IP地址。

3)实现IP层网络安全:IPv6要求强制实施因特网安全协议IPSec,并已将其标准化。IPSec支持验证头协议、封装安全性载荷协议和密钥交换IKE协议,这3种协议将是未来Internet的安全标准。

4)无状态自动配置:IPv6通过邻居发现机制能为主机自动配置接口地址和缺省路由器信息,使得从互联网到最终用户之间的连接不经过用户干预就能够快速建立起来。

2.2 IPv6网络拓扑发现解决方案

发现网络拓扑结构实际是对给定网络设备群中的设备遍历一次。网络拓扑发现是依靠计算机软件自动确定网络中各元素相互之间的动态关系。网络元素是指网络中的路由器(低层网关)、交换机、网关、子网、网桥、hub、主机和信道等。在分析网络拓扑结构时,常把网络元素抽象为一个点,信道抽象成两点之间的边,这样网络拓扑结构抽象成为一个图。

目前,国内外对IPv6网络的拓扑发现比较典型的发现框架框架是由法国的I.Astic和O.Festor于2002年提出的分级拓扑发现结构[2]。

这种结构是将骨干网的拓扑发现和本地链路内的拓扑发现分开实现,将其分布在不同的控测点上,形成“管理中心—本地代理”模式的拓扑发现结构。在管理中心上布置骨干网的拓扑发现程序,负责发现骨干网中路由器及其之间的连接关系。在网络中放置多个探测点,每个探测点上有一个本地代理,在本地代理上布置本地链路的拓扑发现程序,负责发现该本地链路内的节点及配置信息。由本地代理向管理中心报告本地链路内的拓扑信息以及本地代理与管理中心之间的连接关系。这样就可以获得多个本地链路内的节点信息,从而使得拓扑发现结果更全面、更详细。本文采用“管理中心—本本代理”模式的层次化拓扑发现系统结构。

3 Ipv6网络拓扑发现基本思想

3.1 拓扑发现模型

Ipv6子网孤立地存在Ipv4骨干网络之间,如图1所示,通过隧道机制完成与6bone骨干网的连接。虽然隧道内部经过很多跳的Ipv4路由器,若仅从Ipv6网络的角度看,隧道只是Ipv6网络中两台Ipv6路由器之间的一条连接。因此拓扑发现过程需要判断出两台路由器之间的连接是一条普通的连接还是一条隧道。

因此,对Ipv6拓扑发现应该分为五个部分:本地发现、双栈信息获取、路径获取、骨干网发现和隧道发现模块,这几部分构成三个主要模块,即本地发现模块、骨干网发现模块和隧道发现模块。此外,还应包括拓扑存取模块、拓扑数据融合模块、拓扑显示模块等。其框架结构如图2所示。

3.2 关键技术分析

3.2.1 双栈信息获取

在Ipv4向Ipv6过渡时,存在大量同时拥有Ipv4和Ipv6协议栈的双栈设备,拓扑发现应当可以识别双栈设备上的Ipv6和Ipv4地址,因此系统应当包含部分Ipv4拓扑发现功能。?最简单的双栈工作是只支持IPv4和IPv6,但不支持隧道方式。对于大多数节点,尤其是如果这些节点的Internet应用软件都已升级为同时支持IPv4和IPv6,这种功能足够。因此,如同用于访问IPv4网络服务一样,同一应用也能够用于访问本地IPv6网络服务。节点可以与任何IPv4节点或IPv6节点互操作,但只限于与其有连接能力的网络。在图12-3的示例中,可以与双栈节点D互操作的节点包括:网络A和网络B中的IPv4节点或IPv6节点、网络M中的所有IPv4节点,但D不能和网络C中的节点互操作。网络C是严格的IPv6网络,从网络A到网络C没有IPv6路径。链接网络A和网络M的路由器只支持IPv4,因此无法通过网络M向网络C转发IPv6包。

3.2.2 路径获取

IPV6地址是分配给接口的,一个节点的每个接口都需要至少一个单播地址。一个接口也可以具有多个任意类型的IPV6地址(单播、多播或任播)。因此,一个节点可以有它的任意一个接口的地址标识。IPV6地址有三类:单播、组播和泛播地址。单播和组播地址与IPV4的地址非常类似;但IPV6中不再支持IPV4中的广播地址,而增加了一个泛播地址。其地址按照范围被划分为global unicast,link-local,site-local三类[3]。

链路-本地地址是用于单个链路并且具有以下形式:FE80::Interface ID。链路-本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路-本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。

站点-本地地址用于单个站点并具有以下格式:FEC0::Subnet ID:Interface ID。站点-本地地址用于不需要全局前缀的站点内的寻址。

全局IPv6单播地址可用在Internet上并具有以下格式:010(FP,3位)TLA ID(13位)Reserved(8位)NLA ID(24位)SLA ID(16位)InterfaceID(64位)。

在网络拓扑发现过程中,得到路由器地址后,要找到其他子网信息,则需要识别网络前缀。IPv4中经常采用MIB信息中的ipRouteNextHop项来发现和路由器相连的子网信息,而在IPv6路由表中,其ipv6RouteNexHop项经常是以本地链路地址来表示,即其子网前缀为FE80::/64,这在任何情况下都是不可能被寻址的,因而无法从该子网前缀得到下一跳的信息。[4]

3.2.3 匿名路由器的处理

如果只支持Ipv6协议栈的路由器的某些端口只配置sitelocal地址或link-local地址时,与之相连路由器的路由表中可能用site-local地址或者link-local地址来标识路由器。在正常情况下,发送traceroute探测包进行拓扑探测的过程中,在探测包的TTL值耗尽的时候,会以当前所在路由器的一个接口上的全球单播地址为源地址,返回一个ICMP响应包。然而,有时并非路由器上所有的接口都配置有全球单播地址,有的只配置了站点本地地址和链路本地地址的接口为源地址发送ICMP响应包时,大多数路由器会拷贝初始探测包的目的地址为ICMP响包的源地址,返回给探测点,从而将本身的路由器信息隐藏掉。

3.2.4 Ipv6的隧道发现

随着网络厂商和开发者逐渐将IPv6引入不同的平台,随着网络管理者逐渐确定自己所需要的IPv6功能,向IPv6过渡也将是一个相对缓慢的过程。预计IPv4和IPv6将长期共存,也许将永远共存。大多数过渡策略都依靠协议隧道的两路方法,即至少在最初,将来自IPv6岛的IPv6包封装在IPv4包中,然后在广泛分布的IPv4海洋中传送。经过过渡的早期阶段,越来越多的I P网络和设备将支持IPv6。但即使在过渡的后期阶段,IPv6封装仍将提供跨越只支持IPv4的骨干网和其他坚持使用IPv4的网络的连接能力。另一路策略是双栈方法,即主机和路由器在同一网络接口上运行。

IPv4栈和IPv6栈。这样,双栈节点既可以接受和发送IPv4包,也可以接受和发送IPv6包,因而两个协议可以在同一网络中共存。

4 结束语

随着IPv6网络的快速发展,它将逐步替代IPv4,成为Internet的主流网络层协议。本文对IPv6网络的拓扑发现方法进行了系统研究和分析,引入了新的方法和策略以适应IPv6网络的变化。同时,本文也完成了系统的模块设计和主要部分实现工作。关于拓扑发现算法的实现和仿真证明系统的测试,由于目前实验条件的限制,仿真证明系统是否能够满足IPv6网络的拓扑管理需要,还待进一步验证与完善。

摘要:随着网络应用的蓬勃发展,如何有效地获取IPv6网络的拓扑结构成为网络管理的一项重要内容。本文首先分析了IPv6相对于IPv4协议产生的变化和IPv6相关概念,提出了IPv6网络拓扑自动发现需要解决的关键问题,并给出相应的设计方案和实现方法。

关键词:IPv6,拓扑发现,隧道,traceroute6

参考文献

[1]HASKIN D,ONISHI S.RFC2465,Mangement informa-tion base for IP version6:textual conventions and general group[S].1998.

[2]李玉鹏,王换招,田海燕等.基于SNMP和Java的网络拓扑发现[J].计算机工程与应用,2004,(5):152-154

[3]李元臣,刘维群,徐凯声.一种基于广度优先遍历的网络拓扑发现算法及其自适应研究[J].武汉理工大学学报:交通科学与工程版,2005:29(5):481-484.

IPv6拓扑发现 篇2

2009年8月3日收到随着网络技术的迅速发展, 网络规模的不断扩大, 网络结构的日益复杂, 网络管理已成为网络系统运行好坏的关键。而网络拓扑发现是网络管理的基本工作, 是其他管理功能的基础。因此, 自动发现网络的物理拓扑结构具有非常重要的意义, 是网络管理系统的发展趋势[1]。

自动发现网络物理拓扑是指由程序自动识别和发现指定范围内的计算机网络中的路由器、交换机、主机等设备, 并建立所发现的网络设备之间的连接关系, 形成整个网络的拓扑结构[1] 。

分析国内外的相关研究, 发现目前的不足主要有以下几点:①搜索过程冗余信息过多, 耗时太长②搜索出的图只包含部分节点, 不够完整[2]。本文综合考虑了多种拓扑结构搜索方法, 提出了基于SNMP协议发现网络的逻辑层结构、结合STP协议确定网络链路层结构的方法。这个方法结合了逻辑层和链路层的搜索, 实行单次搜索并行发起, 多次搜索结果合并的机制, 在搜索时间上占一定优势, 并且经多次搜索可以获取接近完整的网络拓扑结构。本文还提出在搜索前, 对不进行搜索的设备进行规避的思想, 以缩短搜索时间。

1 基于SNMP协议的网络层拓扑发现

1.1 SNMP简介[2]

目前的网络连接设备基本上都是属于可网管型的, 即它们都支持SNMP协议。网络的拓扑信息可以从MIB库中获得, 因此可以通过使用SNMP的方式获取MIB信息, 从而得到计算机网络的拓扑连接关系。使用SNMP的优势在于只要针对少量设备发送探测报文, 探测速度快, 探测流量小。

SNMP的基本思想是:所有的网络设备都维护一个MIB库, 它保存该设备上所有与网络运行相关的信息, 并对管理工作站发出SNMP查询进行响应, 管理工作站通过从这些网络设备中获取的SNMP响应报解析出与网络拓扑相关的信息, 就可以得到整个网络的拓扑结构。

1.2 MIB信息

网络层拓扑发现所用的MIB信息库为RFC1213所定义的MIBII, 其结构如图1所示。

根据sysServices和ipForwarding值可以判断设备是否支持网络层服务, 是否具有IP路由功能, 从而判断设备的类型。

ipAddrTable中记录了该设备的所有端口地址等信息。ipRouteTable是网络层拓扑发现的关键, 它存储的是该设备的路由信息。ipNetToMediaTable即ARP表, 其ipNetToMediaPhysAddress、ipNetToMediaNetAddress分别代表与子网中设备的物理地址和网络地址。

1.3 基于SNMP的网络层拓扑发现过程

读取种子路由器 (开始搜索的节点) 的ipRouteTable, 由于路由表中的ipRouteNextHop所标识的必然是具有路由功能的网络节点, 因此可以从种子节点采用广度优先遍历算法由内向外发现网络中所有具有路由功能的设备[4,5]。

ipRouteTable中的ipRouteType有四种取值:other (1) , invalid (2) , direct (3) , indirect (4) 。其中direct (3) 表示ipRouteDest与该路由器直接相连, 其ipRouteNextHop为该路由器的一个端口地址;indirect (4) 表示ipRouteDest不与该路由器直接相连, 其ipRouteNextHop为另一个路由器端口地址, 要达到这个目的子网至少还需经过下一跳。

ipAddrTable的ipAdEntAddr表示路由器接口的ip地址, ipAdEntNetMask表示该接口所在子网的子网掩码, ipAdEntIfIndex表示ip地址所对应的端口索引。所有的ipAdEntAddr与ipAdEntNetMask进行“与”操作, 可以得到与该路由设备相连的所有子网地址。在ifTable中, 根据ipAdEntIfIndex可获取相应端口的ifDescr、ifType, 从而得到该端口所连子网的类型。

这样通过分析设备的MIB信息我们就可以获得网络中的子网信息和路由器信息, 以及它们之间的连接关系。同时通过路由表的ipRouteIfIndex, 可以得到转发该数据包所要投向的端口号, 再由接口表得到端口的类型就可以了解所在子网的类型, 从而构建出整个网络的拓扑关系图。

1.4 存在问题及解决方案

基于SNMP的拓扑发现主要用于反映网络的整体拓扑状况, 该方法发现过程和算法简单, 发现效率高, 系统和网络的开销小, 由于从路由表可以获得下一跳地址信息, 因此对于受到访问限制的网络, 还是可以发现第一级路由器, 得到相对比较完整的网络拓扑关系。但该方法存在以下不足: (1) 路由表中含有大量的冗余信息; (2) 虽然可以根据ipNetToMediaTable得到一些无路由功能的网络设备 (交换机、主机等) , 但是一个主机存入这个表中的记录会在20 min后自动删除, 所以其保存的信息不够完整, 而且不能确定它们间的连接关系; (3) 由于路由器可以连接多个子网, 具有多个接口, 不同的ipRouteNextHop 地址可能表示同一台路由器, 因此发现过程中会造成对同一路由器的多次搜索, 搜索结果中也会出现路由器重复。

本文针对如上问题的解决方案为: (1) 对路由表的各表项信息进行过滤, 只读搜索过程所需的信息, 避免信息冗余; (2) 对ipNetToMediaTable的信息进行多次读取, 并合并读取结果, 以获得尽可能完整的信息, 用STP协议判断无路由功能设备的连接关系, (3) 读取路由器的ipAddrTable以获得该路由器所有端口所对应的ip地址, 选取一个地址 (本文选取loopback地址) 唯一标识这个路由器, 其他所有地址均用这个地址替换, 这样就消除了发现过程及结果中的重复。

2 基于STP协议的链路层拓扑分析

2.1 STP简介[6]

IP网络主干由路由器-路由器、路由器-子网组成, 路由器将IP网分解为多个子网或逻辑网段。子网通常由交换机-交换机、交换机-主机构成, 由于子网内大量分布交换机, 同时在网络设计中, 为了保证网络的可靠性, 一般在网络中增加几条冗余备份线路, 这样在实际的网络拓扑图中会出现环, 为了解决它可能会打来的桥接循环和子网内广播风暴问题, 在交换机间运行STP协议来阻塞一些端口以使交换机间的闭合回路断开, 只有生成树上的交换机端口才能转发数据帧, 从而避免循环和广播风暴, 支持冗余拓扑[4]。

本文所讨论的交换机之间的连接关系都是指有效的链路连接, 不包含被阻塞的端口, 拓扑发现得到的端口之间的连接均是当前生成树的一个快照。

STP算法的基本思想是:交换机之间定期发送BPDU包, 交换生成树配置信息, 以便能够对网络的拓扑、花费或优先级的变化做出及时的响应, 而BPDU包的数据可以从BRIDGE-MIB库中得到, 因此同样可以分析SNMP的响应报来得到二层交换机的连接关系。

2.2 MIB信息

链路层设备连接关系的判断所用的MIB信息库为RFC1493所定义的BRIDGE-MIB, 其结构如图2所示。

2.3 基于STP的链路层分析

链路层拓扑发现的目标是发现子网内部的拓扑结构。数据链路层的通信以MAC地址为标志, BRIDGE-MIB中提供了交换机或网桥的端口转发MAC地址表, 并且提供了一个生成树协议信息表, 通过读取交换机设备上的这些信息, 可以准确的获取链路层拓扑结构。

dot1dStpPort:包含生成树协议信息的端口号;dot1dStpPortPriority:优先级;dot1dStpPortState:端口状态;dot1dStpPortEnable:端口的enabled/disabled状态;dot1dStpPortPathCost:路径费用;dot1dStpPortDesignated Root:根交换机;dot1dStpPortDesignatedCost:指定端口的路径花费;dot1dStpPortDesignatedBridge:指定交换机;dot1dStpPortDesignatedPort:指定端口;dot1dStpPortForwardTransitions:端口转换次数。

首先从Designated Root字段很容易地得到了生成树的根交换机, 同时, 对于每个交换机上的端口, 其指定交换机都能通过Designated Bridge字段获取。其次, Port字段表示了本交换机的根端口, 而Designated Port字段表示连接到指定交换机的指定端口[8,9]。

2.4 存在问题及解决方案

获取生成树信息构造交换机连接拓扑与通过获取分析交换机设备地址转发表信息构造连接拓扑相比, 所用时间短, 给网络造成的流量负担小, 并且算法简单容易实现。不足之处是要求网络中的交换机都支持生成树协议, 但是这在校园网络中通常是满足的。

由于链路层中的网络信息传递是以MAC地址为源地址和目的地址, 而一台交换机往往具有多个MAC地址, 所以在拓扑发现中需要用一个MAC地址来唯一标识一台交换机设备, 根据RFC 1493文档的建议, 在本文的拓扑发现中, 用交换机所有端口的MAC地址中最小的MAC地址来唯一标识这台交换机, 这个最小的MAC地址可以通过读取BRIDGE-MIB中的dot1dBaseBridgeAddress得到。

3 算法设计

单次搜索的流程图如图3所示。

搜索开始设置规避数据和种子节点。其中规避数据可以为没有权限搜索的ip段, 也可以为已经得到拓扑结构的ip段等, 搜索时将自动回避对规避数据的搜索, 从而节省拓扑搜索时间。

种子节点为拓扑搜索发起的点, 设置的数据包括必选和可选两部分。其中必选数据有发起搜索点ip, 搜索过程所需的community, retryTime, timeOut;可选的有要进行搜索的ip地址段, 搜索的最大深度, 搜索的最大广度等。

单次搜索结束后可以得到一个全新的网络拓扑结构, 此时可以选择将新的数据与以前搜索得到数据进行合并, 以得到尽可能完整的拓扑结构。

4 结束语

网络拓扑发现是网络管理中一个难点, 受限于网络的复杂性和网络协议的多样性, 做到对网络中所有设备完整准确地发现是非常困难的。

本文结合了网络二层和三层的搜索方法, 首先基于SNMP协议发现网络的逻辑层结构 (路由器及其连接关系) 及在线的二层设备 (包括交换机、主机等) , 其优点在于发现速度快, 但前提是被发现的网络设备需要支持SNMP协议。然后利用STP协议判定网络二层设备的连接关系。在实现方法上引入了数据规避、并行搜索、结果合并等机制。

实验证明, 本方法在搜索时间上占一定的优势, 并且经过多次搜索可以得到一张接近完整的网络拓扑结构图。

参考文献

[1]庄锁法, 龚俭.网络拓扑发现综述.计算机技术与发展, 2007; (10) :80—83, 91

[2] Case J, Fedor M, Schoffstall M, et al.RFC 1157-A simple networkmanagement protocol (SNMP) , http://www.faqs.org/rfcs/rfc1157.html, 1990—5

[3] McCloghrie K, Rose M.RFC 1213-Management Information Base forNetwork Management of TCP/IP-based internets:MIB-II, http://www.faqs.org/rfcs/rfc1213.html, 1991—3

[4] Mansfield G, Ouchi M, Jayanthi K.Techniques for automated networkmap generation using SNMP.IEEE INFOCOM, 1996; (2) :473—480

[5]曲朝阳, 胡绪超.基于SNMP的网络拓扑发现与拓扑生成树的绘制.网络安全技术与应用, 2007; (03) :23—24, 27

[6] Inst.Electr.&Electron.Eng, New York, 802.1DTM IEEE stand-ard for Local and metropolitan Area networks:media access control (MAC) bridges.IEEE-SA Standards Boards, 2004

[7] Decker E, Langille P, Rijsinghani A, et al.RFC 1493-Definitions ofManaged Objects for Bridges.http://www.faqs.org/rfcs/rfc1493.ht-ml, 1993—7

[8] Gobjuka H, Breitbart Y.Discovering network topology of large multi-subnet ethernet networks.IEEE INFOCOM, 2007:428—435

IPv6拓扑发现 篇3

关键词:简单网络管理协议(SNMP );网络拓扑自动发现算法

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30661-02

Study on Arithmetic on Finding Network's Topological Structure

YE Shun-fu

(Zhangzhou City Employment Center,Zhangzhou 363000,China)

Abstract:The original arithmetic is based on SNMP,which is fine in finding network's main topological structure, but not well in getting a full one of a subnet.So,a way based on ICMP is putted forward to solve this problem for achieving the full one.

Key words:SNMP(Simple Network Management System);Arithmetic on auto-finding network's topological structure

随着计算机网络的普及,人们对计算机网络的依赖性大大加强了。在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境。计算机网络管理系统就是应这样的需求而产生的。它对网络上的各种设备进行管理,通过监视和控制这些设备,及时地向管理人员报告网络状态,并且简化网络故障的处理,减少故障造成的损失,提高网络的服务质量和效率。在我国,人们开始认识到网络管理的重要性。

国外在网络管理这一领域起步较早,取得了一些成果。在学术界,IEEE通信学会下属的网络营运与管理专业委员会(CNOM , Committee of Network Operation and Management),从1988年起每两年举办一次网络营运与管理专题讨论会。国际信息联合会(1FIP)也从1989年开始每两年举办一届综合网络管理专题讨论会。以及OSI网络管理论坛(OSI/NM FORUM ),专门讨论网络管理的有关问题[1]。近年来,也有一些厂商和组织开始推出自己的网络管理解决方案[2]。比较有影响的有:网络管理论坛的OMNIPoint和开放软件基金会(OSF)的DME(Distributed Management Environment)[3]。本文详细介绍系统网络拓扑自动发现算法的实现。

1 拓扑发现算法的相关理论

1.1路由选择算法

网络拓扑的发现,实际上就是根据网络上节点连接情况,构造出来一个反应这种连接关系的图。网络节点可以是网关,也可以是子网:网关节点是与子网和其它网关节点相邻的节点;子网节点可被认为只与网关节点相邻,至少与它的缺省网关相邻。

各子网通过各目的网关与其他子网通信,这些子网可以是一个局域网,也可以是某个局域网的一部分,它们都连接到网关的一个端口上,网关的端口可以连接子网,也可以同其他路由器相连。当子网的某一机器发送数据时,数据包首先到达子网的缺省网关,缺省网关检测数据包中的目的地址,根据其路由确定该日的地址是否在与自己相连的子网中,如果是,则把数据包直接发往目的地,否则转发给路由表中规定的下一个网关。这样,下一个网关再进行类似处理,依次类推,数据包将最终到达目的地。

1.2图论中的遍历算法

遍历的定义是:对于无向图,以图中某一点为出发点,沿着边依次访问图的其余节点,如果图是连通的,则从图的任一点出发按一定的顺序沿着某些边可以访问图中的所有节点,而且每个节点仅被访问一次,这一过程称为图的遍历。

在网络上,一个节点可以和很多的节点连接,所以当进行网络拓扑结构发现的时候,有可能会访问己经被发现过的节点。因此,在遍历的时候,必须对每一个节点设置一个标志。当节点未被访问过时,相应的标志为0,否则,就置为1。

2 拓扑发现算法的设计与实现

2.1主拓扑的发现

主拓扑指的是反映出关键设备包括路由器,它们的接口和子网的连接关系,即路由器-路由器、路由器-子网、接口的关系。这些信息需要对网络进行搜索而获得:一般只需要对连接设备进行遍历就可以得到主拓扑结构。当前的网管软件都是通过对网络设备的MIB库进行访问,所以这种方法又被称为基于SNMP的拓扑发现。

2.2子网发现

经过上述的遍历过程,可以得到网络拓拓扑图的整体构成,知道了网络主干通道情况。但是子网内部的具体设备以及连接状态尚不可知。这就需要依靠子网发现来做进一步的工作。子网发现完成的任务是确定子网内各网络设备的状态、类型以及网络接口。

3 改进的拓扑算法

前面基于SNMP的拓扑算法在一定程度上是非常有效的,拓扑的速度也非常快。但它存在一个缺陷。那就是,在一个特定的域中,所有的子网的信息都依赖于设备具有SNMP的特性,如果系统不支持SNMP,则这种方法就无能为力了。还有对网络管理的不重视,或者考虑到安全方面的原因,人们往往把网络设备的SNMP功能关闭,这样就难于取得设备的MIB值,就出现了拓扑的不完整性,严重影响了网络管理系统的功能。针对这一的问题,下面讨论本文对上述算法的改进-基于ICMP协议的拓扑发现。

3.1 ICMP报文的格式

ICMP被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。网际协议CIP)没有出错报告或出错校正机制,它依靠网际控制报文协议〔ICMP)模块来报告数据处理过程,井提供管理和状态信息。ICMP报文在传送时被封装在IP数据报中,使用IP协议发送,但ICMP不看作是高层协议的内容。ICMP报文的格式如图1。

图1 ICMP报文的格式

类型区:定义报文类型;

代码区:描述错误类型或状态信息;

校验和区:计算ICMP报文16位校验和;

利用ICMP进行网络拓扑图的发现,需要利用其中的响应请求与应答报文。其报文格式如图2所示,回应请求/应答被用于测试信宿机的可到达性或连通性。请求者(某机器)向特定信宿机发送一个回应请求,其中包含一个任选的数据区;信宿机发回响应的回应应答,其中包含一个请求中的任选数据区的拷贝。图2所示的“标识符”和“序号”用于匹配请求与应答(同一机器可以同时向若干信宿机发出请求)。

图2 回应请求(类型8)/应答(类型0)报文格式

回应请求与应答均以IP数据报的形式在网间传输,假如成功地收到一个应答(应答中的数据拷贝与请求中的任选数据完全一致),不但说明信宿机可以到达,而且说明数据报传输系统的相应部分工作正常,至少信源机和信宿机的ICMP软件和IP软件工作正常,请求与应答经过中间网关也在正常工作。在许多TCP/IP实现中,用户命令Ping便是利用ICMP回应请求/应答报文测试信宿机的可到达性的。

3.2 PING的实现

PING的主要操作是发送报文,并简单地等待回答。PING之所以如此命名,是因为它是一个简单的回显协议,使用ICMP响应请求与响应应答报文。PING主要由系统程序员用于诊断和调试。一般的,PING的功能有:

LOOP BACK PING用于验证TCP/IP软件的操作。

PIN G地址确定能否寻址物理网络设备。

PING远程IP地址验证能否寻址网络。

PING远程主机名验证主机上某个服务器的操作。

实现PING的过程主要是:首先向目的机器发送一个响应请求的ICMP报文,然后等待目的机器的应答,直到超时。如收到应答报文,贝以报告目的机器运行正常,程序退出。

3.3 traceroute的实现

traceroute的实现与IP数据报文的报头有关。IP头的结构如下:

struct ip{

char ip_ verlen; //IP version&header length

char ip_ tos; //type of service

short ip_len; //total packet length(in octets)

short ip_ id;//datagram id

short ip_fragoff //fragment offset

char ip_t1;//time to live, in gateway hops

char ip_proto//IP protocol

short ip_chksum//header checksum

Ipaddr ip_src//IP address of source

Ipaddr ip_dst//IP address of destination

char ip_data//variable length data

}

在IP头的结构中,存在一个ip_ttl域,即生存时间(time to_ live,TTL ). TTL参数用于测量数据报在网际存在多长时间。网络中的每个路由器都检查该域,如果TTL值为0,路由器就抛弃该数据报。路由器还必须对它处理的每个数据报的该域进行减I操作。在实际执行中,TTL域是一个反映跳段的值。所以,当数据报穿过一个IP节点(网关)时,TTL域中的值就减1。

traceroute的功能就是利用IP头中的TTL域。开始时信源设置IP头的TTL值为0,发送报文给信宿,第一个网关收到此报文后,发现TTL值为0,它丢弃此报文,并发送一个类型为超时的ICMP报文给信源。信源接收到此报文后对它进行解析,这样就得到了路由中的第一个网关地址。然后信源发送TTL值为1的报文给信宿,第一个网关把它的TTL值减为0后转发给第二个网关,第二个网关发现报文TTL值为0,丢弃此报文并向信源发送超时ICMP报文。这样就得到了路由中和第二个网关地址。如此循环下去,直到报文正确到达信宿,这样就得到了通往信宿的路由。

3.4网络拓扑的发现算法

具体实现的步骤:

(1)于给定的IP区间,利用PING依次检测每个IP地址,将检测到的IP地址记录到IP地址表中。

(2)对第一步中查到的每个IP地址进行traceroute操作,记录到这些IP地址的路由。并把每条路由中的网关地址也加到IP表中。

(3)对IP地址表中的每个IP地址,通过发送掩码请求报文与接收掩码应答报文,找到这些IP地址的子网掩码。

(4)根据子网掩码,确定对应每个IP地址的子网地址,并确定各个子网的网络类型。把查到的各个子网加入地址表中。

(5)试图得到与IP地址表中每个IP地址对应的域名(Domain Name),如具有相同域名,则说明同一个网络设备具有多个IP地址,即具有多个网络接口。

(6)根据第二步中的路由与第四步中得到的子网,产生连接情况表。

4 结论

本文主要论述了网管系统中一个重要的功能网络拓扑的自动发现。阐述了相关的理论知识,并具体讨论了基于SNMP和基于ICMP的拓扑发现,最后对算法所适用范围加以说明。虽然这种方法能够较好的发现网络拓扑,但是它需要占用大量的带宽资源。

参考文献:

[1]Breibart Y,et al.Topology Discovery in Heterogeneous IP Networks[C].Tel Avivl Israel Proceeding of INFOCOM 2000.

[2]Clarke,Freenet A Distributed Anonymous Information Storage and Retrieval System [C].Workshop on Design Issues in Anonym ity and Unobservability, 2000 25-31.

[3]ICE Reference Manual[EB/OL].http //www.zeroc.com/download/Ice-21.2 pdf.2005.

IPv6拓扑发现 篇4

网络管理

◆那到底怎样去选择一款使用简单、高效的网管软件呢?它应该符合以下几点:

1、自动发现网络拓扑

在网络管理系统中,节点(计算机和网络设备)的自动发现作为一个最基本的功能之一具有其独特的作用。由于它所有需要的数据都是从网络上提取来的,而且作为一个网络,一定具有大量的计算机或网络设备,要寻找这么多的具有IP地址的设备,如果是人工来绘制网络拓扑需要很多的时间效率很低。因此自动发现和绘制网络拓扑十分必要。

2、管理型拓扑

当网络发展到今天,面对一张传统的拓扑图对于网络管理员来说是很难管理网络的,

传统的拓扑图就是显示设备连着设备,不能直观的反应这些设备是负责什么业务或者什么区域的。

通过管理型的拓扑我们能一目了然的知道这个设备是哪个区域的或者是支撑哪个业务的。这样当出现故障的时候,我们快速的定位到故障点或故障影响的范围。

3、拓扑与机房相关联

当出现故障的时候,我们耗费最多时间的并不是去解决故障而是定位故障点。比如:当我们OA出现故障时,我们首先定位是哪台服务器出现了问题,然后去找存放文档的这台服务器是在哪个机房的哪个机柜。这耗费了我们大量的时间。如果能把拓扑图和机房相关联,那么当设备出现故障时我们能马上看到是哪个机房的设备有问题。双击对应的机房,我们就能看到是具体哪个机柜的哪台机器出问题了。这样大大的加快了我们故障处理的时间。

4、幻灯片播放

◆当我们的网络比较大或者为了方便管理,我们会按照业务或者区域建立一些子拓扑。这时我们可以通过幻灯片功能,自动播放各个子拓扑,不需要手动切换。方便我们随时掌握设备的运行状态。

摩卡业务服务管理(Mocha BSM)的优势

上一篇:跟骨骨折手术治疗分析下一篇:胆总管阻塞