AIDC 学习日志 Day 3:OSPF Underlay 实验、故障排查与深入解析

AIDC 学习日志 Day 3:OSPF Underlay 实验、故障排查与深入解析tags: AIDC, 数据中心网络, Underlay, OSPF, ECMP, VRP, 故障排查, 实验

!abstract 本节概览

今天从理论进入实验思维,围绕 2 Spine、2 Leaf 的 OSPF Underlay,学习"接口状态 → 直连 IP → OSPF 邻居 → Loopback 路由 → ECMP → 故障收敛"的完整验证链条,并设计链路故障和 Cost 变化实验。

上一课:\[AIDC学习日志-第02天-Underlay路由设计]

一、今日学习目标与完成情况

  • 理解 OSPF Underlay 实验拓扑
  • 掌握物理接口、Loopback 和 /31 地址规划
  • 理解接口、直连、邻居、路由四层验证顺序
  • 掌握 VRP 下 OSPF Underlay 的配置逻辑
  • 验证 OSPF 邻居 Full 状态
  • 通过路由表识别 ECMP
  • 理解指定源地址 Ping 的验证作用
  • 设计单链路故障收敛实验
  • 设计修改 OSPF Cost 导致 ECMP 消失的实验
  • 在 eNSP、EVE-NG 或真实设备上完成实际输入和输出记录

!success 今日结论

理论和实验设计任务已完成。下一步重点是动手搭建拓扑、输入配置、保存设备输出,并对真实故障现象进行比对。

二、实验拓扑

text 复制代码
                 Spine1
                /      \
             Leaf1    Leaf2
                \      /
                 Spine2

连接关系:

text 复制代码
Leaf1 ↔ Spine1
Leaf1 ↔ Spine2
Leaf2 ↔ Spine1
Leaf2 ↔ Spine2

设计特点:

  • Leaf1 和 Leaf2 不直接连接;
  • Spine1 和 Spine2 不直接连接;
  • 每台 Leaf 连接两台 Spine;
  • Leaf1 到 Leaf2 存在两条潜在路径;
  • 两条路径等价时可以形成 ECMP。

三、地址规划

Loopback 地址

设备 Loopback0 作用
Spine1 1.1.1.1/32 稳定设备地址、OSPF Router ID
Spine2 2.2.2.2/32 稳定设备地址、OSPF Router ID
Leaf1 3.3.3.3/32 稳定设备地址、源地址、后续可作 VTEP
Leaf2 4.4.4.4/32 稳定设备地址、目标地址、后续可作 VTEP

物理点到点链路

链路 Spine 端 Leaf 端
Spine1---Leaf1 10.0.0.0/31 10.0.0.1/31
Spine2---Leaf1 10.0.0.2/31 10.0.0.3/31
Spine1---Leaf2 10.0.0.4/31 10.0.0.5/31
Spine2---Leaf2 10.0.0.6/31 10.0.0.7/31

记忆方法:

text 复制代码
Spine 端使用偶数地址
Leaf 端使用奇数地址

四、四层验证模型

今天明确了排障不能跳层。每次实验按以下顺序进行:

text 复制代码
1. 接口层:接口是否 Up
2. 直连 IP 层:相邻接口地址能否 Ping
3. OSPF 层:邻居是否达到 Full
4. 路由层:Loopback 路由和 ECMP 是否存在

如果直连 IP 不通,不应先判断 OSPF;如果邻居正常但没有 ECMP,应检查 Cost 和路由选择,而不是马上怀疑物理链路。

五、接口层验证

命令:

text 复制代码
display ip interface brief

关注:

  • 接口名称;
  • IP 地址;
  • Physical 状态;
  • Protocol 状态。

理想状态:

text 复制代码
up/up

常见判断:

状态 可能含义
up/up 物理层和协议层正常
down/down 链路断开、接口关闭或拓扑未连接
up/down 物理层通常正常,但协议层存在问题

六、直连 IP 层验证

Leaf1 连接 Spine1、Spine2 的地址分别为:

text 复制代码
Leaf1:10.0.0.1、10.0.0.3
Spine1:10.0.0.0
Spine2:10.0.0.2

Leaf1 执行:

text 复制代码
ping 10.0.0.0
ping 10.0.0.2

