Skip to content

OSPF(开放最短路径优先)与华为设备配置实操 ​

OSPF:Open Shortest Path First,链路状态路由协议,基于 IP 协议号 89,组播地址 224.0.0.5(AllSPFRouters)/ 224.0.0.6(AllDRouters)。

一、为什么需要 OSPF(对比 RIP) ​

对比项RIPOSPF
协议类型距离矢量链路状态
度量值跳数开销(基于带宽)
网络规模最大 15 跳无跳数限制,可分区域扩展
更新��式周期 30 秒发全表触发式增量更新(LSA)
收敛速度慢(可达数分钟)快(秒级)
防环手段水平分割等五件套SPF 算法区域内天然无环
报文承载UDP 520IP 协议号 89
适用场景小型网络中大型网络

二、核心概念 ​

1. 链路状态与 SPF 算法 ​

  • 每台路由器描述自己的接口状态(网段、掩码、开销、邻居),生成 LSA 泛洪到同区域;
  • 同区域所有路由器最终拥有完全相同的链路状态数据库(LSDB);
  • 各路由器以自己为根运行 SPF(Dijkstra)算法,算出最短路径树,得到路由表;
  • 链路开销 = 参考带宽 / 接口带宽,默认参考带宽 100Mbps(千兆与百兆链路算出的开销同为 1,需用 bandwidth-reference 调整参考带宽加以区分,全网必须一致)。

2. Router ID ​

  • 32 位整数,点分十进制格式(如 1.1.1.1),唯一标识一台 OSPF 路由器;
  • 选取顺序:手工指定 > Loopback 接口最大 IP > 物理接口最大 IP;
  • Router ID 冲突会导致邻居无法建立或路由震荡。

3. 区域 ​

  • 区域 0 为骨干区域,负责转发区域间路由;非骨干区域必须与骨干区域直接相连;
  • 划分区域可缩小 LSDB 规模、SPF 计算范围,隔离拓扑变化的影响,便于扩容。

4. 路由器角色 ​

  • 骨干路由器:至少一个接口属于区域 0;
  • ABR(区域边界路由器):连接两个及以上区域(通常是区域 0 与非 0 区域),产生 Type-3 LSA;
  • ASBR(自治系统边界路由器):引入外部路由(静态、RIP 等),产生 Type-5 LSA。

三、五种协议报文 ​

报文全称作用
Hello—发现并维持邻居;广播/P2P 网络 10 秒一次,Dead 时间为其 4 倍
DDDatabase Description描述本地 LSDB 中 LSA 的摘要,先协商主从
LSRLink State Request请求自己缺少的 LSA
LSULink State Update携带一条或多条完整 LSA
LSAckLink State Acknowledgment确认收到的 LSA,实现可靠传输

四、邻居状态机七个状态 ​

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

  1. Down:初始状态,尚未收到对方 Hello;
  2. Init:收到对方 Hello,但其中未包含自己的 Router ID;
  3. 2-Way:双方 Hello 中均含对方 RID,双向通信建立;广播网中在此阶段完成 DR/BDR 选举,DROther 之间停留在 2-Way,不再向下;
  4. ExStart:发送空 DD 报文协商主从(Router ID 大者为主)与 DD 序列号;
  5. Exchange:交换携带 LSA 摘要的 DD 报文;
  6. Loading:对比摘要后用 LSR 请求缺失的 LSA,对方以 LSU 回复;
  7. Full:LSDB 同步完成,建立邻接关系。

邻居(2-Way)与邻接(Full)是两回事:广播网中只有 DR/BDR 与所有路由器建立邻接,DROther 之间保持 2-Way。

五、DR/BDR 选举 ​

  • 广播/NBMA 网络中,n 台路由器全互联需要 n(n-1)/2 个邻接,LSA 泛洪开销大;选举一台 DR、一台 BDR,所有路由器只与 DR/BDR 建立邻接,BDR 备份 DR;
  • 选举规则:先比较接口优先级(0~255,默认 1,优先级 0 不参与选举),优先级相同时比较 Router ID,越大越优;
  • 不抢占:DR 已存在时,即使新路由器优先级更高也不会重新选举,需重启 OSPF 进程或接口才触发重新选举。

六、LSA 类型与特殊区域 ​

