Type1/2/3 LSA 整体分层结构 + 设计逻辑 + 实例
前置核心分层逻辑(先看懂大框架,所有困惑根源就在这两层划分)
OSPF LSA 存在两套完全独立的分类体系,互不干扰,这是很多人混淆的根本原因:
第一层:整条 LSA 的大类(外部分类,我们常说 1/2/3 类 LSA)
用来区分这条 LSA 整体是干嘛的 ,整条报文头部用 LS Type 标记:
- LS Type=1:Type1 路由器 LSA,描述单台路由器所有本地链路
- LS Type=2:Type2 网络 LSA,描述一整个广播网段
- LS Type=3:Type3 网络汇总 LSA,跨区域传递网段路由
第二层:单条 LSA 内部子分类(内部标记,Link Type / 网段类型 transNet/subNet)
是某一类 LSA 里面的内部字段,用来区分这条 LSA 内部包含的不同链路 / 网段类型:
- Type1 LSA 内部:每条链路子条目有
Link Type(1/2/3/4),区分点到点、广播接入、末梢网段、虚链路; - Type2/3 LSA 内部:会区分传输网段 transNet、末梢网段 subNet,用来辅助 SPF 计算路由。
为什么要设计两层分类?一句话总逻辑
- 外层大类(1/2/3 LSA) :做功能隔离 把「描述路由器链路」「描述广播网段」「跨区域传路由」三件事拆成三种独立报文,各司其职,互不干扰。
- 内部子类型(Link Type /transNet/subNet) :做细节区分 同一条 LSA 里会包含多种链路 / 网段,需要内部标记区分它们的作用,让 SPF 算法能正确解析拓扑、计算路由。
第一部分:Type1 LSA(路由器 LSA)完整结构 + 实例
1. 整体结构
整条 LSA = 【公共 LSA 头部】 + 【多条 Link 链路子条目(核心可变内容)】
1)公共头部(所有 LSA 通用) 关键字段:
- LS Type = 1 (标记这是 1 类 LSA)
- LS-ID = 生成该 LSA 路由器的 Router-ID(唯一标识是谁发的)
- Advertising Router = 本机 RID(和 LS-ID 一致)
2)可变内容:多条 Link 子条目
规则:路由器有几个宣告进 OSPF 的接口,就有几条 Link
每条 Link 固定 4 个字段,其中 Link Type 就是内部子分类:
- Link Type(内部子类型 1/2/3/4)
- Link ID(含义随 Link Type 变化)
- Link Data(IP 辅助信息)
- Metric(接口开销)
2. Type1 内部 4 种 Link Type(内部子分类)+ 实例
拓扑实例:AR2 RID=2.2.2.2
接口 1:GE0/0 10.0.13.2 接入广播网段(DR=10.0.13.1)
接口 2:LoopBack0 10.0.2.2/32 环回末梢网段
AR2 生成的 Type1 包含 2 条 Link:
Link1:GE0/0 接口,Link Type=2(接入广播网络 transNet 传输网段)
- Link Type=2:内部标记,代表本条链路连接广播 / NBMA 传输网段
- Link ID=10.0.13.1(DR 接口 IP)
- Link Data=10.0.13.2(本接口 IP)
- Metric=10
含义:我 AR2 这个接口连上了一个广播传输网段,该网段 DR 地址 10.0.13.1。
Link2:LoopBack0,Link Type=3(Stub 末梢网段 subNet)
- Link Type=3:内部标记,末梢子网,无 OSPF 邻居
- Link ID=10.0.2.2(网段地址)
- Link Data=255.255.255.255(掩码)
- Metric=0
含义:我本地有一个末梢子网 10.0.2.2/32。
Link Type=1(P2P 点对点传输网段 transNet)
场景:串口 P2P 链路,AR2 直连 AR3
Link Type=1,Link ID = 对端路由器 RID,属于传输网段,用来搭建拓扑。
3. Type1 内部区分 transNet/subNet 的作用
- transNet(传输网段):两端都有 OSPF 路由器,用来传递流量、搭建拓扑(Link Type=1/2);
- subNet(末梢子网):只有一端有路由器,没有邻居,仅本地网段(Link Type=3)
SPF 计算时,传输网段用来画拓扑树,末梢网段直接生成路由条目,必须靠内部标记区分。
第二部分:Type2 LSA(网络 LSA)完整结构 + 实例
1. 整体结构
整条 LSA = 【公共头部】 + 【网段信息 + 附属路由器列表】
公共头部关键字段:
- LS Type=2(标记 2 类 LSA)
- LS-ID=DR 接口 IP(唯一标识这个广播网段)
- Advertising Router=DR 的 RID
可变内部内容:
- Network Mask:该广播网段掩码
- Attached Router List:接入该网段、邻居 Full 的所有路由器 RID(包含 DR 自身)
2. 实例
广播网段 10.0.13.0/24,DR=AR1 RID=1.1.1.1
Type2 内部:
掩码 = 255.255.255.0
附属路由器清单:1.1.1.1、2.2.2.2、3.3.3.3
3. Type2 内部网段类型:固定为 transNet 传输网段
Type2 描述的广播网段是多个路由器互通的传输介质,所以统一归类为 transNet,没有 subNet。 作用:配合所有路由器 Type1 里 Link Type=2 的条目,拼接出完整广播域拓扑。
明明 Type2 已经能描述广播网段,为什么所有路由器还要在 Type1 里写 transNet(Link-Type2)?不是重复了吗?为什么缺一不可?
终极一句话
Type1(transNet)= 我个人站在这个网段里
Type2 = 这个网段整体有谁、掩码多少
只有 "个人报到 + 班级花名册" 拼在一起,OSPF 才能画出拓扑!缺一不可!
一、先纠正你误区:你以为是重复,其实是「两个维度的数据」
你现在的理解:
既然 Type2 已经把整个广播网段描述完了,还要 Type1 干嘛?
OSPF 真实逻辑:
Type2 只描述【网段本身】,不知道【谁连在网段上】
Type1 的 transNet 只描述【我连在这个网段】,不知道【网段整体信息】
两者单独任意一个,都无法算出拓扑。
定义对应
- Type1 内部 Link-Type2 = transNet(传输链路) 作用:单台路由器声明:我挂在这个广播网段上 只有个人视角
- Type2 LSA(网络 LSA) 作用:DR 声明:这个网段掩码多少、所有人是谁 只有全局网段视角
二、拿真实拓扑举例(手把手推演,你瞬间通透)
实验拓扑(纯广播网段)
bash
AR1(DR) 10.0.13.1
AR2 10.0.13.2
AR3 10.0.13.3
同一广播网段 10.0.13.0/24
1. 每台路由器的 Type1 都会写 transNet(Link-Type2)
AR2 的 Type1:
Link-Type=2(transNet 广播传输网段)
我 AR2,接入了 DR=10.0.13.1 的广播域
AR3 的 Type1:
Link-Type=2
我 AR3,接入了 DR=10.0.13.1 的广播域
AR1 (DR) 的 Type1:
Link-Type=2
我 AR1,接入了 DR=10.0.13.1 的广播域
👉 现在只有 Type1 的情况下,OSPF 看到的是:
- AR2 连了一个未知网段
- AR3 连了一个未知网段
- AR1 连了一个未知网段
OSPF 根本不知道:这三个人是同一个网段!
每台设备都像 "匿名网友",各自说自己上线了,但没有班级名单。
这就是只有 Type1 不行的原因
2. 现在加上 Type2 LSA(DR 生成)
Type2 内容:
- 网段掩码:255.255.255.0
- 所有成员:AR1、AR2、AR3
👉 现在 OSPF 终于匹配上了:
所有 Type1 里写的「DR=10.0.13.1」 全部挂到 Type2 这个统一广播节点下
最终拓扑还原:
一个广播网段 + 三台路由器挂在上面 ✅
三、反过来模拟:只有 Type2、没有 Type1 会怎样?(你疑惑的点)
你说:我感觉有 Type2 就够了,要 Type1 的 transNet 干嘛?
直接模拟后果:
Type2 告诉 OSPF:
这个班级有 AR1、AR2、AR3
但是!没有任何一台路由器的 Type1 声明自己连接网段
OSPF 会出现致命问题: 不知道路由器的接口开销、不知道路由器真实连接关系
核心致命点:
Type2 没有开销! Type2 不知道每个路由器到网段的 Cost 是多少!
而 Cost 在 Type1 的 transNet 里!
四、最核心原理(考试 / 工程 99% 人不懂)
Type1 transNet 独有信息:
- 接口开销 Metric
- 本端接口 IP
Type2 完全没有的字段:
- 没有开销
- 没有单点连接信息
所以:
Type2 只能画 "有哪些人" Type1 transNet 才能算 "路径开销、连通关系"


