关键词:Type1 Router LSA、Type2 Network LSA、链路类型、SPF计算、Router LSA字段、Network LSA、DR、区域内拓扑
第59篇:Type1 Router LSA 与 Type2 Network LSA
一、引言
在第58篇中,我们对 OSPF 的七种 LSA 类型进行了全面概览。Type1 Router LSA 和 Type2 Network LSA 是 OSPF 区域内拓扑描述的核心,它们共同构成了 SPF(Dijkstra)算法的输入数据。可以说,不理解 Type1 和 Type2 LSA,就无法真正理解 OSPF 如何构建拓扑图和计算最短路径。
Type1 Router LSA 由每台路由器独立生成,描述"我是谁、我有什么接口、我连了谁";Type2 Network LSA 由 DR 生成,描述"这个网段上有哪些路由器连在一起"。两种 LSA 相互配合,完整刻画了区域内的拓扑结构。
二、Type1 Router LSA 深度解析
2.1 Type1 Router LSA 的结构
Type1 Router LSA 的头部之后的主体部分包含一个或多个 Link(链路)描述,每个链路占 12 字节:
| 字段名 | 长度 | 说明 |
|---|---|---|
| Link ID | 4 字节 | 链路标识,含义随链路类型变化 |
| Link Data | 4 字节 | 链路数据,含义随链路类型变化 |
| Type | 2 字节 | 链路类型(1=P2P,2=Transit,3=Stub,4=Virtual Link) |
| Number of TOS | 1 字节 | TOS 路由条目数(通常为0) |
| Metric | 2 字节 | 链路开销(Cost),最大值为 16777214 |
2.2 四种链路类型详解
| 链路类型 | 编号 | Link ID 含义 | Link Data 含义 | 适用场景 |
|---|---|---|---|---|
| P2P | 1 | 邻居的 Router ID | 本端接口地址 | 点对点链路 |
| Transit | 2 | DR 的接口地址 | 本端接口地址 | 广播/NBMA 网段 |
| Stub | 3 | 直连网段的网络地址 | 子网掩码 | 末节网络(无邻居) |
| Virtual Link | 4 | 对端 ABR 的 Router ID | 本端 Router ID | 虚链接 |
2.3 Type1 Router LSA 示例分析
假设路由器 R1(Router ID: 1.1.1.1)有三条链路:

