关键词: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)有三条链路:

Type1 Router LSA 示例分析 - 图示

各 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 链路也指向这个虚拟节点。

Type1 与 Type2 LSA 的配合 - 图示

四、SPF 计算中的 Type1/Type2 LSA

4.1 SPF 计算的基本流程

SPF 算法使用 Type1 和 Type2 LSA 构建拓扑图,然后计算最短路径树:

  1. 构建图模型:将 Router LSA 中的路由器作为节点,Network LSA 作为虚拟节点
  2. 初始化:将自身加入已确定集合 N,距离为 0
  3. 迭代选择:从候选集合 S 中选择累计 Cost 最小的节点
  4. 更新邻居:将选中节点的所有邻居加入 S,更新累计 Cost
  5. 重复迭代:直到所有可达节点都被加入 N
  6. 生成路由表:从最短路径树提取路由表条目

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 学习到此路由。

排查过程:

  1. 在其他路由器上检查 Type1 LSA:
[R2] display ospf lsdb router 1.1.1.1 1.1.1.1
 # R1的Router LSA中Links部分未包含192.168.10.0/24网段
  1. 在 R1 上检查 OSPF 接口配置:
[R1] display ospf interface
 # 未显示连接192.168.10.0/24的接口
  1. 检查 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。

排查过程:

  1. 查看 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)
  1. 检查 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 计算的输入

思考

  1. Type1 Router LSA 中 Transit 类型的 Link ID 是 DR 的接口地址,而不是邻居的 Router ID。为什么这样设计?
  2. 如果广播网段上只有一台路由器,还需要生成 Type2 Network LSA 吗?为什么?
  3. Type1 LSA 的 P-bit 为 0 时,该路由不会被 ABR 汇总生成 Type3 LSA。哪些场景下 P-bit 会被置为 0?

下篇预告:第60篇:Type3 Summary LSA 区域间路由传递——讲解 ABR 如何生成 Type3 LSA、区域间路由的传递规则以及路由汇总的配置方法。