Skip to main content

12. Link State Advertisements (链路状态通告)

本章详细定义 OSPF 的链路状态通告(LSA)格式。LSA 是 OSPF 协议的核心数据结构,描述网络拓扑信息。

章节概述 (Chapter Overview)

OSPF 定义了多种 LSA 类型:

  • Type 1: Router-LSA
  • Type 2: Network-LSA
  • Type 3: Summary-LSA (网络)
  • Type 4: Summary-LSA (ASBR)
  • Type 5: AS-external-LSA
  • Type 7: NSSA-external-LSA (RFC 3101)

12.1 LSA 通用头部 (LSA Header)

头部字段

字段大小说明
LS Age16位LSA 年龄(秒)
Options8位可选能力位
LS Type8位LSA 类型 (1-7)
Link State ID32位LSA 标识符
Advertising Router32位产生此 LSA 的路由器 ID
LS Sequence Number32位序列号
LS Checksum16位校验和
Length16位LSA 总长度(字节)

关键字段详解

LS Age

  • 范围:0-3600 秒
  • MaxAge = 3600 秒
  • 每秒递增
  • 达到 MaxAge 表示 LSA 过期

LS Sequence Number

  • 初始值:0x80000001
  • 最大值:0x7FFFFFFF
  • 用于检测 LSA 更新
  • 序列号越大表示越新

Options 字段

  • E-bit: 支持外部路由
  • MC-bit: 支持 MOSPF
  • N/P-bit: NSSA 相关
  • EA-bit: 外部属性
  • DC-bit: 按需电路

12.2 Router-LSA (Type 1)

用途

  • 描述路由器的链路和连接
  • 每个路由器为每个区域生成一个

关键字段

字段说明
V-bit虚拟链路端点
E-bitAS 边界路由器
B-bit区域边界路由器
Number of links链路数量
Links链路描述列表

链路类型

Type 1: 点到点链路

  • Link ID = 邻居 Router ID
  • Link Data = 接口地址

Type 2: 到中转网络的链路

  • Link ID = DR 的接口地址
  • Link Data = 本路由器接口地址

Type 3: 到末梢网络的链路

  • Link ID = 网络地址
  • Link Data = 网络掩码

Type 4: 虚拟链路

  • Link ID = 邻居 Router ID
  • Link Data = 接口地址

12.3 Network-LSA (Type 2)

用途

  • 由 DR 生成
  • 描述多路访问网络
  • 列出连接到网络的所有路由器

关键字段

字段说明
Network Mask网络掩码
Attached Router连接的路由器列表
  • 设置为 DR 的接口 IP 地址

12.4 Summary-LSA (Type 3)

用途

  • 由 ABR 生成
  • 描述区域间的网络路由
  • 通告到其他区域

关键字段

字段说明
Network Mask目的网络掩码
Metric到达目的地的代价
TOS服务类型(通常为 0)
  • 目的网络的网络号

12.5 ASBR-Summary-LSA (Type 4)

用途

  • 由 ABR 生成
  • 描述到 ASBR 的路由
  • 使其他区域的路由器知道如何到达 ASBR

关键字段

字段说明
Metric到达 ASBR 的代价
  • ASBR 的 Router ID

12.6 AS-external-LSA (Type 5)

用途

  • 由 ASBR 生成
  • 描述到 AS 外部目的地的路由
  • 在整个 AS 内泛洪(除末梢区域)

关键字段

字段说明
Network Mask外部网络掩码
E-bit外部路由类型 (0=Type2, 1=Type1)
Metric外部路由代价
Forwarding address转发地址
External Route Tag外部路由标签

外部路由类型

Type 1 External

  • E-bit = 1
  • 代价 = 内部代价 + 外部代价
  • 度量可比较

Type 2 External

  • E-bit = 0
  • 代价 = 外部代价(默认)
  • 仅比较外部代价

Forwarding Address

  • 非零:转发到指定地址
  • 零:转发到 Advertising Router

12.7 NSSA-external-LSA (Type 7)

用途

  • 在 NSSA 中使用
  • 类似 Type 5,但仅在 NSSA 内传播
  • 由 ABR 转换为 Type 5

与 Type 5 的区别

  • 泛洪范围:仅 NSSA
  • 转换:ABR 将 Type 7 转为 Type 5
  • P-bit:是否传播到其他区域

12.8 LSA 生成规则 (LSA Origination)

Router-LSA (Type 1)

生成时机

  • 路由器启动时
  • 接口状态变化
  • 邻居状态变化
  • 接口代价变化

Network-LSA (Type 2)

生成条件

  • 路由器是 DR
  • 至少有一个 Full 邻接的邻居

Summary-LSA (Type 3/4)

生成条件

  • 路由器是 ABR
  • 有跨区域的路由信息

AS-external-LSA (Type 5)

生成条件

  • 路由器是 ASBR
  • 有外部路由需要通告

12.9 LSA 刷新和老化 (LSA Refresh and Aging)

刷新机制

LSRefreshTime = 30 分钟

  • LSA 生成者每 30 分钟刷新一次
  • 递增序列号
  • 重新泛洪

老化机制

MaxAge = 3600 秒(1 小时)

  • LS Age 达到 MaxAge
  • LSA 标记为删除
  • 泛洪 MaxAge LSA
  • 从 LSDB 中移除

年龄递增

InfTransDelay

  • 每条链路的传输延迟
  • 默认 1 秒
  • LSA 每跳增加此延迟

12.10 LSA 比较 (LSA Comparison)

判断哪个 LSA 更新

规则顺序

  1. LS Sequence Number 比较

    • 较大的更新
  2. LS Checksum 比较

    • 序列号相同时
    • 较大的校验和更新
  3. LS Age 比较

    • MaxAge 总是比非 MaxAge 更新
    • 年龄差 > MaxAgeDiff (900秒)
    • 较年轻的更新

12.11 LSA 格式对照表 (LSA Type Summary)

LSA 类型名称生成者泛洪范围用途
Type 1Router-LSA所有路由器单个区域描述路由器链路
Type 2Network-LSADR单个区域描述多路访问网络
Type 3Summary-LSAABR单个区域区域间网络路由
Type 4ASBR-SummaryABR单个区域到 ASBR 的路由
Type 5AS-externalASBR整个 AS外部路由
Type 7NSSA-externalASBR单个 NSSANSSA 外部路由

技术要点总结 (Technical Summary)

关键概念

  1. LSA 是拓扑描述的基本单元

    • 每个 LSA 描述网络的一部分
    • 通过泛洪同步到所有路由器
    • 构成分布式链路状态数据库
  2. 分层 LSA 设计

    • 区域内 LSA (Type 1, 2)
    • 区域间 LSA (Type 3, 4)
    • AS 外部 LSA (Type 5, 7)
  3. 可靠的更新机制

    • 序列号检测更新
    • 校验和验证完整性
    • 定期刷新保证同步

实现要点

LSA 存储

  • 按类型和 ID 索引
  • 高效的查找结构
  • 内存优化

LSA 处理

  • 严格的验证
  • 正确的比较逻辑
  • 及时的刷新和老化

LSA 泛洪

  • 可靠传输
  • 避免循环
  • 控制速率

参考资料 (References)


注意 (Note):LSA 格式是 OSPF 协议的核心。正确理解和实现各种 LSA 类型对于协议的正确运行至关重要。详细的字节级格式请参考原文 Appendix A。