各 Link 字段的具体取值:
| Link 描述 | Type | Link ID | Link Data | Metric |
|---|---|---|---|---|
| Link1(到 R2 的 P2P 链路) | 1 (P2P) | 2.2.2.2(R2的RID) | 10.1.1.1(R1接口地址) | 10 |
| Link2(广播网段) | 2 (Transit) | 10.2.2.254(DR接口地址) | 10.2.2.1(R1接口地址) | 10 |
| Link3(直连末节网段) | 3 (Stub) | 192.168.1.0(网络地址) | 255.255.255.0(掩码) | 10 |
2.4 Router LSA 中 P-bit(传播位)
Type1 Router LSA 的 Options 字段中包含 P-bit(Propagate bit):
| P-bit 值 | 含义 |
|---|---|
| 1 | 该 Router LSA 描述的路由可以被 ABR 汇总生成 Type3 LSA 传递到其他区域 |
| 0 | 该 Router LSA 描述的路由不会被汇总到其他区域 |
P-bit 为 0 的场景: - 连接外部路由协议的虚接口 - LoopBack 接口(某些实现中)
三、Type2 Network LSA 深度解析
3.1 Type2 Network LSA 的结构
Type2 LSA 的主体部分相对简单:
| 字段名 | 长度 | 说明 |
|---|---|---|
| Network Mask | 4 字节 | 网段的子网掩码 |
| Attached Router List | 可变 | 连接到此网段的所有路由器的 Router ID(按降序排列) |
3.2 Type2 LSA 的生成条件
Type2 LSA 仅在以下条件下生成:
| 条件 | 说明 |
|---|---|
| 网络类型为 Broadcast 或 NBMA | P2P 和 P2MP 网络不产生 Type2 LSA |
| DR 已选举完成 | DR 接口进入 Full 状态后生成 Type2 LSA |
| 网段上有至少一台路由器 | Attached Router 列表非空 |
3.3 Type2 LSA 示例
假设广播网段 10.2.2.0/24 上有四台路由器:
| 路由器 | Router ID | 接口地址 |
|---|---|---|
| R1 | 1.1.1.1 | 10.2.2.1 |
| R2(DR) | 2.2.2.2 | 10.2.2.2 |
| R3 | 3.3.3.3 | 10.2.2.3 |
| R4 | 4.4.4.4 | 10.2.2.4 |
DR(R2)生成的 Type2 LSA:
| 字段 | 值 |
|---|---|
| LS Type | 2 |
| Link State ID | 10.2.2.2(DR的接口地址) |
| Advertising Router | 2.2.2.2(DR的Router ID) |
| Network Mask | 255.255.255.0 |
| Attached Router List | 4.4.4.4、3.3.3.3、2.2.2.2、1.1.1.1(降序排列) |
3.4 Type1 与 Type2 LSA 的配合
Type1 和 Type2 LSA 从不同角度描述同一个网段:
- Type1 LSA:每台路由器各自描述"我连接到了这个网段"
- Type2 LSA:DR 统一描述"这个网段上有哪些路由器"
SPF 计算时,Type2 LSA 将被展开为一个虚拟节点(Stub Node),连接 Attached Router List 中的所有路由器。每台路由器的 Type1 LSA 中对应的 Transit 链路也指向这个虚拟节点。

