视频版讲解>>>>>>>>>>>>>>>>>>>OSPF最短路径树构建与路由计算练习(一)
在 OSPF 协议的学习中,"纸上谈兵" 不如 "实战推演"------ 尤其是以特定路由器为主视角,从 LSA(链路状态通告)解析到 SPF 树绘制,再到路由表验证的全流程,更是理解 OSPF 路由计算逻辑的关键。本文将以 R1 为核心视角,结合设备实操,一步步拆解 SPF 树构建细节,带你吃透 OSPF 最短路径计算的底层逻辑。
一、前期铺垫:明确网络环境与 DR 身份
在绘制 SPF 树前,需先理清网络拓扑与核心参数 ------ 这直接决定了 LSA 的生成规则与 SPF 树的拓扑结构。
1.1 核心网络拓扑
本次实战的网络包含 2 个关键网段,4 台路由器(R1、R2、R3、R4),拓扑特性如下:
• 广播型网段(10.1.123.0/24):连接 R1、R2、R3,网络类型为默认以太网(需选举 DR/BDR),是 SPF 树的 "核心交汇点";
• 点到点网段(10.1.34.0/24):仅连接 R3 与 R4,默认 PPP 模式(无需 DR/BDR),属于 "分支网段"。
1.2 验证 R3 的 DR 身份
OSPF 广播型网段的 DR(指定路由器)是二类 LSA 的唯一生成者,也是 SPF 树中 "伪节点" 的载体,必须优先确认。 由于设备启动顺序为 "先启动 R3",根据 OSPF DR 选举规则(优先级默认 1,先启动设备优先),R3 应成为 10.1.123.0/24 网段的 DR。通过设备命令验证: 进入 R3 的 G0/0/0 接口(属于广播网段),执行display ospf interface
,截图中清晰显示 "Interface State: DR",且 DR IP 为 10.1.123.3(R3 的接口 IP),确认 DR 身份无误。

二、SPF 树绘制全流程(R1 主视角)
SPF 树的绘制逻辑是 "从 R1 自身出发,逐台解析 LSA 信息,先标拓扑节点,再挂路由信息"------ 每一步都需对照设备 LSA 截图,确保数据准确。
2.1 第一步:解析 R1 自身的一类 LSA,确定初始节点
R1 视角下,最初仅知晓自身的链路状态,需先查看 R1 生成的一类 LSA(LSA ID=R1 的 Router ID:1.1.1.1)。 执行display ospf lsdb router 1.1.1.1
,关键信息如下:
• Transit Network(拓扑信息):描述 R1 与广播网段的连接,Link ID=10.1.123.3
(DR 的接口 IP,即 "伪节点" 标识),Link Data=10.1.123.1
(R1 的接口 IP),Metric=1
(R1 到 DR 的出接口开销);
• Stub Network(路由信息):描述 R1 的环回网段(1.1.1.1/32),Metric=0
(后续挂载路由用,暂不关注)。
基于此,绘制初始 SPF 树节点:
1.标注 "根节点 R1"(黑色,Router ID:1.1.1.1);
2.标注 "伪节点 10.1.123.3"(红色,代表广播网段的 DR);
3.用黑色实线连接 R1 与伪节点,蓝色标注链路开销 = 1(R1 到 DR 的出接口开销)。

2.2 第二步:解析二类 LSA,补充广播网段节点
二类 LSA 由 DR(R3)生成,LSA ID=DR 的接口 IP(10.1.123.3),作用是 "枚举广播网段内所有路由器"。 执行display ospf lsdb network 10.1.123.3
,截图中 "Attached Routers" 字段显示 3 个 Router ID:1.1.1.1(R1)、2.2.2.2(R2)、3.3.3.3(R3)。
此时 R1 已在树中,需补充另外两个节点:
1.在伪节点右侧标注 "R2(2.2.2.2)""R3(3.3.3.3)"(黑色);
2.用黑色实线连接伪节点与 R2、R3,暂时标注 "开销 =?"(后续通过 R2、R3 的一类 LSA 补充)。

