视频加载失败

OSPF 协议详解

3254 字
16 分钟
OSPF 协议详解

OSPF 协议详解#

一、协议概述#

1.1 OSPF 定义#

OSPF(Open Shortest Path First,开放最短路径优先)是基于链路状态的内部网关协议(IGP),使用 Dijkstra 的最短路径优先(SPF)算法计算最优路由。

  • 协议号:89(IP 头部中的 Protocol 字段)
  • 组播地址
    • 224.0.0.5:AllSPFRouters,所有 OSPF 路由器监听
    • 224.0.0.6:AllDRouters,DR/BDR 监听
  • 封装方式:直接封装在 IP 报文中,不使用 TCP/UDP

1.2 OSPF 三大特点#

特点说明
无环路基于 SPF 算法计算无环拓扑
收敛快链路状态变化触发立即更新,无需整张表周期性交换
支持区域划分通过分层区域设计减少 LSA 泛洪和路由表规模

1.3 OSPF 路由器角色#

角色说明
IR(Internal Router)所有接口都属于同一个区域
BR(Backbone Router)至少有一个接口属于 Area 0
ABR(Area Border Router)连接多个区域,至少一个接口在 Area 0
ASBR(AS Boundary Router)引入外部路由的路由器

1.4 RID 选举规则#

RID(Router ID)是 OSPF 路由器在 AS 中的唯一标识,选举优先级从高到低:

  1. 手动配置router-id 命令指定的 IP 地址
  2. Loopback 接口最大 IP:选择最大的 Loopback 接口 IP
  3. 物理接口最大 IP:选择最大的物理接口 IP

选举顺序:手动配置 > Loopback 最大 IP > 物理接口最大 IP


二、OSPF 区域划分 🏷️高频考点#

2.1 区域划分目的#

  • 减少 LSA 泛洪范围
  • 降低路由表规模
  • LSDB 只需同步区域内信息
  • 简化管理和故障排查

2.2 区域类型#

区域类型说明
骨干区域(Area 0)核心区域,所有非骨干区域必须与之相连
非骨干区域Area 1、Area 2 等,承载本区域内路由
特殊区域Stub、Totally Stub、NSSA、Totally NSSA

2.3 区域间路由规则#

  • 所有非骨干区域必须与骨干区域直接相连(物理或逻辑相连)
  • ABR 负责在区域间传递路由信息(Type 3 LSA)
  • 跨区域路由必须经过 Area 0 转发

2.4 区域划分拓扑图#

Area 2

Area 1

Area 0 骨干区域

Area 0

Area 0

Area 1

Area 1

Area 2

Area 2

ABR1

RID: 1.1.1.1

ABR2

RID: 2.2.2.2

R1 骨干路由器

R2

R3

R4

R5

Area 2

Area 1

Area 0 骨干区域

Area 0

Area 0

Area 1

Area 1

Area 2

Area 2

ABR1

RID: 1.1.1.1

ABR2

RID: 2.2.2.2

R1 骨干路由器

R2

R3

R4

R5

ABR 同时连接 Area 0 和非骨干区域,负责区域间路由转发。


三、OSPF 报文类型 🏷️高频考点#

3.1 五种报文详解#

报文类型类型号名称作用
Hello1发现邻居、维护邻接关系周期性发送,用于邻居发现和 DR/BDR 选举
DD2Database Description描述本地 LSDB 摘要
LSR3Link State Request请求缺失的 LSA
LSU4Link State Update发送具体的 LSA
LSAck5Link State Acknowledgment确认收到的 LSA

3.2 报文发送时机与方式#

报文发送方式发送时机
Hello组播 224.0.0.5(P2P/广播)/ 单播(NBMA)周期性发送(P2P 10s,广播 10s,NBMA 30s)
DD组播 224.0.0.5进入 ExStart 后发送,主从协商后发送摘要
LSR组播/单播Exchange 阶段发现缺失后请求
LSU组播 224.0.0.6(DR/BDR)/ 单播收到 LSR 后发送对应 LSA
LSAck组播 224.0.0.5收到 LSU 后确认

3.3 五种报文对比表#

对比项HelloDDLSRLSULSAck
类型号12345
携带 LSA摘要LSA 头部完整 LSA
可靠传输
触发方式周期状态触发状态触发状态触发收到 LSU 后

四、OSPF 邻居状态机 🏷️高频考点#

4.1 邻居状态详解#

