什么是OSPFv3协议?与OSPFv2有啥区别?
OSPF(Open Shortest Path First)是IETF(Internet Engineering Task Force)组织开发的一个基于链路状态的内部网关协议IGP(Interior Gateway Protocol)。OSPF是一种开放的协议,可用于在单一自治系统(AS)内部进行路由选择。通过计算最短路径来实现路由转发,采用Dijkstra算法。
目前针对IPv4协议使用的是OSPF Version 2,而针对IPv6协议使用的则是OSPF Version 3。OSPFv3在OSPFv2基础上进行了增强,是一个独立的路由协议。OSPFv3支持IPv6地址和其他IPv6相关特性,为IPv6网络提供路由选择服务。
OSPFv3的主要目的是开发一种独立于任何具体网络层的路由协议。重新设计了内部路由信息,以适应不同版本的IP协议。提供了对IPv6网络的全面支持,包括地址格式、邻居关系等。
本文瑞哥将带大家好好了解一下OSPFv3,并比较OSPFv3和OSPFv2.
OSPFv3 技术知识
OSPFv3是运行于IPv6的路由协议,用于在单一自治系统内部进行路由选择。与OSPFv2相比,OSPFv3在Hello报文、状态机、LSDB、泛洪机制和路由计算等方面的工作原理基本保持一致。
OSPFv3报文封装在IPv6报文内,可采用单播和组播形式发送。主要报文类型包括Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
OSPFv3报文类型
- Hello报文: 用于周期性发送,用来发现和维持OSPFv3邻居关系。
- DD报文(Database Description packet): 描述本地LSDB的摘要信息,用于两台设备进行数据库同步。
- LSR报文(Link State Request packet): 用于向对方请求所需的LSA,仅在OSPFv3邻居双方成功交换DD报文后才发送。
- LSU报文(Link State Update packet): 向对方发送所需的LSA。
- LSAck报文(Link State Acknowledgment packet): 用来对收到的LSA进行确认。
OSPFv3中的LSA类型
- Router-LSA(Type1): 描述设备的链路状态和开销,区域内传播。
- Network-LSA(Type2): 描述本链路的链路状态,区域内传播。
- Inter-Area-Prefix-LSA(Type3): 描述区域内某个网段的路由,并通告给其他相关区域。
- Inter-Area-Router-LSA(Type4): 描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
- AS-external-LSA(Type5): 描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。
- NSSA LSA(Type7): 描述到AS外部的路由,仅在NSSA区域内传播。
- Link-LSA(Type8): 描述每个链路的信息,仅在该链路内传播。
- Intra-Area-Prefix-LSA(Type9): 描述设备或DR相关联的IPv6前缀地址,区域内传播。
- Intra-Area-TE-LSA(Type10): 描述设备本身的TE信息和链路相关的TE信息,区域内传播。
- GRACE-LSA(Type11): 在Graceful Restart过程中使用,为每个接口发布此类LSA。
- OSPFv3 Router Information (RI) LSA(Type12): 发布设备的扩展信息,分为Area Router Information LSA和AS Router Information LSA。
- E-Router-LSA(Type33): 发布链路扩展TLV信息,区域内传播。
- E-AS-External-LSA(Type37): 描述AS外部路由关联的扩展TLV信息,通告到所有的区域。
- SRv6 Locator LSA(Type42): 发布SRv6 Locator时的扩展信息,区域内传播。
OSPFv3和OSPFv2协议比较
相同点
-
网络类型和接口类型:
- OSPFv3和OSPFv2都支持多种网络类型,包括点到点、广播、非广播多点和点到多点等。
- 它们也都支持各种接口类型,例如物理接口、虚拟接口和汇聚接口等。
-
接口状态机和邻居状态机:
- OSPFv3和OSPFv2使用类似的接口状态机和邻居状态机来维护与相邻路由器的关系。
- 这些状态机用于确定接口的状态(如Down、Init、Two-way、ExStart、Exchange和Full)以及邻居之间的关系。
-
链路状态数据库LSDB:
- OSPFv3和OSPFv2都维护一个链路状态数据库(LSDB),其中包含了来自网络中所有路由器的链路状态信息。
- 这些信息用于计算最短路径并生成路由表。
-
泛洪机制(Flooding mechanism):
- OSPFv3和OSPFv2都使用泛洪机制来在整个网络中传播链路状态更新。
- 当一个路由器更新了其链路状态时,它会将更新信息发送给所有相邻的路由器,然后由接收到的路由器再将更新信息传播给它们的相邻路由器,直到整个网络都收到了更新信息。
-
相同类型的报文:
- OSPFv3和OSPFv2使用相同类型的报文来执行邻居关系建立、数据库同步和路由更新等功能。
- 这些报文类型包括Hello报文、DD(Database Description)报文、LSR(Link State Request)报文、LSU(Link State Update)报文和LSAck(Link State Acknowledgment)报文。
-
路由计算基本相同:
- OSPFv3和OSPFv2都使用相似的路由计算算法,基于Dijkstra算法计算最短路径,并根据得到的最短路径生成路由表。
- 路由器在LSDB中收集到链路状态信息后,使用相同的算法计算出最短路径,并更新路由表以实现数据包的转发。
不同点
-
地址信息的携带:
- OSPFv3仅在更新报文的LSA中携带地址信息,而OSPFv2在整个报文中携带IP地址信息。
-
协议的运行机制:
- OSPFv3运行在IPv6协议上,IPv6是基于链路而不是网段的,因此在配置OSPFv3时不需要考虑是否配置在同一网段,只要在同一链路上即可建立联系。
-
IP地址的意义:
- OSPFv3上移除了IP地址的意义,使得拓扑与地址分离。OSPFv3不依赖IPv6全局地址的配置来计算拓扑结构,IPv6全局地址仅用于Vlink接口及报文的转发。
-
报文及LSA格式:
- OSPFv3报文不包含IP地址,而OSPFv2的报文中包含IP地址。
- OSPFv3的Router LSA和Network LSA中不包含IP地址,而是由Link LSA和Intra Area Prefix LSA宣告。
-
LSA的泛洪范围:
- OSPFv3在LSA报文头的LSA Type中添加了LSA的泛洪范围,使得OSPFv3设备更加灵活,可以处理不能识别类型的LSA。
- OSPFv3允许泛洪U位置为1的未知LSA,并且泛洪这种LSA的范围由该LSA自己指定。
-
多进程:
- OSPFv3支持一个链路上多个进程,而OSPFv2的物理接口只能绑定一个实例。
-
链路本地地址:
- OSPFv3利用IPv6链路本地地址来维持邻居和同步LSA数据库,不需要配置IPv6全局地址。
- OSPFv3的所有接口(除Vlink外)都使用链路本地地址作为源地址及下一跳来发送OSPFv3报文。
-
新增LSA:
- OSPFv3新增了Link LSA和Intra Area Prefix LSA,用于宣告链路本地地址和IPv6全局地址信息。
-
邻居标识:
- OSPFv3只通过Router ID来标识邻居,而OSPFv2在广播网、NBMA及P2MP网络中是通过IPv4接口地址来标识邻居的。
- 点赞
- 收藏
- 关注作者
评论(0)