当前位置: 首页>前端>正文

ospf3和ospf2可以兼容吗 ospf与ospfv3的区别

文/乔肖桉

在网络部署中,动态路由协议是重要的组成部分,良好的路由设计,是保证网络可靠、稳定运行的基础。为了适应IPv6协议栈的变化,OSPFv3协议在保留OSPFv2优点的基础上进行了更新,增强了OSPF协议的功能,提高了可扩展性。本文描述了OSPFv3协议相比OSPFv2的变化,以及在部署时需要考虑的一些因素。

OSPFv3与OSPFv2协议的比较

OSPF是一种链路状态路由协议。它具有标准开放、收敛迅速、无环路、便于层级化设计等众多优点。IPv4网络中广泛使用的OSPFv2协议由于在报文内容、运行机制等方面与IPv4地址联系得过于紧密,大大制约了它的可扩展性和适应性。在IPv6环境中,为了使OSPF更好的应用,同时保留原有的众多优点,因此,在OSPFv2的基础上作了多方面的修改后产生了OSPFv3协议。

OSPFv3相比OSPFv2作出的改进可以分为几个方面来描述。

1. OSPFv3独立于网络协议

1) OSPFv3基于链路运行

OSPFv2协议是基于子网运行的,邻居之间形成邻接关系的必要条件之一就是两端的IP地址属于同一网段而且掩码相同。而OSPFv3协议基于链路运行,与具体的IPv6地址、前缀分离开,即使同一链路上的不同节点具有不同网段的IPv6地址时,协议也可以正常运行。

2) 编址性语义的取消

在OSPFv2中,协议分组和LSA中的许多字段都是来自于网络上的某个IP地址、掩码或某个IP子网号。报文的数据内容决定了OSPFv2的多种机制必须基于IPv4来进行,包括邻居路由器标识、邻居建立等等。

在OSPFv3中取消了这些编址性语义,而只保留协议运行必须的核心内容。比如,Router-LSA和Network-LSA中不再包含网络地址,而只用于传递拓扑信息;LSA的Link

State

ID依然保留32位长度的IPv4地址格式,但只是一个编号,不再包含地址信息;邻居路由器,包括DR和BDR,都是用Router

ID来标识。这些保证了OSPFv3协议能够独立于网络协议运行。

3) 链路本地地址的使用

OSPFv2协议要求,每一个运行OSPF的接口都必须有一个全局的IPv4地址,即使是在网络中仅仅用于传输转发的中间节点也必须如此,协议的运行和路由的计算都依赖于这个地址。而在IPv6中,每个接口都会分配本地链路地址(link-local

address),这个地址只在本地链路有效,并不会在整个网络中传播。OSPFv3使用这个本地链路地址作为协议分组发送的源地址(虚连接除外)和路由的下一跳,在网络规划时就不需要在大量的中间节点规划子网,同样也不需要专门配置IPv6地址。这样,一方面可以节省大量的全局地址,另一方面可以说协议的运行独立于IPv6,可以方便的对协议进行扩展,实现组播选路等其他的功能。

4) 使用专门的LSA来发布路由前缀信息

OSPFv2通过Router-LSA和Network-LSA来发布区域内的路由信息和计算拓扑,所以OSPFv2的拓扑结构与IPv4网络信息是密不可分的。为了改变这种状况,在OSPFv3中,Router-LSA和Network-LSA中仅保留拓扑信息;同时增加了Intra-Area-Prefix-LSA和Link-LSA,分别用于传递区域内路由前缀和传递链路范围内的IPv6前缀。拓扑信息与前缀信息的分离,使得OSPFv3的运行更加独立于网络协议。

2. OSPFv3的结构更加清晰

1) OSPFv3取消了协议报文的验证字段

在OSPFv2中使用了专门的验证字段。而在OSPFv3中使用IPv6标准的验证方式(IP AH和IP

ESP)来保证信息传递的安全性,这样一来,既减轻了协议开销,也在一定程度上简化了协议处理流程。

2) OSPFv3更加明确了LSA泛洪范围

在OSPFv3中,明确了LSA泛洪的三种范围:本地链路范围(Link-local

scope)、区域范围(Area scope)、AS范围(AS

scope),并且在LS_Type中增加了专门的字段进行说明。因此,OSPFv3协议在处理LSA泛洪时不再像OSPFv2中需要根据不同的LSA类型来判断LSA泛洪的范围,而是直接根据专门的字段进行处理就可以了。

3. OSPFv3的可扩展性和适应性更佳

1) OSPFv3支持多实例

OSPFv2协议规定,不同的实例必须运行在不同的链路上。OSPFv3协议则提供了对多实例的明确支持,通过在协议报文中增加“instance

ID”字段,同时规定,接收报文时对该字段进行判断,只有实例号匹配的报文才会处理,否则丢弃。这样,即使是在同一链路上也可以运行多个OSPF实例了,而且独立运行不会互相影响。

2) 对未知类型LSA的处理

在OSPFv2中,当路由器收到自己不支持的LSA时,仅仅是作简单的丢弃处理。这样,当能力不同的路由器混合组网时,整个网络的处理能力就会受限于能力最低的路由器。最为突出的是在广播(或NBMA)网络中,如果DR不支持可选类型的LSA,则DR不能处理的LSA就不能在非DR路由器之间交互了。

在OSPFv3中,对未知类型的LSA的处理作了新的规定:根据LSA中特定字段来进行判断,可以将其泛洪范围限定在本地链路范围内,也可以将其当作已知类型的LSA,根据其中的“泛洪范围”字段发送出去。这样一来,即使网络中某些路由器的能力有限也不会影响某些特殊LSA的传播,从而具备了更好的适应性。

