三张表讲透 OSPF:邻居表、拓扑表、路由表的区别

2026年01月23日/ 浏览 8

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

OSPF 是企业网络中最常用的动态路由协议。

可一提到它的“三张表”——邻居表、拓扑表、路由表,很多人就懵了:

它们是怎么生成的?有什么区别?哪张表决定数据包转发?为什么邻居起来了,路由却没有?

别急。今天用三张表 + 三个命令 + 一张流程图,带你彻底搞懂 OSPF 的工作逻辑。

一、先看全景

[邻居表]

↓ 发送 Hello 建立关系

[拓扑表]

↓ 运行 SPF 算法计算最短路径

[路由表]

↓ 指导数据包转发

一句话总结

邻居表:和谁“认识”拓扑表:全网“地图”路由表:最终“导航指令”

二、第一张表:邻居表

作用:

记录本设备已建立邻接关系的 OSPF 路由器。

生成过程:

接口启用 OSPF 后,开始发送 Hello 报文

收到对方 Hello,检查参数是否匹配:

区域 ID(Area ID)认证类型与密码Hello/Dead 间隔网络类型(广播、点对点等)

匹配 → 进入 Init → 2-Way → 若需同步LSA,则进入 ExStart → Exchange → Full

查看命令(华为/H3C):

display ospf peer

输出关键字段:

⚠️ 注意:

State 为 2-Way 不一定错(如广播网络中的DROther之间)只有 Full 状态才会交换完整LSA

✅ 核心要点:

邻居表是 OSPF 的“社交圈”

邻居起不来?查 Hello 参数、网络类型、物理连通性

三、第二张表:拓扑表

别名:

LSDB(Link-State Database)

链路状态数据库

作用:

存储本区域所有路由器生成的 LSA(链路状态通告),拼出一张完整的网络拓扑图。

生成过程:

邻居进入 Full 状态后,开始交换 DBD(数据库描述报文)

通过 LSR → LSU → LSAck 交互,同步 LSA

所有 LSA 存入 LSDB,形成拓扑表

查看命令:

display ospf lsdb

输出示例:

Type : Router

Ls id : 1.1.1.1

Adv rtr : 1.1.1.1

Seq : 8000000a

Checksum : 0x5a8c

Link count: 3

LSA 类型简析:

✅ 核心要点:

拓扑表是 OSPF 的“上帝视角”

同一区域内的所有路由器,LSDB 必须完全一致

查看 lsdb 是否同步,是排错的关键

四、第三张表:路由表——“数据包的导航指令”

作用:

存储最终的路由条目,指导数据包如何转发。

生成过程:

OSPF 将 LSDB 作为输入

运行 SPF 算法(Dijkstra 算法)

计算从本路由器到全网每个网段的最短路径树

将最优路径写入路由表

查看命令:

display ip routing-table protocol ospf

输出示例:

Destination/Mask Proto Pre Cost NextHop Interface

192.168.10.0/24 OSPF 10 1001 10.1.1.2 GigabitEthernet0/0/1

192.168.20.0/24 OSPF 10 2000 10.1.2.2 GigabitEthernet0/0/2

关键字段:

Proto:路由协议来源(OSPF)

Pre:管理距离(华为默认10)

Cost:OSPF 开销(基于带宽)

NextHop:下一跳

Interface:出接口

✅ 核心要点:

路由表是 SPF 算法的“输出结果”

数据包转发只看路由表,不看邻居表或拓扑表

即使邻居 Full、LSDB 同步,如果 SPF 计算失败,路由也不会生成

五、三张表对比总结表

六、经典问题解析

❓ 问题1:邻居是 Full,但路由没有?

可能原因

区域类型不匹配(如一边是 Stub,一边是普通区域)

网络类型不一致(如一边是 Broadcast,一边是 P2P)

过滤策略(filter-policy)阻止了路由下发

SPF 计算异常(极少)

✅ 排错命令:display ospf lsdb 看是否有对方的 LSA

❓ 问题2:路由表里有路由,但 ping 不通?

说明:OSPF 表现正常,问题出在:

下一跳不可达(ARP 学不到)

反向路由缺失(对端没回OSPF)

ACL/防火墙拦截

MTU 不匹配导致分片失败

✅ OSPF 只负责“我知道怎么去”,不保证“一定能通”

❓ 问题3:为什么 OSPF 路由的 Cost 不是直连带宽算的?

OSPF Cost = 100Mbps / 接口带宽(华为默认参考带宽)

但可手动修改:

interface GigabitEthernet0/0/1

ospf cost 10

或全局修改参考带宽:

ospf 1

bandwidth-reference 1000 # 以1G为基准

七、总结:三句话记住 OSPF 工作流程

邻居表 → 拓扑表 → 路由表Hello 交朋友,LSA 画地图,SPF 算路径

邻居起不来?→ 查物理、IP、Hello 参数

LSDB 不一致?→ 查区域、认证、网络类型

路由没生成?→ 查 SPF、过滤策略、管理距离

搞懂这三张表,你就掌握了 OSPF 的“大脑”。

原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

picture loss