您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > OSPFv2与OSPFv3的区别
OSPFv2与OSPFv3的区别1概述OSPFv2是IETF组织开发的一个基于链路状态的内部网关协议,具有适应范围广、收敛迅速、无自环、便于层级化网络设计等特点,因此在IPv4网络中获得了广泛应用。随着IPv6网络的建设,同样需要动态路由协议为IPv6报文的转发提供准确有效的路由信息。基于此,IETF在保留了OSPFv2优点的基础上针对IPv6网络修改形成了OSPFv3。OSPFv3主要用于在IPv6网络中提供路由功能,是IPv6网络中路由技术的主流协议。2OSPFv3技术实现与OSPFv2相比,OSPFv3在工作机制上与OSPFv2基本相同;但为了支持IPv6地址格式,OSPFv3对OSPFv2做了一些改动。下面先对OSPFv2进行简要介绍,之后再详细介绍OSPFv3与OSPFv2的异同点。2.1OSPFv2简介2.1.1OSPF基本概念1.DR和BDR在广播网或NBMA网络中,OSPF协议定义了DR和BDR,BDR是对DR的一个备份,在选举DR的同时也选举出BDR。DR和BDR会和本网段内的所有DROther(既不是DR也不是BDR的路由器)建立邻接关系并交换路由信息,DROther之间不建立邻接关系、不交换路由信息,从而减少了广播网络和NBMA网络上各路由器之间邻接关系的数量,同时减少网络流量,节约了带宽资源。2.区域随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF路由协议时,会存在以下问题:路由器数量会增多,每台路由器都生成LSA,整个LSDB即所有LSA的集合会非常大,占用大量存储空间;计算最短路径树耗时增加,导致CPU负担很重;在网络规模增大之后,拓扑结构发生变化的概率也会增大,网络会经常处于“振荡”之中,造成网络中大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。OSPF协议通过将自治系统划分成不同的区域来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号ID来标识。为了适应特定的网络需求,OSPF定义了两种特殊的区域:(1)(Totally)Stub区域Stub区域是一些特定的区域,Stub区域的ABR不允许注入Type5LSA,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。为了进一步减少Stub区域中路由器的路由表规模以及路由信息传递的数量,可以将该区域配置为TotallyStub(完全Stub)区域,该区域的ABR不会将区域间的路由信息和外部路由信息传递到本区域。(Totally)Stub区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,(Totally)Stub区域位于自治系统的边界。(2)NSSA区域NSSA(Not-So-StubbyArea)区域是Stub区域的变形,与Stub区域有许多相似的地方。NSSA区域也不允许Type5LSA注入,但可以允许Type7LSA注入。Type7LSA由NSSA区域的ASBR产生,在NSSA区域内传播。当Type7LSA到达NSSA的ABR时,由ABR将Type7LSA转换成Type5LSA,传播到其他区域。3.OSPF网络类型OSPF根据链路层协议类型将网络分为下列四种类型:广播类型:当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是广播。在该类型的网络中,通常以组播形式(224.0.0.5和224.0.0.6)发送协议报文。NBMA类型:当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。P2MP类型:没有一种链路层协议会被缺省的认为是P2MP类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,缺省情况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需要,以单播形式发送协议报文。P2P类型:当链路层协议是PPP、HDLC时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。4.OSPF协议报文OSPF有五种类型的协议报文:Hello报文:周期性发送,用来发现和维持OSPF邻居关系。内容包括一些定时器的数值、DR(DesignatedRouter,指定路由器)、BDR(BackupDesignatedRouter,备份指定路由器)以及自己已知的邻居。DD报文:描述了本地LSDB中每一条LSA的摘要信息,用于两台路由器进行数据库同步。LSR报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSU报文:向对方发送其所需要的LSA。LSAck报文:用来对收到的LSA进行确认。内容是需要确认的LSA的Header(一个报文可对多个LSA进行确认)。2.1.2OSPF路由计算过程OSPF协议的路由计算过程可简单描述如下:每台OSPF路由器根据自己周围的网络拓扑结构生成LSA,并通过更新报文将LSA发送给网络中的其它OSPF路由器。每台OSPF路由器都会收集其它路由器通告的LSA,所有的LSA放在一起便组成了LSDB。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。OSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映,各个路由器得到的有向图是完全相同的。每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。2.2OSPFv3与OSPFv2的相同点OSPFv3在协议设计思路和工作机制与OSPFv2基本一致:报文类型相同:包含Hello、DD、LSR、LSU、LSAck五种类型的报文。区域划分相同。LSA泛洪和同步机制相同:为了保证LSDB内容的正确性,需要保证LSA的可靠泛洪和同步。路由计算方法相同:采用最短路径优先算法计算路由。网络类型相同:支持广播、NBMA、P2MP和P2P四种网络类型。邻居发现和邻接关系形成机制相同:OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定,只有当双方成功交换DD报文,交换LSA并达到LSDB的同步之后,才形成真正意义上的邻接关系。DR选举机制相同:在NBMA和广播网络中需要选举DR和BDR。2.3OSPFv3与OSPFv2的不同点为了支持在IPv6环境中运行,指导IPv6报文的转发,OSPFv3对OSPFv2做出了一些必要的改进,使得OSPFv3可以独立于网络层协议,而且只要稍加扩展,就可以适应各种协议,为未来可能的扩展预留了充分的可能。OSPFv3与OSPFv2不同主要表现在:基于链路的运行使用链路本地地址链路支持多实例复用通过RouterID唯一标识邻居认证的变化Stub区域的支持报文的不同Option字段的不同LSA的异同2.3.1基于链路的运行OSPFv2是基于网络运行的,两个路由器要形成邻居关系必须在同一个网段。OSPFv3的实现是基于链路,一个链路可以划分为多个子网,节点即使不在同一个子网内,只要在同一链路上就可以直接通话。2.3.2使用链路本地地址OSPFv3的路由器使用链路本地地址作为发送报文的源地址。一个路由器可以学习到这个链路上相连的所有其它路由器的链路本地地址,并使用这些链路本地地址作为下一跳来转发报文。但是在虚连接上,必须使用全球范围地址或者站点本地地址作为OSPFv3协议报文的源地址。由于链路本地地址只在本链路上有意义且只能在本链路上泛洪,因此链路本地地址只能出现在LinkLSA中。2.3.3链路支持多实例复用OSPFv3支持在同一链路上运行多个实例,实现链路复用并节约成本,如图1所示。图1链路支持多实例复用示意图RouterA、RouterB、RouterC和RouterD连接到同一个广播网上,它们共享同一条链路且都能建立邻居关系,通过在RouterA的Eth1/1、RouterB的Eth1/1、RouterC的Eth1/2上指定实例1、在RouterA的Eth1/1、RouterB的Eth1/1、RouterD的Eth1/3上指定实例2,实现了RouterA、RouterB和RouterC可以建立邻居关系,RouterA、RouterB和RouterD可以建立邻居关系。这是通过在OSPFv3报文头中添加InstanceID字段来实现的。如果接口配置的InstanceID与接收的OSPFv3报文的InstanceID不匹配,则丢弃该报文,从而无法建立起邻居关系。2.3.4通过RouterID唯一标识邻居在OSPFv2中,当网络类型为点到点或者通过虚连接与邻居相连时,通过RouterID来标识邻居路由器,当网络类型为广播或NBMA时,通过邻居接口的IP地址来标识邻居路由器。OSPFv3取消了这种复杂性,无论对于何种网络类型,都是通过RouterID来唯一标识邻居。2.3.5认证的变化OSPFv3协议自身不再提供认证功能,而是通过使用IPv6提供的安全机制来保证自身报文的合法性。所以,OSPFv2报文中的认证字段,在OSPFv3报文头中被取消。2.3.6Stub区域的支持由于OSPFv3支持对未知类型LSA的泛洪,为防止大量未知类型LSA泛洪进入Stub区域,对于向Stub区泛洪的未知类型LSA进行了明确规定,只有当未知类型LSA的泛洪范围是区域或链路而且U比特没有置位时,未知类型LSA才可以向Stub区域泛洪。2.3.7报文的不同OSPFv3报文封装在IPv6报文中,每一种类型的报文都是以一个16字节的报文头部开始。与OSPFv2一样,OSPFv3的五种报文都有同样的报文头,只是报文中的字段有些不同。OSPFv3的LSU和LSAck报文与OSPFv2相比没有什么变化,但OSPFv3的报文头、Hello、DD以及LSR报文中的字段与OSPFv2略有不同,报文的改变包括以下几点:版本号从2升级到3。报文头的不同:与OSPFv2报文头相比,OSPFv3报文头长度只有16字节,去掉了认证字段但加了InstanceID字段。InstanceID字段用来支持在同一条链路上运行多个实例,且只在链路本地范围内有效,如果路由器接收到的Hello报文的InstanceID与当前接口配置的InstanceID不同,将无法建立邻居关系。Hello报文的不同:与OSPFv2Hello报文相比,OSPFv3Hello报文去掉了网络掩码字段,增加了InterfaceID字,用来标识发送该Hello报文的接口ID。2.3.8Option字段不同在OSPFv2中,Option字段出现在每一个Hello报文、DD报文以及每一个LSA中。在OSPFv3中,Option字段只在Hello报文、DD报文、RouterLSA、NetworkLSA、InterAreaRouterLSA以及LinkLSA中出现。OSPFv2的Option字段如下所示:图2OSPFv2Option字段格式OSPFv3的Option字段如下所示:图3OSPFv3Option字段格式从上图可以看出,与OSPFv2相比,OSPFv3的Option字段增加了R比特、V比特。其中:R比特:用来标识设备是否是具备转发能力的路由器。如果R比特置0,宣告该节点的路由信息将不会参加路由计算,如果当前设备是一个不想转发非本地地址的报文,可以将R比特置0。V比特:如果V比特置0,该路由器或链路也不会参加路由计算。2.3.9LSA类型不同1.OSPFv3LSA的类型OSPFv3有以下七种类型的LSA,下面针对与OSPFv2LSA异同点进行说明。表
本文标题:OSPFv2与OSPFv3的区别
链接地址:https://www.777doc.com/doc-2848138 .html