上一篇我们手动配置了静态路由,但网络规模一大,静态路由维护成本剧增。OSPF(开放最短路径优先)是动态路由协议,让路由器自动学习全网路由、自适应拓扑变化。本文从原理到实战,带你入门 OSPF。

一、为什么需要动态路由?

静态路由的问题:① 网络规模大时配置量大 ② 拓扑变更需手动改配置,易出错 ③ 无法自动绕开故障链路。动态路由协议让路由器自动交换路由信息,OSPF 是其中最常用的链路状态协议。

对比静态路由OSPF
配置方式逐条手动只需启用协议
拓扑变更手动修改自动收敛
适用规模小型网络中大型网络
资源消耗无CPU/内存

二、OSPF 原理速览

OSPF 是链路状态协议,核心思想:每台路由器收集全网链路状态,各自用 SPF(Dijkstra)算法计算最短路径树。

2.1 区域(Area)

OSPF 用区域分层管理,减少 LSA 洪泛范围。Area 0(骨干区域)必须存在,其他区域必须与 Area 0 相连。

        Area 0 (骨干)
       ┌──────────────┐
       │  R1 ─── R2   │
       └──────┬───────┘
              │
        Area 1 (常规)
       ┌──────────────┐
       │  R3 ─── R4   │
       └──────────────┘

2.2 邻居与邻接

OSPF 通过 Hello 报文发现邻居。两台路由器接口配在同一区域、同一网段、相同 Hello 间隔,就能建立邻居关系,进而交换 LSA 形成邻接(Adjacency)。

💡
关键参数:Router ID(路由器唯一标识)、Hello Interval(默认10s)、Dead Interval(默认40s,4倍Hello)。超时未收Hello则判定邻居Down。

三、实验拓扑

R1 ────── R2 ────── R3
 .1   .2  .1   .2   .1
 12.0.0.0/24  23.0.0.0/24
环回口:       环回口:       环回口:
1.1.1.1/32   2.2.2.2/32   3.3.3.3/32

全部划入 Area 0(单区域 OSPF)

四、配置步骤

4.1 R1 配置

[R1] interface LoopBack 0
[R1-LoopBack0] ip address 1.1.1.1 32
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 12.0.0.1 24

[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 12.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
⚠️
反掩码:OSPF network 命令用反掩码(wildcard),0表示精确匹配,1表示忽略。24位掩码对应反掩码 0.0.0.255。

4.2 R2、R3 配置(同理)

# R2
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 12.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 23.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0

# R3
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0

五、验证

5.1 查看邻居

[R1] display ospf peer
 OSPF Process 1 with Router ID 1.1.1.1
 Area 0.0.0.0 interface 12.0.0.1(GE0/0/0)'s neighbors
 Router ID       State        Pri   Dead-Time   Interface
 2.2.2.2         Full        1     38          GE0/0/0
 ✅ 状态 Full 表示邻接已建立

5.2 查看 LSDB

[R1] display ospf lsdb
 Link State Database(Area 0.0.0.0)
 Type      LinkState ID    AdvRouter       LSAge  Sequence
 Router    2.2.2.2         2.2.2.2         12     80000004
 Router    3.3.3.3         3.3.3.3         10     80000003
 Router    1.1.1.1         1.1.1.1         15     80000005

5.3 查看路由表

[R1] display ip routing-table protocol ospf
Destination/Mask    Proto   Pre  Cost  NextHop
2.2.2.2/32          OSPF    10   1     12.0.0.2
3.3.3.3/32          OSPF    10   2     12.0.0.2
23.0.0.0/24         OSPF    10   1     12.0.0.2
✅ R1 自动学到了 R2、R3 的路由,无需手动配静态路由

六、收敛测试

断开 R1-R2 链路,观察 OSPF 自动收敛:

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] shutdown
# 等待 Dead Interval(40s) 超时,R1 检测到邻居 Down
# 若有备用路径,OSPF 自动重新计算最短路径
💡
收敛时间:默认 Dead Interval 40s。可通过调小 Hello/Dead 间隔加速收敛(如 Hello=1s, Dead=4s),但会增加协议开销。

七、排错思路

  1. 邻居状态卡在 Init? 单向可达或 Hello 参数不匹配,检查两端 Hello/Dead 间隔、区域 ID。
  2. 邻居状态卡在 ExStart/Exchange? MTU 不一致最常见,检查两端接口 MTU。
  3. Router ID 冲突? 两台路由器 Router ID 相同会导致 OSPF 异常,确保全网唯一。
  4. 路由学不到? 检查 network 命令的反掩码是否正确匹配接口网段。

八、小结

  • OSPF 是链路状态协议,自动学习全网路由,适合中大型网络
  • 区域分层(Area 0 骨干)减少 LSA 洪泛,单区域适合小型网络入门
  • 邻居建立靠 Hello 报文,状态到 Full 表示邻接完成
  • 收敛自动完成,拓扑变化无需手动干预

下一篇我们配置防火墙安全策略,进入网络安全领域。