第三部分:Type3 LSA(网络汇总 LSA)完整结构 + 实例
1. 整体结构
整条 LSA = 【公共头部】 + 【网段路由信息】 公共头部关键字段:
- LS Type=3(标记 3 类 LSA)
- LS-ID = 需要传递的目标网段前缀(比如 10.0.23.0)
- Advertising Router = 生成这条 LSA 的 ABR 的 RID
可变内部内容:
- Network Mask:目标网段掩码
- Metric:ABR 到达该网段的总开销
2. 实例
ABR AR1 需要把 Area1 的 10.0.23.0/24 传递到 Area0,生成 Type3:
LS-ID=10.0.23.0
掩码 = 255.255.255.0
Metric=20
3. Type3 内部 transNet/subNet 区分逻辑
Type3 只传递网段路由,内部会标记该网段原本是传输网段 (transNet) 还是末梢子网 (subNet):
- 如果该网段原本是广播 / P2P 传输网段(transNet),Type3 正常传递;
- 如果是末梢子网 (subNet),Type3 同样携带网段前缀。 这个内部标记仅用于 SPF 计算开销,不改变跨区域传递路由的核心功能。
第四部分:统一解答你的核心疑问

第五部分:三类 LSA 结构对比总表(背诵核心)
| LSA 大类 | 核心用途 | 关键头部标识 | 内部子分类 | 泛洪范围 |
|---|---|---|---|---|
| Type1 路由器 LSA | 单台路由器描述自身所有接口链路 | LS-ID = 本机 RID | Link Type 1/2 (transNet)、3 (subNet)、4 虚链路 | 仅本区域 |
| Type2 网络 LSA | 完整描述一个广播网段 | LS-ID=DR 接口 IP | 固定 transNet 传输网段 | 仅本区域 |
| Type3 汇总 LSA | ABR 跨区域传递网段路由 | LS-ID = 目标网段前缀 | 区分 transNet/subNet,仅用于路由计算 | 可跨区域 |
第六部分:完整链路协同计算实例(打通所有结构)