直连 Ping 失败时,优先检查:

  • 接口是否真的相连;
  • 接口是否 shutdown
  • IP 地址和掩码是否正确;
  • 是否切换为三层接口;
  • 对端接口是否启用。

七、OSPF 邻居层验证

命令:

text 复制代码
display ospf peer brief

Leaf1 预期有两个邻居:

text 复制代码
1.1.1.1  Full
2.2.2.2  Full

Spine1 预期有两个邻居:

text 复制代码
3.3.3.3  Full
4.4.4.4  Full

这里显示的通常是邻居 Router ID,不一定是建立邻居的物理接口地址。

OSPF 状态简化

text 复制代码
Down       没有收到有效 Hello
Init       收到 Hello,但对方未确认自己
2-Way      双方发现彼此
ExStart    协商数据库同步
Exchange   交换数据库摘要
Loading    请求详细链路状态
Full       数据库同步完成

点到点 Leaf-Spine 链路的理想状态是 Full

八、VRP 配置示例

Leaf1

text 复制代码
system-view
sysname Leaf1

interface GE1/0/1
 undo portswitch
 ip address 10.0.0.1 255.255.255.254
 undo shutdown
 quit

interface GE1/0/2
 undo portswitch
 ip address 10.0.0.3 255.255.255.254
 undo shutdown
 quit

interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
 quit

ospf 1 router-id 3.3.3.3
 area 0
  network 10.0.0.0 0.0.0.1
  network 10.0.0.2 0.0.0.1
  network 3.3.3.3 0.0.0.0
 quit

Spine1

text 复制代码
system-view
sysname Spine1

interface GE1/0/1
 undo portswitch
 ip address 10.0.0.0 255.255.255.254
 undo shutdown
 quit

interface GE1/0/2
 undo portswitch
 ip address 10.0.0.4 255.255.255.254
 undo shutdown
 quit

interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
 quit

ospf 1 router-id 1.1.1.1
 area 0
  network 10.0.0.0 0.0.0.1
  network 10.0.0.4 0.0.0.1
  network 1.1.1.1 0.0.0.0
 quit

Spine2 配置逻辑

text 复制代码
GE1/0/1:10.0.0.2/31
GE1/0/2:10.0.0.6/31
LoopBack0:2.2.2.2/32
Router ID:2.2.2.2
text 复制代码
network 10.0.0.2 0.0.0.1
network 10.0.0.6 0.0.0.1
network 2.2.2.2 0.0.0.0

Leaf2 配置逻辑

text 复制代码
GE1/0/1:10.0.0.5/31
GE1/0/2:10.0.0.7/31
LoopBack0:4.4.4.4/32
Router ID:4.4.4.4
text 复制代码
network 10.0.0.4 0.0.0.1
network 10.0.0.6 0.0.0.1
network 4.4.4.4 0.0.0.0

!note

不同 CloudEngine 型号和 VRP 版本的接口名称、三层口默认状态和命令支持可能不同。部分设备默认已是三层接口,不需要 undo portswitch

九、Loopback 路由与 ECMP 验证

Leaf1 执行:

text 复制代码
display ip routing-table 4.4.4.4

重点观察:

  • 目标前缀是否为 4.4.4.4/32
  • 路由来源是否为 OSPF;
  • 是否存在两个等价下一跳;
  • 两条路径的 Cost 是否相同。

理想结果抽象为:

text 复制代码
4.4.4.4/32
  via 10.0.0.0  → Spine1
  via 10.0.0.2  → Spine2

两个 OSPF 邻居为 Full 不代表一定形成 ECMP;只有到同一目标的多个等价最优下一跳同时进入路由表,才能确认 ECMP。

十、指定源地址 Ping

Leaf1 执行:

text 复制代码
ping -a 3.3.3.3 4.4.4.4

验证链路:

text 复制代码
Leaf1 Loopback 3.3.3.3
        ↓
Leaf2 Loopback 4.4.4.4
        ↓
返回 Leaf1 Loopback

失败时按顺序检查:

text 复制代码
Leaf1 是否有 4.4.4.4/32
Leaf2 是否有 3.3.3.3/32
两端 Loopback 是否 Up
OSPF 是否发布 Loopback
是否有 ACL 或策略阻断