OSPFv3的部署考虑

在园区网中进行OSPFv3的路由规划时,可以参考原先OSPFv2的路由规划。在双栈设备上运行OSPF时,尽管OSPFv2与OSPFv3协议运行在同一个设备上,但是两套路由协议是互相独立运行的,区域的划分、区域中设备的数量及拓扑等路由协议要素可以相同也可以不同。在部署OSPFv3时可以从下面几点考虑。

1. Router ID的选择

OSPFv3使用32位的Router

ID来标识连接的邻居路由器。不同于OSPFv2中可以自动选择接口的IP地址作为Router ID,在OSPFv3中必须对Router

ID进行配置。这是为了防止Router ID的不确定性带来的潜在的不可靠的问题。如果一台路由器的Router ID

发生变化,那么此路由器会重新进行LSA 泛洪,导致网络中的路由发生震荡。在OSPFv3中, Router

ID的配置可以遵循OSPFv2中的原则,使用一个loopback接口的IP地址作为Router ID。

2. 区域的划分

在一个大型网络中部署OSPF协议,区域的划分是必不可少的工作,通过划分区域,能够降低路由器上承载的LSA数量,进而提高网络的性能及可扩展性。

OSPFv3中区域划分的思想与OSPFv2一致,在对一个大型的网络进行区域划分时,实际上也是一个拓扑划分的过程,通过在ABR上进行路由的策略控制及路由汇总,能够极大的明晰网络结构,提高路由协议的性能。在设计OSPF

区域时,首先考虑的是网络的规模,对于大型的网络,一般都会遵循核心,汇聚、接入三个层次。OSPFv3中的区域划分,一般将核心的骨干互联设备划分为AREA0,作为骨干区域使用。将汇聚层设备及其他的接入设备划分为其他的AREA,连接到AREA0上。在OSPFv3中,区域的配置与OSPFv2不同,必须在每个接口上明确启动OSPFv3的配置,并指定其属于的区域号。

3. Stub区域

在OSPFv3

中仍然保留了OSPFv2的Stub的概念,其实现的功能也相同。不同的是,OSPFv3允许洪泛范围是本地链路或区域范围、且LSA头部中LSA

TYPE字段的U

bit未置位的未知LSA在Stub区域中洪泛。在OSPFv3中,可以将一些性能不高的路由器或交换机所组成的OSPF区域配置为Stub或Totally

Stub区域,防止 AS-external-LSA或Inter-Area-Prefix-LSA、Inter-Area-Router-LSA及AS-external-LSA这几类LSA的泛洪,降低区域中的LSA数量,达到节约设备性能的目的。

4. 路由协议安全性

OSPFv3的路由安全性与OSPFv2不同,OSPFv3使用IPv6协议内置的IPSec对路由协议报文进行保护。路由器在发送的报文中会携带配置好的IPSec安全策略的SPI(Security

Parameter

Index,安全参数索引)值,接收报文时通过SPI值进行IPSec安全策略匹配。只有策略匹配的报文才能接收,否则不会接收,也就不能正常建立邻居关系和学习路由。OSPFv3支持在区域、接口和虚连接下配置IPSec安全策略,部署时可以参考以下几点:

1) 当需要保护区域内的所有报文时,可以在区域下配置IPSec安全策略,此时区域内所有路由器都需要配置相同的IPSec安全策略。

2) 当需要保护区域下某些接口的报文时,可以在接口下配置IPSec安全策略,此时直连邻居接口需要配置相同的IPSec安全策略。

3) 当需要保护虚连接的报文时,可以配置虚连接应用IPSec安全策略,此时虚连接上的两个邻居需要配置相同的IPSec安全策略。

4) 当接口和接口所在区域均配置了IPSec安全策略时,接口下的策略生效;当虚连接和区域0均配置了IPSec安全策略时,虚连接的策略有效。

通过对OSPFv3的路由协议报文进行加密,能够更好的保护、提升OSPF协议的安全性。

5. 路由的引入

一般来说,为了控制OSPF协议的数据库规模,不建议使用重分布的方式引入外部路由协议的路由。在使用默认路由获取外部可达性的网络中,可以将默认路由重分发到OSPFv3的进程中,通告给网络内部的其它路由器。如果存在多个出口路由器,需要对OSPF的链路cost值进行调整,对出口链路进行负载分担使用。

综上所述,在以IPv6为基础的网络中部署OSPFv3协议或同时部署两种协议时,由于OSPFv3协议带来的一些变化,在部署时需要考虑的因素会更多:

1) 在规划双栈网络时,特别要注意区域的划分,限制在同一区域中的路由器数量。

2) 双栈网络中,两种协议栈中的拓扑可能相同,也可能不同,在实际的部署中,建议尽可能使用相同的拓扑规划,以便于网络管理。

3) 在单一运行OSPFv3协议的网络中,,可以根据上文所述的原则进行部署,此时OSPFv3与OSPFv2除配置发生变化外,其余差别不大。

4) 在OSPF需要引入外部路由时,需要小心的进行过滤,避免大量的外部路由对OSPF造成性能及可靠性的影响。

总结

通过以上描述可以了解到,OSPFv3对OSPFv2协议进行改造的同时,保留了OSPFv2快速收敛、功能强大、易于部署的特点,在下一代网络IPv6建设中扮演着十分重要的角色。在路由协议规划时,除遵循原有的一般规则外,还需要兼顾OSPFv3协议的部署特点和双栈网络的部署要求。


https://www.xamrdz.com/web/2c41951502.html

相关文章: