OSPFv3基础知识

OSPFv3是为IPv6设计的链路状态路由协议,是OSPFv2的升级版本。它保留了OSPFv2的大部分机制,同时针对IPv6的特点进行了一些必要的调整。

OSPFv3与OSPFv2的主要区别

特性
OSPFv2
OSPFv3
协议号
89
89
地址族
IPv4
IPv6
认证
包含在OSPF报文中
使用IPsec
组播地址
224.0.0.5 (AllSPFRouters)
224.0.0.6 (AllDRouters)
FF02::5 (AllSPFRouters)
FF02::6 (AllDRouters)
邻居关系
基于IP地址
基于Router ID
LSA类型
1-11类
1-11类 (重新定义)

OSPFv3的主要特点

  • 使用链路本地地址作为源地址发送协议报文
  • 一个链路可以运行多个OSPFv3实例
  • 使用Router ID标识路由器,而不是IP地址
  • 支持IPv6的地址前缀和更大的地址空间
  • 移除了地址语义,使协议更加通用
  • 增加了泛洪范围(Flooding Scope)的概念

OSPFv3报文格式

OSPFv3报文由通用报文头和特定类型的报文体组成。OSPFv3支持以下类型的报文:

  • Hello报文:用于发现和维护邻居关系
  • 数据库描述(DD)报文:用于在邻居之间交换链路状态数据库摘要
  • 链路状态请求(LSR)报文:用于向邻居请求特定的链路状态信息
  • 链路状态更新(LSU)报文:用于向邻居发送特定的链路状态信息
  • 链路状态确认(LSAck)报文:用于确认收到的链路状态更新

OSPFv3报文头格式

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Version #   |     Type      |         Packet length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Router ID                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Area ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Checksum             |         Instance ID           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        

OSPFv3邻居状态转换

OSPFv3邻居状态转换是路由器之间建立邻接关系的过程。两台路由器要成为完全邻接,需要经历以下几个状态:

状态机图将在此处显示

邻居状态详解

  • Down状态

    这是初始状态,表示尚未收到来自邻居的任何信息。在广播或NBMA网络中,路由器会主动发送Hello报文。

  • Attempt状态

    仅用于NBMA网络,表示尚未收到邻居的信息,但会主动发送Hello报文到静态配置的邻居。

  • Init状态

    表示已收到邻居的Hello报文,但自己的Router ID不在邻居的Hello报文中,即单向通信。

  • 2-Way状态

    表示双向通信已建立,即在收到的Hello报文中看到了自己的Router ID。在此状态下,路由器会选举DR和BDR。

  • ExStart状态

    邻居关系建立的起始状态,路由器通过交换空的DD报文来确定主从关系和初始序列号。

  • Exchange状态

    路由器交换DD报文,描述各自的LSDB内容摘要。

  • Loading状态

    路由器通过LSR报文请求缺失或更新的LSA,并通过LSU报文接收这些LSA。

  • Full状态

    表示邻居关系完全建立,路由器之间的LSDB已同步。

OSPFv3路由计算过程

OSPFv3路由计算基于SPF(最短路径优先)算法,也称为Dijkstra算法。计算过程包括以下步骤:

  1. 收集链路状态信息,构建链路状态数据库(LSDB)
  2. 以自己为根构建最短路径树(SPT)
  3. 计算到达每个目的网络的最佳路径
  4. 将最佳路径安装到路由表中
路由计算图将在此处显示

OSPFv3 LSA类型

OSPFv3定义了多种LSA类型,每种类型用于描述不同的网络信息:

  • Router-LSA (Type 1):描述路由器的链路状态和开销
  • Network-LSA (Type 2):由DR生成,描述广播或NBMA网络上的所有路由器
  • Inter-Area-Prefix-LSA (Type 3):描述区域间的IPv6前缀
  • Inter-Area-Router-LSA (Type 4):描述区域间的ASBR
  • AS-External-LSA (Type 5):描述自治系统外部的路由
  • NSSA-LSA (Type 7):在NSSA区域中使用,类似于Type 5
  • Link-LSA (Type 8):在本地链路范围内泛洪,提供路由器的链路本地地址和IPv6前缀
  • Intra-Area-Prefix-LSA (Type 9):描述区域内的IPv6前缀

OSPFv3在智慧城市中的应用

随着IPv6的广泛部署,OSPFv3作为IPv6网络的路由协议,在智慧城市建设中发挥着重要作用。

场景图将在此处显示

智慧交通系统

在智慧交通系统中,OSPFv3作为路由协议,为交通信号灯控制系统提供可靠的网络连接。通过IPv6网络,交通信号灯、摄像头和传感器可以实时共享数据,优化交通流量。

OSPFv3在智慧城市中的优势

  • 大规模设备支持:IPv6的巨大地址空间可以满足智慧城市中海量IoT设备的需求
  • 快速收敛:OSPFv3的快速收敛特性确保网络拓扑变化时能够迅速适应
  • 区域划分:通过区域划分,可以将智慧城市网络分为不同的管理域,提高网络可扩展性
  • 路由汇总:支持路由汇总,减少路由表大小,提高网络性能
  • 安全性:支持IPsec认证,提高网络安全性

OSPFv3网络拓扑模拟

通过交互式网络拓扑编辑器,您可以创建自定义的OSPFv3网络拓扑,并查看相应的配置命令。

设备类型

路由器 路由器
交换机 交换机
PC PC
服务器 服务器
物联网设备 物联网设备

拓扑模板