十一、故障实验一:关闭一条链路

在 Leaf1 上关闭连接 Spine1 的接口:

text 复制代码
system-view
interface GE1/0/1
 shutdown

预期结果:

  1. GE1/0/1 变为 Down;
  2. Leaf1 与 Spine1 的 OSPF 邻居消失;
  3. Spine2 邻居仍保持 Full
  4. 4.4.4.4/32 不会消失;
  5. 经 Spine1 的下一跳被删除;
  6. 只保留经 Spine2 的下一跳;
  7. 指定源 Ping 仍可能成功。

故障前:

text 复制代码
4.4.4.4/32
  via 10.0.0.0
  via 10.0.0.2

收敛后:

text 复制代码
4.4.4.4/32
  via 10.0.0.2

恢复接口:

text 复制代码
interface GE1/0/1
 undo shutdown

等待邻居重新达到 Full 后,ECMP 可能恢复。

十二、故障实验二:修改 OSPF Cost

恢复链路后,在 Leaf1 的 GE1/0/2 上设置更高 Cost:

text 复制代码
system-view
interface GE1/0/2
 ospf cost 100

可能出现:

text 复制代码
经 Spine1 总 Cost:20
经 Spine2 总 Cost:110

此时:

  • 两个 OSPF 邻居仍可能为 Full
  • 但高 Cost 路径不是等价最优路径;
  • 路由表可能只保留经 Spine1 的下一跳;
  • ECMP 消失。

查看:

text 复制代码
display ip routing-table 4.4.4.4

恢复默认 Cost:

text 复制代码
interface GE1/0/2
 undo ospf cost

十三、课堂问答与批改

问题:两个邻居均为 Full,但目标路由只有一个下一跳,能否认定 Spine2 故障?

我的回答:

说明 OSPF 协议层没有问题,可能出现物理层问题。

批改:不能直接认定 Spine2 故障。邻居为 Full 说明邻接和数据库同步正常,基础物理/IP 通常也正常。应检查 Cost、ECMP 路径数量限制和路由策略。

问题:应该先检查什么?

我的回答:

应该先检查是不是因为 Cost 不是等价的。

批改:正确。应比较到同一目标 4.4.4.4/32 的完整路径总 Cost,而不是只看本地一个接口的 Cost。

问题:Cost 更高为什么邻居仍是 Full?

我的回答:

Cost 不影响 OSPF 完成所有链接,只影响 ECMP 选路。

批改:核心理解正确。更准确地说,Cost 影响最优路径选择和是否形成 ECMP,不影响邻居能否完成数据库同步。

问题:关闭 Leaf1 到 Spine1 后,目标路由会消失吗?

我的回答:

不会消失,只是 OSPF 路径逐渐消失,还能通过 Spine2 路径发现。

批改:结论正确。应表述为经 Spine1 的路径和下一跳被撤销,但 4.4.4.4/32 仍通过 Spine2 保留;不是目标路由逐渐消失。

十四、今天的排障思维

text 复制代码
接口 Up?
  ↓
直连 IP 可达?
  ↓
OSPF 邻居 Full?
  ↓
目标 Loopback 路由存在?
  ↓
是否有多个等价下一跳?
  ↓
Cost 是否相等?
  ↓
去程和回程是否都存在?
  ↓
最后检查 ACL、策略和设备限制

十五、仍需实践和巩固

!question 保留的疑问

  1. 真实设备上 display ip routing-table 如何完整显示两个 ECMP 下一跳;
  2. OSPF 邻居从 Full 到失效的实际时间;
  3. 接口直接 Down 与只丢失 Hello 时的收敛差异;
  4. OSPF Hello、Dead、LSA、SPF 和 BFD 的具体时间关系;
  5. OSPF Cost 的默认计算、参考带宽调整和工程规划;
  6. 关闭链路后指定源 Ping 的实际丢包和恢复情况;
  7. VRP 不同 CloudEngine 型号对 undo portswitch/31 和 OSPF 命令的差异;
  8. ECMP 哈希如何将不同业务流分配到不同链路。

十六、OSPF 深入与 Underlay 工程化

今天继续学习 OSPF 邻居状态机、Hello/Dead Timer、Cost、LSA、LSDB、网络类型和 OSPF/BGP Underlay 选择。本部分与前面的实验内容同属第 3 天,不拆分新日志。