状态触发条件动作
Down初始状态未收到任何 Hello
Init收到 Hello 但未包含自己 RID对方看到了我,但我还未确认对方
2-Way收到的 Hello 中包含自己 RID邻居关系建立,进行 DR/BDR 选举
ExStart邻接关系开始主从关系选举(比较 RID,大者为主)
Exchange主从确定后交换 DD 报文,描述 LSDB 摘要
Loading发现缺失 LSA发送 LSR 请求,接收 LSU 更新
FullLSDB 完全同步邻接关系完全建立

注意:2-Way 和 Full 是稳定状态,其他为过渡状态。广播网中 DR Other 之间只到 2-Way。

4.2 关键状态说明#

  • 2-Way 状态:DR/BDR 选举在此状态后进行。广播网中 DR Other 之间保持 2-Way,不进入后续状态。
  • ExStart 状态:主从关系选举,比较 RID,RID 大者为主(Master)。Master 控制序号。
  • Exchange 状态:主从双方交换 DD 报文,携带 LSDB 摘要。
  • Loading 状态:发现本地缺失的 LSA 后,发送 LSR 请求。

4.3 状态机流程图#

收到Hello

Hello中包含本机RID

需要建立邻接关系

(DR/BDR确定后)

主从关系确定

发现缺失LSA

LSDB完全同步

无缺失LSA(直接完成)

DR Other之间保持2-Way

邻接关系稳定

Down

Init

2Way

ExStart

Exchange

Loading

Full

收到Hello

Hello中包含本机RID

需要建立邻接关系

(DR/BDR确定后)

主从关系确定

发现缺失LSA

LSDB完全同步

无缺失LSA(直接完成)

DR Other之间保持2-Way

邻接关系稳定

Down

Init

2Way

ExStart

Exchange

Loading

Full


五、DR 与 BDR 选举 🏷️高频考点#

5.1 选举场景#

网络类型是否选举 DR/BDR
广播(Broadcast)
NBMA
P2P(点到点)
P2MP(点到多点)

5.2 选举规则#

  1. 先比优先级:默认 1,范围 0-255,大者优先
  2. 再比 RID:优先级相同时,RID 大者优先
  3. 优先级为 0:表示不参与 DR/BDR 选举(成为 DR Other)

5.3 选举过程#

  1. 接口 OSPF 启用后进入 Waiting 状态(等待 40s = Dead Interval)
  2. Waiting 结束后,检查收到的 Hello 中的 DR/BDR 字段
  3. 优先级最高的为 DR,次高为 BDR
  4. 若优先级相同,比较 RID

5.4 DR/BDR 不可抢占性#

  • DR/BDR 选举完成后,即使有更高优先级的路由器加入,也不会重新选举
  • DR 故障后,BDR 升级为 DR,重新选举 BDR
  • DR Other 只与 DR/BDR 建立 Full 邻接关系,与其他 DR Other 保持 2-Way

OSPF DR 选举与 IS-IS DIS 选举的核心区别:OSPF DR 不可抢占,IS-IS DIS 可抢占。


六、LSA 类型详解 🏷️高频考点(最重要章节)#

6.1 LSA 类型总表#

LSA 类型名称产生者传播范围内容Link ID
Type 1Router LSA每台路由器区域内路由器接口链路状态产生者 RID
Type 2Network LSADR区域内伪节点连接的路由器DR 接口 IP
Type 3Network Summary LSAABR区域间区域间路由目标网段地址
Type 4ASBR Summary LSAABR区域间(除 ASBR 所在区域)指向 ASBR 的路由ASBR 的 RID
Type 5AS External LSAASBR全 AS外部路由外部网段地址
Type 6Group Membership LSA--组播 OSPF 使用不常用
Type 7NSSA External LSANSSA 区域内 ASBRNSSA 区域内NSSA 外部路由外部网段地址

6.2 各 LSA 详细说明#

Type 1 Router LSA#

  • 产生者:区域内每台路由器
  • 传播范围:仅在产生区域内泛洪
  • 内容:路由器所有接口的链路状态(P2P、Transit、Stub)
  • Link ID:产生该 LSA 的路由器 RID

Type 2 Network LSA#

  • 产生者:广播/NBMA 网络中的 DR
  • 传播范围:仅在产生区域内泛洪
  • 内容:DR 所在网段上所有路由器的 RID
  • Link ID:DR 接口 IP 地址

Type 3 Network Summary LSA#

  • 产生者:ABR
  • 传播范围:区域间泛洪
  • 内容:本区域内路由的汇总信息
  • Link ID:目标网段地址

