📘 OSPF 第二阶段实验笔记:LSA与链路状态数据库(LSDB)

适用场景:三台华为路由器(R1、R2、R3)运行OSPF,分为两个区域(Area 0 和 Area 1),观察区域内路由(O)和区域间路由(O IA)是如何生成的。


一、实验拓扑与IP规划(三台设备,双区域)

设备 接口 IP地址/掩码 所属OSPF区域 说明
R1 G0/0/0 10.0.12.1/24 Area 0 连接R2
R1 Loopback 0 1.1.1.1/32 Area 0 模拟R1自己带的一个“终端网段”
R2 G0/0/0 10.0.12.2/24 Area 0 连接R1
R2 G0/0/1 10.0.23.2/24 Area 1 连接R3
R2 Loopback 0 2.2.2.2/32 不宣告(仅用于Router ID) 仅用于标识
R3 G0/0/1 10.0.23.3/24 Area 1 连接R2
R3 Loopback 0 3.3.3.3/32 Area 1 模拟R3自己带的一个“终端网段”

连线方式:

  • R1的G0/0/0 直连 R2的G0/0/0
  • R2的G0/0/1 直连 R3的G0/0/1

二、核心概念铺垫(必须先搞懂这三个词)

术语 白话解释 类似物
LSA(链路状态通告) 每台路由器把自己“看到”的网段,写成一条“朋友圈”发出去。 相当于每个人在群里发一条消息:“我这里有网段X,连接方式Y。”
LSDB(链路状态数据库) 所有路由器收到的LSA集合,相当于收集了全网的“朋友圈”。 相当于一个群聊记录,里面存着所有人发的地图碎片。
SPF算法(最短路径树) 每台路由器以自己的Router ID为根,用LSDB里的信息算出一棵最短路径树,得出路由表。 相当于你看着群聊里的所有地图碎片,自己拼出一张完整地图,并标出到每个点最近的路。

OSPF路由表中的两种标记(考试必考):

  • O(区域内路由):目标网段在同一区域内,直接计算得出,优先级最高。
  • O IA(区域间路由):目标网段在其他区域,由ABR(区域边界路由器)翻译后发过来。

三、配置步骤(每一条命令都带白话解释)

第一步:R1 基础配置(接口IP + Loopback)

1
2
3
4
5
6
7
8
9
10
11
12
13
<Huawei> system-view
[Huawei] sysname R1

// 配置物理接口
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 10.0.12.1 255.255.255.0
[R1-GigabitEthernet0/0/0] undo shutdown
[R1-GigabitEthernet0/0/0] quit

// 配置环回口(Loopback接口是永远UP的逻辑接口,非常适合用来模拟PC网段或作为Router ID)
[R1] interface LoopBack 0
[R1-LoopBack0] ip address 1.1.1.1 255.255.255.255 // 注意:掩码是32位,代表只这个单个IP
[R1-LoopBack0] quit
命令 解释
interface LoopBack 0 环回口是设备内部的虚拟接口,只要设备开机它就永远UP,永不down。
ip address 1.1.1.1 255.255.255.255 255.255.255.255(即/32)表示只宣告这一个IP,不包含任何其他地址。

第二步:R1 启动 OSPF 并宣告网段

1
2
3
4
5
6
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0 // 宣告环回口,通配符为0.0.0.0表示精确匹配这个IP
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] quit
参数 解释
network 1.1.1.1 0.0.0.0 通配符0.0.0.0表示“只匹配这一个IP”。因为环回口是/32,所以宣告时必须精确到这个IP,否则宣告不进去。

第三步:R2 基础配置(连接两个区域的桥头堡)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Huawei> system-view
[Huawei] sysname R2

// 配置连接R1的接口
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 10.0.12.2 255.255.255.0
[R2-GigabitEthernet0/0/0] undo shutdown
[R2-GigabitEthernet0/0/0] quit

// 配置连接R3的接口
[R2] interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1] ip address 10.0.23.2 255.255.255.0
[R2-GigabitEthernet0/0/1] undo shutdown
[R2-GigabitEthernet0/0/1] quit

// 配置环回口(只做Router ID,不宣告OSPF)
[R2] interface LoopBack 0
[R2-LoopBack0] ip address 2.2.2.2 255.255.255.255
[R2-LoopBack0] quit

第四步:R2 启动 OSPF(同时属于两个区域——关键配置!)

1
2
3
4
5
6
7
8
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255 // 把连接R1的网段放进Area 0
[R2-ospf-1-area-0.0.0.0] quit
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 10.0.23.0 0.0.0.255 // 把连接R3的网段放进Area 1
[R2-ospf-1-area-0.0.0.1] quit
[R2-ospf-1] quit
参数 解释
area 1 Area 0 是骨干区域,Area 1 是非骨干区域。OSPF规定:所有非骨干区域必须直接连接到Area 0。R2同时连接了两个区域,所以它自动成为 ABR(区域边界路由器)。

ABR(区域边界路由器)的作用:它会把Area 0里的路由“翻译”成Type 3 LSA,发给Area 1;同时把Area 1里的路由翻译后发给Area 0。相当于两个区域之间的“翻译官”。


第五步:R3 基础配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Huawei> system-view
[Huawei] sysname R3

[R3] interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1] ip address 10.0.23.3 255.255.255.0
[R3-GigabitEthernet0/0/1] undo shutdown
[R3-GigabitEthernet0/0/1] quit