2.3 第三步:解析 R2 的一类 LSA,完善链路开销
查看 R2 生成的一类 LSA(LSA ID=2.2.2.2),执行display ospf lsdb router 2.2.2.2
,截图中 Transit Network 字段显示:Link ID=10.1.123.3
(伪节点),Link Data=10.1.123.2
(R2 的接口 IP),Metric=1
(R2 到 DR 的出接口开销)。
完善 SPF 树:在伪节点到 R2 的链路上,蓝色标注开销 = 1。

2.4 第四步:解析 R3 的一类 LSA,扩展点到点网段
R3 的一类 LSA 包含两个网段的拓扑信息,执行display ospf lsdb router 3.3.3.3
,截图中关键字段如下:
• Transit Network:Link ID=10.1.123.3
(伪节点),Metric=1
(R3 到自身伪节点的开销,补充到 SPF 树);
• Point-to-Point:Link ID=4.4.4.4
(R4 的 Router ID),Link Data=10.1.34.3
(R3 的接口 IP),Metric=48
(R3 到 R4 的出接口开销)。
扩展 SPF 树:
1.在伪节点到 R3 的链路上,蓝色标注开销 = 1;
2.在 R3 右侧标注 "R4(4.4.4.4)"(黑色);
3.用黑色实线连接 R3 与 R4,蓝色标注开销 = 48。

2.5 第五步:解析 R4 的一类 LSA,完成拓扑闭环

查看 R4 生成的一类 LSA(LSA ID=4.4.4.4),执行display ospf lsdb router 4.4.4.4
,截图中 Point-to-Point 字段显示:Link ID=3.3.3.3
(R3 的 Router ID),Metric=48
(R4 到 R3 的出接口开销)。
完善 SPF 树:在 R3 到 R4 的链路上,补充标注 "R4 侧开销 = 48",确保双向链路开销一致,拓扑闭环完成。
三、挂载路由信息,推导 R1 的 OSPF 路由表
SPF 树的拓扑节点标注完成后,需将各设备的 "路由信息"(来自 LSA 的 Stub Network 字段)挂载到对应节点,再计算 R1 到各网段的 "总开销"(仅累加 R1 的出接口开销)。
3.1 路由信息挂载(基于 LSA 截图)
从各设备的一类 LSA 与二类 LSA 中提取路由信息,挂载到对应节点:
• R1 节点:1.1.1.1/32(Metric=0,来自 R1 一类 LSA);
• 伪节点:10.1.123.0/24(Metric=0,来自二类 LSA);
• R2 节点:2.2.2.2/32(Metric=0,来自 R2 一类 LSA);
• R3 节点:3.3.3.3/32(Metric=0)、10.1.34.0/24(Metric=0,均来自 R3 一类 LSA);
• R4 节点:4.4.4.4/32(Metric=0,来自 R4 一类 LSA)。
3.2 计算 R1 到各网段的总开销
OSPF 总开销计算规则:仅累加 R1 的出接口开销,邻居的入接口开销不计入。计算结果如下:

3.3 验证 R1 的实际路由表
执行display ip routing-table protocol ospf
查看 R1 的 OSPF 路由表,截图中显示:
• 到 2.2.2.2/32、3.3.3.3/32 的路由开销 = 1,到 4.4.4.4/32 的开销 = 49,与计算结果完全一致;
• 10.1.123.0/24 网段优先显示直连路由(直连优先级 0>OSPF 优先级 10),但 OSPF 路由的开销仍为 1(可通过display ospf routing
查看)。
四、实战总结:3 个关键知识点
1.DR 与伪节点是 SPF 树的 "简化器":DR 生成的二类 LSA 将广播网段 "多对多" 的复杂连接,简化为 "伪节点一对多" 的结构,大幅降低 SPF 算法的计算量;
2.LSA 是 SPF 树的 "数据源":一类 LSA 提供设备的拓扑与路由细节,二类 LSA 补充广播网段的节点列表,二者结合才能完整还原全网链路状态;
3.开销计算只看 "主视角的出接口":推导路由总开销时,仅需累加主视角路由器(如 R1)的出接口开销,邻居的入接口开销不影响最终结果 ------ 这是避免计算错误的核心原则。
通过本次实战,从 LSA 解析到 SPF 树绘制,再到路由表验证,每一步都有设备数据支撑,可帮助你真正吃透 OSPF 最短路径计算的逻辑,为后续排查 OSPF 路由故障(如路由缺失、开销异常)打下坚实基础。