Type 4 ASBR Summary LSA#

  • 产生者:ABR(ASBR 所在区域的 ABR)
  • 传播范围:除 ASBR 所在区域外的所有区域
  • 内容:指向 ASBR 的路由
  • Link ID:ASBR 的 RID

Type 5 AS External LSA#

  • 产生者:ASBR
  • 传播范围:整个 AS(除特殊区域外)
  • 内容:从其他协议引入的外部路由
  • Link ID:外部网段地址
  • 外部路由类型
    • Type 1:开销 = 外部开销 + 内部开销
    • Type 2:开销 = 仅外部开销(默认)

Type 7 NSSA External LSA#

  • 产生者:NSSA 区域内的 ASBR
  • 传播范围:仅在 NSSA 区域内泛洪
  • 内容:NSSA 区域引入的外部路由
  • Link ID:外部网段地址
  • 转换机制:ABR 将 Type 7 转换为 Type 5 后泛洪到其他区域

七、OSPF 特殊区域 🏷️高频考点#

7.1 四种特殊区域对比#

特殊区域不接受的 LSAABR 下发默认路由允许引入外部路由说明
StubType 4、Type 5是(Type 3)区域内不能有 ASBR
Totally StubType 3、Type 4、Type 5是(Type 3)只保留区域内路由 + 默认路由
NSSAType 4、Type 5否(需手动配置)是(Type 7)允许引入外部路由,不下发默认
Totally NSSAType 3、Type 4、Type 5是(Type 3)是(Type 7)最特殊:只保留区域内 + 默认 + 外部

7.2 Stub 区域#

  • 不接受 Type 4 和 Type 5 LSA
  • ABR 自动下发默认路由(Type 3 LSA,cost 为本区域到 ABR 的开销)
  • 区域内所有路由器必须配置为 Stub
  • 不能存在 ASBR
  • 不能是 Area 0

7.3 Totally Stub 区域#

  • 在 Stub 基础上,进一步不接受 Type 3 LSA
  • 只保留区域内路由和 ABR 下发的默认路由
  • 只需在 ABR 上配置 stub no-summary,其他路由器配置 stub

7.4 NSSA 区域#

  • 不接受 Type 4 和 Type 5 LSA,但允许引入外部路由(Type 7 LSA)
  • ABR 默认不下发默认路由,需手动配置
  • Type 7 LSA 由 ABR 转换为 Type 5 后泛洪到其他区域
  • 适合需要引入外部路由但不接受外部路由的区域

7.5 Totally NSSA 区域#

  • 在 NSSA 基础上,进一步不接受 Type 3 LSA
  • ABR 自动下发默认路由
  • 只需在 ABR 上配置 nssa no-summary

八、OSPF 路由汇总#

8.1 ABR 汇总(区域间汇总)#

  • 配置位置:ABR 上
  • 汇总对象:Type 3 LSA
  • 作用:将多个区域间路由汇总为一条
Terminal window
# 在 Area 1 的 ABR 上汇总 10.1.1.0/24 和 10.1.2.0/24 为 10.1.0.0/16
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] abr-summary 10.1.0.0 255.255.0.0

8.2 ASBR 汇总(外部路由汇总)#

  • 配置位置:ASBR 上
  • 汇总对象:Type 5/Type 7 LSA
  • 作用:将多个外部路由汇总为一条
Terminal window
# 在 ASBR 上汇总外部路由
[Router-ospf-1] asbr-summary 172.16.0.0 255.255.0.0

8.3 汇总配置命令示例#

Terminal window
# 进入 OSPF 进程
[Router] ospf 1 router-id 1.1.1.1
# ABR 区域间汇总
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] abr-summary 10.1.0.0 255.255.0.0 cost 10
[Router-ospf-1-area-0.0.0.1] quit
# ASBR 外部路由汇总
[Router-ospf-1] asbr-summary 172.16.0.0 255.255.0.0 tag 100

九、OSPF 开销与参考带宽 🏷️高频考点#

9.1 开销计算公式#