[R3] interface LoopBack 0
[R3-LoopBack0] ip address 3.3.3.3 255.255.255.255
[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 10.0.23.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

四、第二阶段核心查看命令(让你亲眼看见“地图”)

1. 查看OSPF邻居状态(先确认邻居都起来了)

1
[R1] display ospf peer brief

预期输出:R1看到邻居是2.2.2.2,状态Full。R3看到邻居是2.2.2.2,状态Full。


2. 查看链路状态数据库(LSDB)—— 这是第二阶段最核心的命令

1
[R1] display ospf lsdb

输出解读(重点看Type列):

1
2
3
4
5
Type      LinkState ID   AdvRouter          Age  Len   Sequence   Metric
Router 1.1.1.1 1.1.1.1 10 36 80000001 0
Router 2.2.2.2 2.2.2.2 15 36 80000001 0
Network 10.0.12.2 2.2.2.2 12 32 80000001 0
Sum-Net 3.3.3.3 2.2.2.2 20 28 80000001 1
LSA类型 LinkState ID AdvRouter 白话解释
Router(Type 1) 1.1.1.1 1.1.1.1 这是R1发的“自我介绍”,说自己的Router ID是1.1.1.1。
Router(Type 1) 2.2.2.2 2.2.2.2 这是R2发的“自我介绍”。
Network(Type 2) 10.0.12.2 2.2.2.2 在广播网(以太网)中,DR(指定路由器)发的“网段描述”,告诉大家“10.0.12.x这个网段上连接了谁”。
Sum-Net(Type 3) 3.3.3.3 2.2.2.2 这是ABR(R2)发的“区域间汇总”LSA,告诉Area 0:“有个网段3.3.3.3在Area 1里,想来的话找我R2!”

观察实验:你在R1上敲display ospf lsdb看到Sum-Net 3.3.3.3,这就说明R2已经成功把Area 1的路由“翻译”给Area 0了。


3. 查看OSPF路由表(看O和O IA的区别)

1
[R1] display ospf routing

输出解读:

1
2
3
4
5
6
7
8
OSPF Process 1 with Router ID 1.1.1.1
Routing Tables

Destination Cost Type NextHop AdvRouter Area
10.0.12.0/24 1 Stub 10.0.12.1 1.1.1.1 0.0.0.0
1.1.1.1/32 0 Stub 1.1.1.1 1.1.1.1 0.0.0.0
10.0.23.0/24 2 Inter-area 10.0.12.2 2.2.2.2 0.0.0.0 // 注意这里!
3.3.3.3/32 3 Inter-area 10.0.12.2 2.2.2.2 0.0.0.0
字段 解释
Inter-area 代表O IA(区域间路由),说明这个网段不在本区域,是R2(ABR)转发过来的。
Cost(开销) 3.3.3.3的Cost为3(R1到R2的开销1 + R2到R3的开销1 + R3本地的开销1)。

4. 查看全局IP路由表(与你已有的静态路由知识对接)

1
[R1] display ip routing-table

你会看到:

1
2
3
4
10.0.12.0/24  Direct  0    0   10.0.12.1   G0/0/0
1.1.1.1/32 Direct 0 0 127.0.0.1 LoopBack0
10.0.23.0/24 OSPF 10 2 10.0.12.2 G0/0/0 // 注意Proto是OSPF,Pre是10
3.3.3.3/32 OSPF 10 3 10.0.12.2 G0/0/0 // 优先级10,胜过静态路由的60

关键结论:OSPF协议的优先级(Pre)是 10,你之前学的静态路由优先级是 60。这意味着OSPF学到的路由会覆盖静态路由(如果去往同一个目标的话),因为数值更小更优先。


五、第二阶段排错流程

❌ 场景1:在R1的LSDB里看不到Sum-Net 3.3.3.3(缺少区域间路由)

排查方向:

  • 检查R2是否确实是ABR:在R2上敲 display ospf brief,看 Border 字段是否显示 ABR。
  • 检查R3是否成功宣告了环回口:在R3上敲 display ospf interface LoopBack 0,看状态是否为UP,且在Area 1里。

❌ 场景2:OSPF路由表中出现了O路由,但display ip routing-table里没有

原因:华为VRP默认会优选直连路由和静态路由,但如果存在更优的OSPF路由(优先级10 > 静态60),它会覆盖。但如果出现缺省路由(0.0.0.0/0)冲突,检查是否开启了 preference 调整。

解决方法:在R1上敲 display ospf routing 确认OSPF是否计算出了该路由,再敲 display ip routing-table protocol ospf 查看OSPF路由是否被加载进全局表。

❌ 场景3:邻居建立卡在2-Way不动(DR选举未完成)

在广播网络中,OSPF需要选举DR(指定路由器)。如果多台设备互联在同一个交换网络,且Hello间隔一致但迟迟不进Full,检查是否强制配置了DR优先级为0(ospf dr-priority 0),这会导致该设备放弃竞选,从而延长选举时间。


六、第二阶段核心笔记总结(速记口诀)

关键词 白话记忆
LSDB 全网的“朋友圈消息汇总”
Type 1 LSA (Router) 每个人的“自我简介”
Type 2 LSA (Network) 广播域里的“网段介绍”
Type 3 LSA (Summary) ABR的“跨区域翻译件”
O vs O IA 前者是“本村的人”,后者是“隔壁村的人”
ABR 两个区域之间的“翻译官”