四、SPF 计算中的 Type1/Type2 LSA
4.1 SPF 计算的基本流程
SPF 算法使用 Type1 和 Type2 LSA 构建拓扑图,然后计算最短路径树:
- 构建图模型:将 Router LSA 中的路由器作为节点,Network LSA 作为虚拟节点
- 初始化:将自身加入已确定集合 N,距离为 0
- 迭代选择:从候选集合 S 中选择累计 Cost 最小的节点
- 更新邻居:将选中节点的所有邻居加入 S,更新累计 Cost
- 重复迭代:直到所有可达节点都被加入 N
- 生成路由表:从最短路径树提取路由表条目
4.2 虚拟节点(Stub Node)的作用
Type2 Network LSA 在 SPF 计算中被抽象为虚拟节点:
- 虚拟节点到 Attached Router List 中每个路由器的 Cost 为 0
- 所有连接到同一网段的路由器通过虚拟节点互连
- 虚拟节点携带网段的 IP 地址和掩码信息,用于生成网络路由
这种抽象将广播网段简化为一个"全连接"的中间节点,使得 SPF 算法可以统一处理 P2P 链路和广播网段。
五、华为 VRP 验证与分析
5.1 查看 Type1 Router LSA 详细信息
# 查看本路由器产生的Router LSA
display ospf lsdb router self-originate
# 示例输出:
# Link State ID: 1.1.1.1
# Advertising Router: 1.1.1.1
# LS age: 120
# Options: 0x2
# Length: 48
# Type: Router-LSA
# # Links: 3
# # Link in TOS 0: 3
# Link ID : 2.2.2.2
# Link Data : 10.1.1.1
# Link Type : Point-to-point
# Number of TOS : 0
# Metric : 10
# Link ID : 10.2.2.254
# Link Data : 10.2.2.1
# Link Type : Transit
# Number of TOS : 0
# Metric : 10
# Link ID : 192.168.1.0
# Link Data : 255.255.255.0
# Link Type : Stub Network
# Number of TOS : 0
# Metric : 10
5.2 查看 Type2 Network LSA 详细信息
# 查看本区域内所有Network LSA
display ospf lsdb network
# 示例输出:
# Link State ID: 10.2.2.2
# Advertising Router: 2.2.2.2
# LS age: 60
# Options: 0x2
# Length: 32
# Type: Network-LSA
# Network Mask: 255.255.255.0
# Number of Linked routers: 4
# 4.4.4.4
# 3.3.3.3
# 2.2.2.2
# 1.1.1.1
六、故障案例分析
6.1 案例:Type1 LSA 中 Stub 链路缺失导致路由不可达
故障现象:R1 下挂的 192.168.10.0/24 网段,在其他路由器上无法通过 OSPF 学习到此路由。
排查过程:
- 在其他路由器上检查 Type1 LSA:
[R2] display ospf lsdb router 1.1.1.1 1.1.1.1
# R1的Router LSA中Links部分未包含192.168.10.0/24网段
- 在 R1 上检查 OSPF 接口配置:
[R1] display ospf interface
# 未显示连接192.168.10.0/24的接口
- 检查 R1 的 OSPF 宣告配置:
[R1] display current-configuration | section ospf
ospf 1 router-id 1.1.1.1
area 0
network 10.1.1.0 0.0.0.255
network 10.2.2.0 0.0.0.255
# 未宣告192.168.10.0/24网段
根因分析:R1 的 OSPF 配置中未使用 network 命令宣告 192.168.10.0/24 网段,因此该接口未加入 OSPF,不会生成对应的 Stub 链路描述。
解决方案:
[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.10.0 0.0.0.255
6.2 案例:Type2 LSA 中 Attached Router 列表不完整
故障现象:广播网段上的 R3 无法与 R1、R4 通信,但 R3 与 DR(R2)的邻居状态为 Full。
排查过程:
- 查看 Type2 LSA:
[R2] display ospf lsdb network self-originate
# Attached Router List: 4.4.4.4, 2.2.2.2, 1.1.1.1
# 缺少 3.3.3.3 (R3)
- 检查 R3 在 Hello 报文中声明的角色:
[R3] display ospf interface
Designated Router: 0.0.0.0
# R3认为本网段没有DR
根因分析:R3 的 Hello 报文中 DR 字段为 0.0.0.0,说明 R3 尚未收到正确的 DR 声明。可能的原因是 R3 与其他路由器的 Hello 参数不匹配,导致 R3 虽然与 R2 建立了邻居(通过其他机制),但不在同一个"DR 认知域"内。
解决方案:
# 检查并统一R3的Hello参数
[R3] display ospf interface GigabitEthernet 0/0/0
# 确认Area ID、Hello Interval、Dead Interval、Network Mask与DR一致
[R3] interface GigabitEthernet 0/0/0
# 修正不一致的参数
七、总结
| 核心要点 | 说明 |
|---|---|
| Type1 Router LSA | 每台路由器生成,描述本路由器的所有链路 |
| 四种链路类型 | P2P(1)、Transit(2)、Stub(3)、Virtual Link(4) |
| Type2 Network LSA | DR 生成,描述广播/NBMA 网段上的路由器列表 |
| 虚拟节点 | Type2 LSA 在 SPF 计算中被抽象为虚拟节点(Stub Node) |
| P-bit | 控制 Router LSA 中的路由是否可以被汇总到 Type3 LSA |
| 区域内拓扑 | Type1 + Type2 LSA 完整描述区域内拓扑,是 SPF 计算的输入 |
思考
- Type1 Router LSA 中 Transit 类型的 Link ID 是 DR 的接口地址,而不是邻居的 Router ID。为什么这样设计?
- 如果广播网段上只有一台路由器,还需要生成 Type2 Network LSA 吗?为什么?
- Type1 LSA 的 P-bit 为 0 时,该路由不会被 ABR 汇总生成 Type3 LSA。哪些场景下 P-bit 会被置为 0?
下篇预告:第60篇:Type3 Summary LSA 区域间路由传递——讲解 ABR 如何生成 Type3 LSA、区域间路由的传递规则以及路由汇总的配置方法。