IPv6网络拓扑技术
IPv6网络拓扑技术(精选5篇)
IPv6网络拓扑技术 第1篇
关键词:IPv4,IPv6,网络拓扑
1、IPv6协议网络拓扑结构概述
伴随着IPv6协议的诞生, 一些新的理念和新的观点被引入到了计算机网络中。主要有下面几个新的特点:首先, 它具有多达2128个地址, 极大满足了地址空间不断扩大的需要。其次, IPv6协议还具有高效的IP包头、服务质量、主机地址自动配置、认证和加密等许多技术。正是由于新的网络协议中地址结构等方面的变化, 造成了原本在IPv4协议中的拓扑发现技术必须经过一定的修改才能在IPv6网络中使用。但是由于骨干网拓扑发现方法的基本原理与地址协议的关系并不十分密切, 因此在IPv6协议中, 仍然可以使用Traceroute6工具获取网络拓扑信息。此外, IPv6作为IPv4的升级产物, 在今天的Internet海洋中支持IPv6的设备和站点仍是以一个个孤岛的形式存在的。因此, 对于双栈路由器的探测就显得尤为重要, 它不仅是连接IPv4和IPv6网络的“纽带”, 而且还是研究隧道发现技术的基础, 只有确定了路由器是配置了双栈协议, 才有必要对路由器是否连接了隧道展开研究。隧道机制是解决IPv4网络中传送IPv6数据包的重要解决途径。目前, 主要使用的隧道方式有6to4隧道和6over4隧道。
2、IPv6特性
拓扑发现中对路由器地址的发现是形成拓扑信息的重要基础。IPv6提供2128位的地址空间, 不仅从根本上解决了IP地址空间匮乏的问题, 而且128位的地址长度也更能适应芯片和CPU处理方式。但同时, 地址的类型和层次也变得更为复杂。IPv6中的变化主要体现在以下五个方面:扩展地址。IPv6的地址结构中除了把32位地址空间扩展到128位外, 还取消了广播地址而代之以任意播地址。简化头格式。与IPv4的报头相比, IPv6报头要简洁的多。其中, 去掉IP头校验和不会影响可靠性, 这主要是因为报头校验和将由更高层协议 (UDP和TCP) 负责。
3、增强对于扩展和选项的支持
与IPv4中可以在IP头的尾部加入选项不同, IPv6中把选项加在单独的扩展头中。在IPv6报头中用“下一报头”指明报头后面跟的报头类型, 它可以是扩展报头, 也可以是TCP/UDP报头。如果是扩展报头, 在扩展报头中再指明下一个报头的类型, 组成报头/扩展头链。
4、流标签
只用源地址、目的地址和流标签3个要素来决定数据报的流分类, 这样流分类方式更高效, 减少了路由器的处理时间。在IPv6规范中对流做如下定义:流是指从一个特定源发向一个特定 (单播或者是组播) 目的地的包序列, 源点希望中间路由器对这些包进行特殊处理。
5、身份验证和保密
IPv6使用了两种安全性扩展:IP身份验证头 (AH) 和IP封装安全性净荷 (ESP) 。IPv6地址类型;IPv6地址有三种类型:单播、任意播和多播。广播地址已不再有效。RFC2373中定义了三种IPv6地址类型: (1) 单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上。 (2) 任意播:一组接口 (一般属于不同节点) 的标识符。送往一个泛播地址的包将被传送至该地址接口之一 (根据选路协议对于距离的计算方法选择“最近”的一个) 。 (3) 多播:一组接口 (一般属于不同节点) 的标识符。送往一个组播地址的包将被传送至该地址标识的所有接口上。
6、常用的IPv6地址
单播地址:一个单播地址只能标识一个唯一的接口。也就是说, 如果存在一个单播地址, 那么向这个单播地址发送的数据报将最终到达唯一的一个节点。IPv6单播地址可以像CIDR的IPv4地址一样, 根据前缀进行聚合。单播地址有以下几种形式:全球单播地址 (Global Unicast Address) 、未指定地址 (Unspecified Address) 、环回地址 (Loopback Address) 、嵌入IPv4地址的IPv6地址、本地链路地址等。
嵌有IPv4地址的IPv6地址:现阶段, IPv4与IPv6需要共存, 那么, IPv6的传输机制包含一项可以在IPv4网络上传输IPv6数据报的技术, 这些路由器既支持IPv4, 也支持IPv6。要使用这项技术, 就要给IPv6节点分配一个嵌入IPv4地址的IPv6地址, 称为IPv4兼容地址。该地址前80位都是0, 第81~96位是0000, 最低32位是IPv4地址。
未指定地址与环回地址:未指定地址被定义为0:0:0:0:0:0:0:0 (也可以记做::) 。该地址不能分配给任何节点接口。在初始状态、即还未分配地址时, 可以使用未指定地址, 作为它所发数据报的源地址。环回地址被定义为0:0:0:0:0:0:0:1 (也可以记做::1) 。环回地址就相当于接口本身。当接口向环回地址发送数据报时, 只有该接口自己能收到。
本地链路地址:单播地址在本地使用时, 可以用作本地链路地址 (Link-Local Address) 。本地链路地址前10位是1111111010, 中间54位全是0, 最后64位是接口标识。所以本地链路地址是以fe80开头。
多播地址:一个多播地址用来标识多个接口, 而这些接口通常属于不同节点[3]。如果向一个多播地址发送数据报, 那么包含在该多播地址中的所有接口 (节点) 都能收到该数据报。多播地址以111111111开头, 即FF。例如:ff12::b880:60d4:18b4:af6b表示的就是一个多播地址。
7、结语
网络拓扑结构 第2篇
1.星型拓扑结构
星型结构是最古老的一种连接方式,大家每天都使用的电话都属于这种结构,如下图所示。其中,图(a)为电话网的星型结构,图(b)为目前使用最普遍的以太网(Ethernet)星型结构,处于中心位置的网络设备称为集线器,英文名为Hub。
(a)电话网的星行结构(b)以Hub为中心的结构
这种结构便于集中控制,因为端用户之间的通信必须经过中心站。由于这一特点,也带来了易于维护和安全等优点。端用户设备因为故障而停机时也不会影响其它端用户间的通信但这种结构非常不利的一点是,中心系统必须具有极高的可靠性,因为中心系统一旦损坏,整个系统便趋于瘫痪。对此中心系统通常采用双机热备份,以提高系统的可靠性。
这种网络拓扑结构的一种扩充便是星行树,如下图所示。每个Hub与端用户的连接仍为星型,Hub的级连而形成树。然而,应当指出,Hub级连的个数是有限制的,并随厂商的不同而有变化。
还应指出,以Hub构成的网络结构,虽然呈星型布局,但它使用的访问媒体的机制却仍是共享媒体的总线方式。
2.环型网络拓扑结构
环型结构在LAN中使用较多。这种结构中的传输媒体从一个端用户到另一个端用户,直到将所有端用户连成环型,如图5所示。这种结构显而易见消除了端用户通信时对中心系统的依赖性。
环行结构的特点是,每个端用户都与两个相临的端用户相连,因而存在着点到点链路,但总是以单向方式操作。于是,便有上游端用户和下游端用户之称。例如图5中,用户N是用户N+1的上游端用户,N+1是N的下游端用户。如果N+1端需将数据发送到N端,则几乎要绕环一周才能到达N端。
环上传输的任何报文都必须穿过所有端点,因此,如果环的某一点断开,环上所有端间的通信便会终止。为克服这种网络拓扑结构的脆弱,每个端点除与一个环相连外,还连接到备用环上,当主环故障时,自动转到备用环上。
3.总线拓扑结构
总线结构是使用同一媒体或电缆连接所有端用户的一种方式,也就是说,连接端用户的物理媒体由所有设备共享,如下图所示。使用这种结构必须解决的一个问题是确保端用户使用媒体发送数据时不能出现冲突。在点到点链路配置时,这是相当简单的。如果这条链路是半双工操作,只需使用很简单的机制便可保证两个端用户轮流工作。在一点到多点方式中,对线路的访问依靠控制端的探询来确定。然而,在LAN环境下,由于所有数据站都是平等的,不能采取上述机制。对此,研究了一种在总线共享型网络使用的媒体访问方法:带有碰撞检测的载波侦听多路访问,英文缩写成CSMA/CD。
IPv6网络拓扑技术 第3篇
目前,网络规模的迅速扩大,基于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网络拓扑技术 第4篇
在网络管理功能中,拥有一个精确和完整的网络拓扑结构是非常重要的,如性能优化,配置控制和故障监控等。拓扑图可以描述TCP/IP协议的每一个层,同时能有效协助网络管理员更好地管理网络。
有许多IPv4网络下拓扑发现方法,如报告[2,3]。此外,还有关于IPv6-only的一些建议,如报告[4,5]。大部分这些拓扑发现算法都是基于ICMP和SNMP。然而这些已经众所周知的方法还是不足以管理IPv6和IPv4共存的网络。为展示两个IP版本一起的拓扑结构,要首先探测重合的部分,即下文中转换方式部署的节点。
在本文中,提出IPv4与IPv6共存网络的拓扑发现算法。在网络层和数据链路层同时采取SNMP和ICMP技术。通过ip6routetable或iproutetable的SNMP获得的动态管理信息用来构建网络层拓扑图,通过attable和dot1dtpfdbtable获取的信息用来构建数据链路层拓扑图。使用多播IPv6逆邻居发现报文及广播IPv4 RARP报文收集所有的IP地址。经过分析所有IP地址的格式,IP地址重叠的主机就找了出来,同时可以得出所有MAC地址和其相对应的全部IP地址。从而就彻底呈现一个完整的混合网络拓扑结构。
2 SNMP MIB和ICMP
SNMP MIBs和ICMP报文中的信息是拓扑发现两个最常用的资源。SNMP的MIBs提供网络管理信息,ICMP可有效地用于发现网络中任意路径的主机状态。
2.1 MIB-II,IPv6 MIB,和Bridge MIB
SNMP的MIB的是一个存放管理对象信息的仓库。MIB-II,IPv6 MIB,和Bridge MIB管理组在发现算法中都有使用到。用到MIB-II中三个重要的表:sysservices,attable,iproutetable。system组中的sysservices是用来通过管理节点确定服务支持。at组的attable包含当前活动的IPv4节点和他们相应的MAC地址。IP组的iproutetable是发现网络层拓扑的关键所在。具体来说,iproutenexthop值是路径上下一个路由器的目的地,可通过iproutedest和iproutemask来确定。
类似于MIB-II,生成IPv6网络层拓扑需要IPv6 MIB。ip6routedest,ipv6routepfxlength,ip6nexthop在ip6routetable的作用类似于iproutedest,iproutemask,iproutenexthop在iproutetable中对应的作用。此外,管理器可以从ipv6nettomediatable中得出IPv6地址和MAC地址之间的映射。
子网中的交换机和网桥其工作方式是基于设备的物理地址进行的,对于三层拓扑发现是透明的,所以处于数据链路层的网络设备的发现原理是依据地址转发表来收集拓扑信息的。Bridge MIB记录链路层的管理信息。在dot1dtpfdbtable表中,Dot1dTpFdb Address表示物理地址,dot1dTpFdbPort表示源数据帧主机通信的端口,dot1dTpFdbStatus表式端口状态,这些都是数据链路拓扑发现的重要部分。
2.2 Internet控制消息协议(ICMP)
相对于SNMP MIB对管理信息的作用,ICMP则便于找出当前网络主机的状态。icmpv4一般用来检测IPv4的主机的活动与否。事实上,所有当前活动的主机会在接到来自一个主机发出的icmpv4响应请求后,都会发出对应的icmpv4响应应答消息。在IPv6中,icmpv6响应请求和响应应答报文类似于icmpv4中的。唯一不同的是,广播在IPv6是不允许的。取而代之的是在整个管理域中使用多播icmpv6报文。具体来说,向被管理的主机发送逆邻居发现报文,无论该地址是否属于管理范围,所有获得这个报文的活动主机都会回应IPv6地址。通过对icmpv4和icmpv6的使用,就可收集所有相关的IP地址。
3 网络拓扑发现的算法
在下文中,将设计包括Ipv6网络层,Ipv4网络层,链路层,以及混合网络转换方式在内的4种算法来进行各个方面网络拓扑发现。
3.1 Ipv6网络层拓扑发现
IPv6网络层拓扑发现的方法类似于树状结构的广度优先搜索,通过检查所有路径的路由表来发现所有能到达的路由器。首先,把算法执行主机的第一个网关作为一个出发点,通过检查ip6RouteTable来发现所有邻近路由器,然后,在新发现的路由器重复上述过程,直到没有发现新的路由器。执行期间,该算法维持一个名为IP6_TOPO的链表,来存储可到达的路由器信息以及其邻近路由器的信息。图1说明了IP6_TOPO的数据结构,从一个已知的路由器开始,他全部的邻接路由器通过adj指针连接,所有检测到的路由器通过router指针一个接一个地添加。也就是说,IP6_TOPO每一行记录头部路由器相连接的所有邻近路由器,并且每行的头部存储路由器的IP地址。INSERT-ROUTER和INSERT-ADJ,用于增加新发现路由器。该算法的主体如下所示:
在这个算法中,LIST_ROUTER保存所有探测到的路由器,QUEUE_IP6_AD-DR是一个发现的路由器队列。在第4行中,所有网关的IPv6地址都插入到QUEUE_IP6_ADDR,它存储所发现路由器的IPv6地址。5到12行循环处理从QUEUE_IP6_ADDR中提取的一个路由器所有邻接的路由器。探测到所有可达路由器后循环将停止。6-8行是从QUEUE_IP6_ADDR提取路由器信息,并存储这个路由器的IPv6地址到IP6_TOPO和LIST_ROUTER。9-12行是处理所有邻接路由器的一个循环。一旦算法完成后,IP6_TOPO包含IPv6网络拓扑结构必要的信息。
3.2 Ipv4网络层拓扑发现
类似于IP6_TOPO,IP4_TOPO保存发现了的IPv4路由器所有必要的数据。两个数据结构也类似,IP4_TOPO和IP6_TOPO之间的差异在目标MIB的使用方式不同。在算法中除了将IP6_ADDR更换为IP4_ADDR,唯一的变化在第9行中使用ipRouteTable,而不是ip6RouteTable。采用此算法,可以得到IP4_TOPO结构,从而建造IPv4的网络层拓扑。
3.3链路层拓扑发现
链路层拓扑发现的算法可分为两部分:每个交换机直接相连主机的探测,和交换机之间的连接结构。为了发现所有邻接的主机,我们首先计算dot1dTpFdbTable中dot1dTpFdbPort的每个独特值得发生出现次数。dot1dTpFdbPort的每个值对应设备的一个物理端口。如果一个值在dot1dTpFdbPort列中仅出现一次,那么仅有一台主机连接到相应的端口。否则,就有多重IP的主机通过一个或多个交换机连接到这个端口。算法的第一部分说明了每个交换机连接的所有交换机和所有主机。通常我们把一个以太网IP网络视为一个有着根,节点和连接边的树,对应于网关,主机以及对应的内部连接。我们采取了一个自上而下的方法来建立交换机之间的连接关系。从一个位于叶子节点的指定交换机开始,dot1dTpFdbTable表的dot1dTpFdbAddress列包含主机的MAC地址,而不是交换机的,我们向上查找它上层的交换机,或者称为父交换机。直到根交换机被删除才执行结束,从而就发现了交换机间的连接。
在算法的执行过程中,涉及到LINK_TOPO和SWITCH_TOPO两个数据结构,LINK_TOPO保存所有交换机直接连接的主机,SWITCH_TOPO则记录所有交换机之间的连接状态。图2说明了LINK_TOPO的数据结构,SWITCH_TOPO的结构类似于LINK_TOPO,除了将att替换为lnk,LINK_TOPO每一行的头存储一个已经发现交换机的MAC地址。所有直接相连的主机通过at指针来连接,被检测的交换机则由switch指针连接。在SWITCH_TOPO中,只记录交换机的MAC地址。INSERT-SWITCH,INSERT-ATTACH,和INSERT-LEAF这三个函数分别用于插入一个新的交换机(在LINK_TOPO和SWITCH_TOPO中),一个直接相连的主机(在LINK_TOPO中),和一个孩子交换机(在SWITCH_TOPO中)。
LINK-TOPO在链路层拓扑结构的应用算法可以描述如下:
在此算法中,QUEUE1_SWITCH和QUEUE2_SWITCH是进行处理的迭代交换机队列,LIST_SWITCH包含所有已经发现的交换机。网关的MAC地址一旦插入到QUEUE1_SWITCH和QUEUE2_SWITCH,则9到19行的while循环用来检测每一个交换机所有的直接连接主机。dot1dTpFdbTable的dot1dTpFdbPort同样值的数量反应了连接这一端口的主机数量,如果该值是独一无二的,它表明只有一台主机连接到端口。检测完所有发现交换机后循环停止,主机和交换机的连接信息保存在LINK_TOPO。处于20到28行的while循环是用来建立所有交换机之间的连接。22到24行是如果交换机是树上的叶子节点就删除交换机。25到27行处理所有交换机叶节点。如果交换机的状态仍然未知,它将被再次插入到QUEUE2_SWITCH。这个循环当所有交换机被访问时结束,从而连接状态储存在SWITCH_TOPO中。结合LINK_TOPO和SWITCH_TOPO两个数据结构,就可以提出一个链路层拓扑。
3.4 转换方式发现
为了结合IPv6与IPv4网络层拓扑图,应该首先发现双重地址主机或路由器。因此,一个检测IPv6转换方式的算法是必要的。通过多播IPv6的逆邻居发现报文和广播IPv4的RARP报文,分析应答消息可以获得所有与MAC地址对应的IP地址。通过分析收集到的所有IP地址的格式,就可以建立MAC地址和其相关IP地址的对应关系。执行期间,该算法有个名为MAC_IP的连接链表,用于储存所有IP地址相应的MAC地址。图3说明了MAC_IP的数据结构,每行的头节点存储了一个处理范围内的MAC地址。如图3所示,所有与此MAC相关的IP地址都通过IP指针连接,而所有MAC地址通过每个节点的mac指针连接,INSERT-MAC和IN-SERT-IP函数是分别用来增加的一个新的MAC地址和IP地址。
TRANS_DET算法,使用MAC_IP结构,以确定使用哪个转换机制,如下:
首先,MAC_IP数据结构和QUEUE_MAC队列中在TRANS-DET算法里初始化。QUEUE_MAC维持所有从最初网关中atTable获得的MAC地址。唯一的while循环检查所有存储在QUEUE_MAC队列的MAC地址。第7行将MAC插入到MAC_IP中,8到9行发送IPv6逆邻居请求消息和IPv4的RARP请求消息。检测应答消息,获得所有后来插入到MAC_IP的IP地址。通过分析主机的IP地址,来建立MAC地址和IP地址的转换方式。因此,无论路由器或主机,IPv6与IPv4网络的重叠部分都将被发现。从而,就可以得出IPv6与IPv4网络的拓扑共存图。
4 小结
本文主要论述了网管系统中一个重要部分:网络拓扑发现的算法研究。提出IPv6-only和IPv4-only的网络层拓扑发现算法,一个数据链路层拓扑发现算法以及一个在共存的网络中的转换探测算法。网络层拓扑构造使用ip6routetable和iproutetable中的路由信息,而数据链路层采用atTable和dot1dtpfdbtable中数据来创建。转换探测通过收集和分析两个IP版本整个IP地址来实施,在其中通过使用逆ipv6多播邻居发现报文和ipv4 RARP的广播报文。来找出在共存网络部署哪种转换方式。因此,路由器和主机的重叠可以判定来完成IP网络拓扑发现。
摘要:对于网络性能优化,配置控制和故障监控等来说有一个准确的网络拓扑结构是至关重要的。文中提出两个网络层拓扑发现算法分别对应于IPv6-only和IPv4-only网络,一个数据链路层拓扑发现算法以及一个在共存的网络中的转换探测算法来进行各方面的网络拓扑发现。
关键词:拓扑发现,IPv6,SNMP,转换方式
参考文献
[1]汪浩,张尧弼,马月玲.以太网物理拓扑发现算法[J].微型电脑应用,2007,23(5).
[2]Spring N,Mahajan R,Wetherall D,et al.Measuring ISP topologies Rocketfuel[J].IEEE/ACM Transactions on Networking,2004,12(1):2-16.
[3]Breitbart Y,Garofalakis M,Jai B,et al.Topology discovery in heterogeneous IP networks:the NetInventory system[J].IEEE/ACM Transac-tions on Networking,2004,12(3):401-414.
[4]Astic I,FestorO.A hierarchical topology discovery service for IPv6networks[J].Network Operations and Management Symposium,2002:497-510.
[5]IPv6Network Topology Discovery System-Dolphin[EB/OL].http://www.nlsde.buaa.edu.cn/ipv6/210.25.133.26/default.php.
[6]王志刚,王汝传,王绍棣,等.网络拓扑发现算法的研究[J].通信学报,2004,25(8):36-43.
[7]熊坤,寇晓蕤,范元书,等.网络拓扑发现算法定性分析[J].计算机工程与应用,2004(14):136-137.
网络拓扑发现技术分析 第5篇
1 网络拓扑在网络管理中的地位
目前,关于网络管理的定义很多,国际标准化组织(ISO)在ISO/IEC7498-4中定义并描述了开放系统互连参考模型(OSI/RM)管理的术语和概念,提出了一个OSI管理的结构并描述了OSI管理应有的行为。它认为网络管理系统需要有以下内容:系统的功能、网络资源的表示、网络管理信息的表示、系统的结构。所以网络管理的五大功能分别是配置管理、故障管理、性能管理、安全管理和计费管理。这五大功能包括了保证一个网络系统正常运行的基本功能。其中网络拓扑的发现就是其中之一。
网络拓扑的自动发现是实现网络拓扑图形显示的技术关键,而路径搜索是故障定位的重要内容。拓扑发现作为配置管理和故障管理中的一项重要功能,是网络管理的一个重要组成部分。本文是分析了网络拓扑自动发现的几种方法。网络拓扑图是拓扑结构的可视化表现形式,拓扑发现生成的网络拓扑可以帮助网络管理员掌握网络拓扑结构,迅速定位故障地点,确定故障影响的范围。随着Internet的出现,基于Web的网络管理成为网络管理的一种新的趋势,它使网络管理不再需要地理位置、具体平台和专业技能等要求,从而给网络管理带来许多方便。
2 网络拓扑发现技术分析
2.1 基于SNMP路由表的拓扑发现技术
当前最有效的拓扑发现方式应该是利用SNMP。该技术要求所有网络设备必须支持SNMP协议,具有SNMP的代理,利用SNMP里定义的MIB库中路由表的信息进行拓扑发现。由于路由表中的下一跳地址,必然是具有路由功能的网络结点,因此从管理工作站的缺省路由器开始,通过读取路由器的路由表,可逐步向下发现网络中的所有具有路由功能的网络结点。
SNMP的一个突出优点是当网络发生变化时MIB中的信息将会随之变化,并且信息获取的整个过程相当快,从而也提高了拓扑发现的速度。使用SNMP进行拓扑发现的主要问题在于并不是每一个网络设备都提供SNMP服务,即便提供了SNMP服务,MIB中也可能没有保存足够多的有用信息。另外一个问题是关于MIB值的解释问题,虽然关于设备的一些基本信息在MIB中都进行了标准化的定义,但是许多生产商为了更好的描述它们自己产品的功能,在MIB中添加私有信息,为了能更好的利用这些新的信息,我们必须能够在拓扑发现的实现中将这些内容及时加入。
2.2 基于ICMP Ping的拓扑发现技术
Ping是IP网络中使用最早和最广泛的工具之一,它主要是利用ICMP echo reply消息来检测主机是否可达,同时也可以通过计算往返延迟推断节点据我们有“多远”。我们这里所指的节点通常是主机或路由器。由于使用较小的分组,Ping的开销较小。我们可以Ping每一个可能的IP地址以判断它们是否对应可达的网络节点。当向一个可达节点发出Ping报文时,通常会很快得到响应(几十微秒),但当向一个不可达的节点发山Ping报文时,将在设定的间隔后超时,这个间隔通常是2秒,因此在这种情况下,使用Ping是相当低效的,尤其当出于拓扑发现的目的向大量待定的IP地址发出Ping报文时效率更低。一个简单的解决方案是减少超时间隔,但此时需要注意应确保间隔不要低于正常网络延时。
2.3 基于OSPF的拓扑发现技术
OSPF中链路状态数据库存放的信息可以用来计算网络路由,计算过程是从不同的链路状态记录中概括出一个代表网络的节点图。节点图中内部节点是OSPF路由器和中转网络,外围节点是末梢网络、汇总网络以及外部目的站点,连接的弧线是具有不同度量制式的各种链路。因此,网络管理维护系统也可以访问自治系统每个区域中某一个路由器存有的相关的OSPF路由表信息,就可以构造出整个自治系统的网络拓扑图。
实际运行的企业网管系统一般不会超出自治系统的范围,因此基于OSPF构造网管系统有较大的适用性,该技术的效率和速度也比较高。但此技术不能发现那些不支持OSPF协议的网络连接和设备。另外,OSPF中涉及的路由部分比较复杂,算法上的理解和实现都有一定的困难。
3 网络拓扑发现技术的评价方法
3.1 速度
可用算法执行所花费的时间来衡量。算法执行的时间分为两部分:采集信息生成拓扑结构的时间;将生成的表示拓扑关系的数据结构以图形化的形式显示出来的时间。
3.2 负载
因为一个算法中对网络造成的负载可能由多个部分引起,如在基于SNMP的算法中,给网络引入的负载包括获得拓扑信息的SNMP数据包和为判断一个地址是否有效所引入的ICMP报文。
3.3 完整性
可用算法发现的网络设备数量占实际网络中设备数量的百分比表示。也就是说一个网络中可以发现的网络设备数量和不能发现的网络设备数量之比这个数值越大越好。
3.4 准确性
可用算法面对多个可选的拓扑结构的可能性来表示。对算法要进行优化,不能对产生的拓扑结构有二义性,这是下一步所要做的工作。
3.5 成本
这里不尽是设备成本,也包括人员成本、效率成本。如果一个拓扑发现技术虽然可以很好的发现网络的拓扑情况,但从人员、设备上考虑成本昂贵那也不是最优的选择。
4 结语
IPv6网络拓扑技术
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