1. 五种常见 LSA ​

类型名称产生者传播范围
Type-1Router LSA每台路由器本区域内
Type-2Network LSADR本区域内
Type-3Network Summary LSAABR区域之间
Type-4ASBR Summary LSAABR区域之间(描述到 ASBR 的路径)
Type-5AS External LSAASBR整个 OSPF 域(特殊区域除外)
Type-7NSSA External LSANSSA 区域的 ASBRNSSA 区域内,离开时由 ABR 转为 Type-5

路由标记:区域内路由 O、区域间路由 O IA、外部路由 O_ASE / O_NSSA。

2. 特殊区域 ​

区域类型拒绝的 LSA默认路由注入
Stub 末梢区域Type-5ABR 自动发 Type-3 默认路由
Totally Stub 完全末梢区域Type-3/4/5ABR 只发一条 Type-3 默认路由
NSSAType-5(允许自身引入外部路由成 Type-7)需手工下发 N2 默认路由
Totally NSSAType-3/4/5ABR 自动发默认路由

七、完整实操:双区域 OSPF(华为路由器) ​

1. 拓扑与地址规划 ​

R1 ---GE0/0/0: 12.1.1.0/24--- R2 ---GE0/0/1: 23.1.1.0/24--- R3

R1:GE0/0/0 = 12.1.1.1/24,Loop0 = 1.1.1.1/32(区域 0)
R2:GE0/0/0 = 12.1.1.2/24(区域 0),GE0/0/1 = 23.1.1.2/24(区域 1),ABR
R3:GE0/0/0 = 23.1.1.3/24,Loop0 = 3.3.3.3/32(区域 1)

2. R1 配置(区域 0) ​

<Huawei> system-view
[Huawei] sysname R1
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/0] quit
[R1] interface LoopBack 0
[R1-LoopBack0] ip address 1.1.1.1 32
[R1-LoopBack0] quit
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] quit

说明:network 命令使用反掩码(wildcard),精确通告 Loopback 时用 0.0.0.0。

3. R2 配置(ABR) ​

<Huawei> system-view
[Huawei] sysname R2
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/0] quit
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 23.1.1.2 24
[R2-GigabitEthernet0/0/1] quit
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] quit
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 23.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1] quit
[R2-ospf-1] quit

4. R3 配置(区域 1) ​

<Huawei> system-view
[Huawei] sysname R3
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 23.1.1.3 24
[R3-GigabitEthernet0/0/0] quit
[R3] interface LoopBack 0
[R3-LoopBack0] ip address 3.3.3.3 32
[R3-LoopBack0] quit
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 1
[R3-ospf-1-area-0.0.0.1] network 23.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1] network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.1] quit
[R3-ospf-1] quit

5. 扩展配置 ​

静默接口(只通告网段、不收发协议报文,用于防环口与用户网段):

[R1] ospf 1
[R1-ospf-1] silent-interface LoopBack 0

修改接口开销与参考带宽(参考带宽全网必须一致):

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ospf cost 10
[R1-GigabitEthernet0/0/0] quit
[R1] ospf 1
[R1-ospf-1] bandwidth-reference 1000

引入外部路由(R3 引入静态,路由器变为 ASBR):

[R3] ip route-static 100.1.1.0 24 NULL0
[R3] ospf 1
[R3-ospf-1] import-route static

区域 MD5 认证(同一区域所有路由器配置一致才能建立邻居):

[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] authentication-mode md5 1 cipher Huawei@123
[R2] ospf 1
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] authentication-mode md5 1 cipher Huawei@123

向 OSPF 域下发默认路由(加 always 可在自身无默认路由时仍下发):

[R2] ospf 1
[R2-ospf-1] default-route-advertise always

八、验证与预期结果 ​

1. 常用验证命令 ​

命令作用
display ospf peer查看邻居详细状态(Full 为邻接建立)
display ospf peer brief邻居简表(区域、RID、状态)
display ospf lsdb查看链路状态数据库
display ip routing-table protocol ospf查看 OSPF 路由
display ospf interface查看接口 OSPF 参数(DR、优先级、开销)
display ospf routing查看 OSPF 计算出的路由

2. R2 邻居预期输出 ​

