Skip to content

OSPF 动态路由协议基础概念

OSPF(Open Shortest Path First,开放最短路径优先)是一种链路状态内部网关协议,用于在同一个自治系统内部动态交换路由信息。它直接封装在 IP 中,协议号为 89,并使用 SPF 算法计算到各目标网络的最短路径。

与距离矢量协议只向邻居通告“目标有多远”不同,OSPF 路由器会描述自己的链路状态。区域内路由器在链路状态数据库同步后,拥有一致的拓扑视图,再各自独立运行 Dijkstra 算法生成最优路由。

OSPF 的主要特点

  • 收敛较快:拓扑变化时通过触发更新扩散链路状态,而不是周期性发送完整路由表。
  • 支持分层设计:使用区域缩小链路状态数据库和 SPF 计算范围,骨干区域编号为 Area 0
  • 以 Cost 选路:接口开销通常由参考带宽与接口带宽计算,路径 Cost 为沿途出接口开销之和。
  • 支持等价负载分担:存在多条总 Cost 相同的最优路径时,可同时安装到路由表。
  • 无类别路由协议:通告中携带掩码,支持 VLSM 和 CIDR。

建立邻居关系的过程

OSPF 路由器通过 Hello 报文发现邻居并维护关系。双方的 Area ID、Hello/Dead Interval、认证参数等关键配置必须兼容,才能继续建立邻接关系。常见邻居状态为:

text
Down → Init → 2-Way → ExStart → Exchange → Loading → Full

在广播型网络中,路由器会选举 DR(指定路由器)和 BDR(备份指定路由器),以减少邻接关系和 LSA 泛洪数量。达到 2-Way 不一定表示异常:DROther 之间通常停留在这一状态,而与 DR、BDR 建立完整邻接。

理解 OSPF 的三张表

学习 OSPF 时,可以沿着“发现邻居、同步拓扑、计算路由”这条主线理解三张核心表。

常用名称记录内容形成方式
邻居表Neighbor Table邻居 Router ID、状态、接口、Dead Time 等通过 Hello 报文发现并维护
链路状态数据库LSDB / Topology Table区域内收到的各类 LSA,描述网络拓扑邻接路由器之间可靠泛洪和同步 LSA
路由表Routing TableSPF 计算后选出的最优前缀、下一跳和出接口对 LSDB 运行 SPF,并与其他路由来源比较

三张表之间存在明确的因果关系:只有邻接关系正常,LSA 才能可靠同步;只有 LSDB 足够完整且一致,SPF 才能计算出正确路径;计算结果还需要通过管理距离和度量值比较,才可能进入全局路由表。

区域与路由器角色

角色定义作用
Internal Router所有 OSPF 接口属于同一区域维护所在区域的 LSDB
Backbone Router至少一个接口位于 Area 0参与骨干区域路由
ABR接口连接两个或多个区域,且至少连接 Area 0在区域之间传递和汇总路由信息
ASBR将其他协议或静态路由重分发进 OSPF产生外部路由信息

多区域 OSPF 要求非骨干区域通过 Area 0 交换区域间路由。小型网络可以先从单区域设计开始,规模扩大后再根据故障域、设备能力和汇总需求划分区域。

常见 LSA 类型

LSA 类型名称产生者与传播范围主要用途
Type 1Router LSA每台路由器产生,仅在本区域传播描述路由器接口、链路和开销
Type 2Network LSA广播网络中的 DR 产生,仅在本区域传播描述多路访问网段及其连接路由器
Type 3Summary LSAABR 产生,传播到其他区域通告区域间网络前缀
Type 5AS External LSAASBR 产生,通常在整个 OSPF 域传播通告重分发进入 OSPF 的外部路由

这里的 “Summary” 是历史命名。Type 3 LSA 可以由 ABR 对路由进行汇总,但也可能逐条通告未汇总的区域间前缀。

基础排障思路

  1. 检查接口是否启用 OSPF,以及双方是否位于预期区域。
  2. 检查 Hello/Dead Interval、网络类型、认证和 MTU 等参数。
  3. 观察邻居状态;若长期停在 ExStart/Exchange,重点检查 MTU 和 Router ID。
  4. 查看 LSDB 是否包含目标前缀对应的 LSA。
  5. 查看 SPF 结果是否因更优路由来源、过滤策略或不可达下一跳而未进入路由表。