OSPF 邻居状态机

text 复制代码
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
  • Down:尚未收到有效 Hello;
  • Init:收到 Hello,但对端尚未确认自己;
  • 2-Way:双方确认彼此存在;
  • ExStart:协商数据库同步主从;
  • Exchange:交换数据库摘要;
  • Loading:请求缺少的详细 LSA;
  • Full:链路状态数据库同步完成。

当前点到点 Leaf-Spine Underlay 的目标状态是 Full

Hello、Dead Timer 与收敛

常见默认值:

text 复制代码
Hello:10 秒
Dead:40 秒

接口直接 Down 时通常可立即感知;接口仍 Up 但 Hello 被丢弃时,需要等待 Dead Timer。总收敛时间还包括 LSA 生成与泛洪、SPF 计算、路由表和转发表更新。

我的疑问

OSPF 重新计算路径是 60 秒吗?

结论:不是固定 60 秒,实际时间取决于接口状态、Hello/Dead、LSA、SPF 和设备配置。后续还需学习 BFD。

OSPF Cost 与参考带宽

OSPF 比较到同一目标的完整路径总 Cost:

text 复制代码
路径 A:10 + 10 = 20
路径 B: 5 + 15 = 20

两条路径可以形成 ECMP。简化公式:

text 复制代码
Cost = 参考带宽 ÷ 接口带宽

若参考带宽太低,1G、10G、100G 可能都显示 Cost 1。工程中应统一调整参考带宽或手工配置:

text 复制代码
interface GE1/0/2
 ospf cost 100

网络类型和 Loopback

Leaf-Spine Underlay 通常使用三层点到点链路,不需要 DR/BDR。广播网络才重点涉及 DR/BDR 和 Type 2 LSA。

Loopback 通常使用 /32,代表单个精确逻辑地址,适合作为 Router ID、管理地址、BGP 邻居地址和 VXLAN VTEP 地址。Loopback 可以发布路由,但不需要与远端建立邻居。

LSA、LSDB、路由表和转发表

当前 Area 0 点到点 Underlay 中最核心的是 Type 1 Router LSA。

text 复制代码
LSA → LSDB → SPF 计算 → 路由表 → 转发表
  • LSDB:保存 OSPF 收集到的完整拓扑和 LSA 信息;
  • 路由表:SPF 计算后选出的最优路径;
  • 转发表:硬件实际使用的转发结果。
我的回答

Router LSA 是核心类型;LSDB 是获取可用路径、还没开始 SPF,路由表是已经下载好的可直接使用路径。

批改:核心方向正确。LSDB 更准确地说是完整拓扑数据库,不直接等于可用路径;SPF 根据 LSDB 计算后才将最优路径写入路由表。

Full 邻居但没有目标路由

应检查:

text 复制代码
display ospf interface
display ospf lsdb
display ospf routing
display ip routing-table 1.1.1.1
display current-configuration configuration ospf
我的回答

可能未配置 Loopback,或者 Loopback 未加入 OSPF;如果 LSA 存在但路由表没有,可能因 Cost 过高不是最优路由。

回答正确。还应排查路由策略、下一跳可达性、协议优先级和路由实例。

AIDC Underlay 为什么倾向单区域

原因包括:

  • 结构简单;
  • 避免复杂区域边界;
  • 便于 ECMP;
  • 便于自动化生成配置;
  • 故障排查路径清晰;
  • Loopback 和 VTEP 地址容易统一发布。

概括为:

text 复制代码
简单、可扩展、可自动化、路径一致
我的回答

结构简单,避免复杂的区域边界,便于 ECMP、自动化生成配置和故障排查,Loopback 与 VTEP 地址容易统一发布。

回答完整正确。

十七、OSPF 与 BGP Underlay 初步对比

OSPF Underlay

优点:配置直观、收敛机制容易理解、适合中小规模实验、便于从 HCIP 衔接。局限是超大规模下 LSDB/SPF 压力增大,路径策略与扩展能力不如 BGP 灵活。

BGP Underlay

典型形式:

text 复制代码
Leaf-Spine 之间建立 eBGP
Loopback 通过 BGP 发布