[R2] display ospf peer brief

 Area Id         Router ID       Neighbor IP     State
 0.0.0.0         1.1.1.1         12.1.1.1        Full
 0.0.0.1         3.3.3.3         23.1.1.3        Full

3. R1 路由表预期输出(区域间路由标记 OSPF IA) ​

[R1] display ip routing-table protocol ospf

Destination/Mask    Proto   Pre  Cost   NextHop         Interface
    3.3.3.3/32      OSPF    10   2      12.1.1.2        GE0/0/0
   23.1.1.0/24      OSPF    10   2      12.1.1.2        GE0/0/0

R1 到 3.3.3.3 的开销为 2:R1-R2 以太链路开销 1,R2-R3 链路开销 1,出接口开销累加。

4. 连通性验证 ​

[R1] ping -a 1.1.1.1 3.3.3.3
  --- 3.3.3.3 ping statistics ---
  5 packet(s) transmitted, 5 packet(s) received, 0.00% packet loss

5. 故障切换与收敛观察 ​

[R1] display ospf peer
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] shutdown
[R1-GigabitEthernet0/0/0] quit
[R1] display ip routing-table protocol ospf

链路故障后 LSA 触发泛洪,OSPF 在秒级完成重新收敛(有 SPF 抑制计时,默认两次计算间隔约 5 秒)。

九、排错思路 ​

现象可能原因排查命令
邻居卡在 Init只收到单向 Hello:ACL 拦截、对方未配 OSPFdisplay ospf peer / display ospf error
邻居卡在 ExStart/Exchange接口 MTU 不一致display ospf interface
邻居无法建立RID 冲突、区域号不一致、认证不一致、广播网掩码不一致、Hello/Dead 计时器不一致display current configuration
路由缺失network 反掩码写错、silent-interface 误用display ospf interface
区域间路由不通非骨干区域未与区域 0 相连display ospf brief
外部路由缺失ASBR 未配置 import-route 或被特殊区域过滤display ospf lsdb

排错三步法:先查接口(IP/掩码/ospf 使能)→ 再查邻居(display ospf peer)→ 最后查 LSDB 与路由(display ospf lsdb、display ip routing-table)。

十、面试高频问答 ​

  1. OSPF 与 RIP 的区别? 链路状态 vs 距离矢量;开销 vs 跳数;触发增量更新 vs 周期全表;可分区域大规模组网 vs 15 跳小网络。
  2. OSPF 用 TCP 还是 UDP? 都不用,直接承载在 IP 上,协议号 89,自身通过 LSAck 机制保证可靠。
  3. 邻居与邻接的区别? 2-Way 即邻居;同步完 LSDB 到 Full 才是邻接;广播网中 DROther 之间只建邻居不建邻接。
  4. DR/BDR 怎么选? 优先级大者优先,相同时 Router ID 大者优先;DR 不可抢占,BDR 接替 DR 不重新选举。
  5. OSPF 为什么收敛快? 拓扑变化触发 LSA 增量泛洪,而非周期性全表更新;收到 LSA 后立即计算(受 SPF 抑制间隔约束)。
  6. 五类 LSA 分别谁产生? 1 类每台路由器、2 类 DR、3 类 ABR、4 类 ABR(描述 ASBR 位置)、5 类 ASBR、7 类 NSSA 的 ASBR。
  7. 为什么非骨干区域必须连区域 0? 区域间路由计算采用"距离矢量"方式,骨干区域是所有区域间路由的必经中转,防止区域间环路。
  8. OSPF 邻居建立的关键一致项? Hello/Dead 计时器、区域号、认证、网段掩码(广播网)、MTU(DD 协商阶段),RID 不能冲突。

十一、记忆口诀 ​

  • 报文五类:Hello 问好,DD 报单,LSR 要货,LSU 发货,LSAck 签收;
  • 状态七步:初见 Down、听见 Init、对视 2-Way、谈价 ExStart、清点 Exchange、补货 Loading、成交 Full;
  • LSA 五类:一类人人有,二类 DR 造,三类出区域,四类寻 ASBR,五类进外部,七类 NSSA 变五类;
  • 邻居五一致:计时器一致、区域一致、认证一致、掩码一致(广播网)、网段一致;
  • 角色三兄弟:区域内跑 1/2 类,ABR 搬 3 类,ASBR 引 5 类。