接口开销=参考带宽接口带宽(向下取整,最小为1接口开销 = \frac{参考带宽}{接口带宽}(向下取整,最小为 1)

  • 默认参考带宽:100 Mbit/s
  • 计算示例:
    • 100M 接口:100M / 100M = 1
    • 10M 接口:100M / 10M = 10
    • 1G 接口:100M / 1000M = 0.1 → 向下取整 → 1(注意:实际上取最小值 1)

9.2 参考带宽修改#

修改参考带宽需在所有 OSPF 路由器上统一修改,否则可能导致次优路径。

Terminal window
[Router-ospf-1] bandwidth-reference 1000

9.3 OSPF Cost 配置命令#

Terminal window
# 方法一:接口下直接配置 cost 值
[Router-GigabitEthernet0/0/0] ospf cost 50
# 方法二:修改参考带宽
[Router-ospf-1] bandwidth-reference 1000

十、华为设备配置命令示例#

10.1 基础 OSPF 配置#

Terminal window
# 创建 OSPF 进程并指定 RID
[Router] ospf 1 router-id 1.1.1.1
# 配置区域并宣告接口
[Router-ospf-1] area 0
[Router-ospf-1-area-0.0.0.0] network 10.0.0.0 0.0.0.255
[Router-ospf-1-area-0.0.0.0] quit
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[Router-ospf-1-area-0.0.0.1] quit

10.2 特殊区域配置#

Terminal window
# Stub 区域配置(所有路由器)
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] stub
[Router-ospf-1-area-0.0.0.1] quit
# Totally Stub 区域配置(ABR 上加 no-summary,其他路由器只需 stub)
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] stub no-summary
[Router-ospf-1-area-0.0.0.1] quit
# NSSA 区域配置
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] nssa
[Router-ospf-1-area-0.0.0.1] quit
# Totally NSSA 区域配置(ABR 上加 no-summary)
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] nssa no-summary
[Router-ospf-1-area-0.0.0.1] quit

10.3 路由汇总配置#

Terminal window
# ABR 区域间汇总
[Router-ospf-1] area 1
[Router-ospf-1-area-0.0.0.1] abr-summary 10.1.0.0 255.255.0.0
[Router-ospf-1-area-0.0.0.1] quit
# ASBR 外部路由汇总
[Router-ospf-1] asbr-summary 172.16.0.0 255.255.0.0

10.4 引入外部路由#

Terminal window
# 引入直连路由
[Router-ospf-1] import-route direct
# 引入静态路由
[Router-ospf-1] import-route static
# 引入其他协议路由(如 BGP),并设置开销类型和值
[Router-ospf-1] import-route bgp type 1 cost 50
# 引入 OSPF 进程间路由
[Router-ospf-1] import-route ospf 2

10.5 接口开销配置#

Terminal window
# 接口下配置 OSPF Cost
[Router-GigabitEthernet0/0/0] ospf cost 50

10.6 参考带宽修改#

Terminal window
[Router-ospf-1] bandwidth-reference 1000

10.7 静默接口配置#

Terminal window
# 配置 Silent Interface(只接收不发 Hello,不建邻居)
[Router-ospf-1] silent-interface GigabitEthernet0/0/0

十一、OSPF 常见故障排查#

11.1 邻居关系无法建立#

排查项说明诊断方法
区域 ID两端必须一致display ospf interface
认证两端认证模式和密钥必须一致display ospf interface
掩码两端必须一致(P2P 除外)display ip interface
Hello/Dead 间隔两端必须一致display ospf interface
网络类型两端必须一致display ospf interface
RID 冲突全网 RID 必须唯一display ospf brief
被动接口检查是否配置了 silent-interfacedisplay current-configuration

11.2 邻居卡在 ExStart/Exchange 状态#

排查项说明
MTU 不一致两端接口 MTU 必须一致
RID 冲突两台路由器 RID 相同,无法选出主从

11.3 路由学习不全#

排查项说明
特殊区域配置Stub/NSSA 区域不接受特定 LSA
ABR 连接ABR 必须连接 Area 0
过滤策略检查是否配置了路由过滤

11.4 常用诊断命令#

Terminal window
# 查看 OSPF 邻居关系
display ospf peer
# 查看 OSPF 链路状态数据库
display ospf lsdb
# 查看 OSPF 路由表
display ospf routing
# 查看 OSPF 接口信息
display ospf interface
# 查看 OSPF 错误信息
display ospf error
# 查看 OSPF 进程概要
display ospf brief
# 查看 OSPF 报文统计
display ospf packet

总结:OSPF 是 HCIP-Datacom 考试的核心内容之一,重点掌握 LSA 类型、邻居状态机、DR/BDR 选举、特殊区域及开销计算。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
OSPF 协议详解
https://blog.zs13.tech/posts/网络/01-路由协议/ospf协议详解/
作者
zs13
发布于
2026-08-05
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
zs13
Hello, I'm Zs13.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
22
分类
1
标签
46
总字数
64,717
运行时长
0
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.15.10
文章许可
CC BY-NC-SA 4.0