关于OSPF中一类、二类、三类LSA的一些思考

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 内部包含的不同链路 / 网段类型:

  1. Type1 LSA 内部:每条链路子条目有 Link Type(1/2/3/4),区分点到点、广播接入、末梢网段、虚链路;
  2. Type2/3 LSA 内部:会区分传输网段 transNet、末梢网段 subNet,用来辅助 SPF 计算路由。

为什么要设计两层分类?一句话总逻辑

  1. 外层大类(1/2/3 LSA) :做功能隔离 把「描述路由器链路」「描述广播网段」「跨区域传路由」三件事拆成三种独立报文,各司其职,互不干扰。
  2. 内部子类型(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 就是内部子分类:

  1. Link Type(内部子类型 1/2/3/4)
  2. Link ID(含义随 Link Type 变化)
  3. Link Data(IP 辅助信息)
  4. 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

可变内部内容:

  1. Network Mask:该广播网段掩码
  2. 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 的条目,拼接出完整广播域拓扑。


终极一句话

Type1(transNet)= 我个人站在这个网段里

Type2 = 这个网段整体有谁、掩码多少

只有 "个人报到 + 班级花名册" 拼在一起,OSPF 才能画出拓扑!缺一不可!

一、先纠正你误区:你以为是重复,其实是「两个维度的数据」

你现在的理解:

既然 Type2 已经把整个广播网段描述完了,还要 Type1 干嘛?

OSPF 真实逻辑:

Type2 只描述【网段本身】,不知道【谁连在网段上】

Type1 的 transNet 只描述【我连在这个网段】,不知道【网段整体信息】

两者单独任意一个,都无法算出拓扑

定义对应

  1. Type1 内部 Link-Type2 = transNet(传输链路) 作用:单台路由器声明:我挂在这个广播网段上 只有个人视角
  2. 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

可变内部内容:

  1. Network Mask:目标网段掩码
  2. 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):

  1. 如果该网段原本是广播 / P2P 传输网段(transNet),Type3 正常传递;
  2. 如果是末梢子网 (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,仅用于路由计算 可跨区域

第六部分:完整链路协同计算实例(打通所有结构)

相关推荐
柒号华仔2 小时前
一文讲透5G RedCap
网络协议·5g·信息与通信
Flandern11112 小时前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
我送炭你添花2 小时前
HART协议详解:00 为什么工业世界仍然需要HART?
网络·机器人·自动化·智能工厂
vortex52 小时前
网络路径探测三大技术:原理、缺陷与选型指南
网络
草莓熊Lotso3 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
●VON3 小时前
鸿蒙 PC Markdown 编辑器 Alpha 评审:如何用退出条件判断阶段完成
网络·安全·华为·编辑器·harmonyos·鸿蒙
网安老伯3 小时前
网络安全基础要点知识介绍(非常详细),零基础入门到精通,看这一篇就够了
运维·前端·网络协议·web安全·网络安全·职场和发展
nVisual3 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
会编程的土豆4 小时前
HTTP 是什么:你打开 localhost:8080 时发生了什么
网络·网络协议·http