优点:路径控制强、扩展性好、适合大规模数据中心、与 EVPN Overlay 衔接自然、便于自动化。缺点是 AS、邻居、策略和路由属性更复杂。

初步选择原则:

text 复制代码
学习和中小型实验:OSPF Underlay
大规模生产 AIDC:常见 BGP Underlay
VXLAN EVPN 控制平面:通常使用 BGP EVPN

这不是说 BGP 绝对优于 OSPF,而是取决于规模、厂商、自动化和设计要求。

十八、今日综合练习与回答记录

  1. OSPF 邻居有几个关键步骤?

    • 我的回答:七个关键步骤。
    • 结论:正确,顺序为 Down → Init → 2-Way → ExStart → Exchange → Loading → Full
  2. 接口 up/up 但邻居 Down 的原因?

    • 我的回答:Area ID 不同、Hello 时间不一致、OSPF 未启用。
    • 结论:正确;还可检查认证、网络类型、Router ID 冲突、MTU 和 ACL。
  3. 第一跳 Cost 更小能否直接判断路径更优?

    • 我的回答:不能,要看总路径。
    • 结论:正确,必须比较完整路径总 Cost。
  4. 为什么 Loopback 使用 /32

    • 我的回答:更精细,只有一个接口地址。
    • 结论:方向正确;准确说是 /32 表示单个精确主机前缀,代表设备的单一逻辑身份。
  5. Full 邻居但目标 Loopback 路由不存在检查什么?

    • 我的回答:未配置 Loopback,或未加入 OSPF;可能哈希了,不一定是问题。
    • 结论:前两点正确。哈希只影响已有 ECMP 路径的具体流量,不解释目标路由完全不存在。

十九、仍需实践和巩固

!question 后续实验重点

  1. OSPF 七个状态在真实设备输出中的表现;
  2. Hello、Dead、LSA、SPF 和 BFD 的实际时间关系;
  3. VRP 中参考带宽的全局调整方法;
  4. OSPF 网络类型和 DR/BDR 的区别;
  5. 被动接口的 VRP 具体配置;
  6. display ospf lsdb 与路由表的对应关系;
  7. BGP Underlay 的 eBGP 邻居和 Loopback 发布配置。

二十、第三天最终总结与下一课

本文件现已合并第 3 天的 OSPF Underlay 实验、故障排查、OSPF 深入、LSA/LSDB 和 OSPF/BGP 对比内容。

text 复制代码
地址规划
→ VRP 配置
→ OSPF 邻居
→ LSA/LSDB
→ SPF 与路由表
→ ECMP
→ 指定源 Ping
→ Cost 调整
→ 链路故障收敛
→ OSPF 与 BGP Underlay 选择

明天开始:BGP Underlay

  • BGP AS 和 eBGP 邻居
  • Leaf-Spine 为什么常用 eBGP Underlay
  • Loopback 如何通过 BGP 发布
  • BGP 路由选择属性
  • eBGP 与 OSPF Underlay 的差异
  • BGP 如何衔接 VXLAN EVPN

后续内容继续追加到本文件,不新建第 4 天日志。

相关推荐
星恒讯工业路由器2 小时前
IP地址冲突:成因、影响与工业网络中的应对策略
网络·信息与通信·ip地址冲突·工业网络·网络故障排查·ip-mac绑定
深圳恒讯2 小时前
CN2 GIA和CN2 GT的区别
运维·服务器·网络
橙-极纪元2 小时前
把docker的镜像文件从一台服务器中,迁移至另一台服务器
服务器·docker·容器
盗理者3 小时前
AI Agent 技能分享|从零实现一个 MCP Server,让 AI Agent 安全调用内部系统
网络·人工智能·安全·agent
ydyd202604213 小时前
设备OEE怎么提升?数据采集+分析优化的完整方案
java·服务器·前端
国科安芯3 小时前
详解ADC 规则组外部触发:CH2、CH3 与 TRGO2
运维·网络·单片机·嵌入式硬件·mcu·系统架构
Hello.Reader3 小时前
REALITY 技术深度解析从 TLS 伪装、抗主动探测到 VLESS + XTLS Vision 完整实践
开发语言·php
便利店10243 小时前
以太网:局域网如何用 MAC 与交换机转发帧
网络·智能路由器·mac·以太网