关键词:OSPF、NSSA、Type7 LSA、Not-So-Stubby Area、特殊区域、Type7转Type5

第63篇:NSSA 区域与 Type7 LSA 的转换

一、引言

Stub 区域是 OSPF 特殊区域的一种,它通过禁止 Type 5 LSA 进入来减少区域内的 LSDB 规模。然而,Stub 区域的限制过于严格——区域内不能有 ASBR,也就不能引入外部路由。

NSSA(Not-So-Stubby Area,不太Stub的区域)是对 Stub 区域的增强。它在保留 Stub 区域基本优势(禁止 Type 5 LSA 进入)的同时,允许区域内存在 ASBR 并通过 Type 7 LSA 引入外部路由。Type 7 LSA 在 NSSA 区域内泛洪,到达 NSSA 的 ABR 后被转换为 Type 5 LSA,注入整个 OSPF 域。

二、核心概念

2.1 NSSA 区域的设计动机

需求 Stub 区域 NSSA 区域
禁止 Type 5 LSA 进入 ✓ ✓
减少 LSDB 规模 ✓ ✓
ABR 注入默认路由 ✓ ✓
区域内引入外部路由 ✗ ✓
使用特殊 LSA 类型 N/A Type 7

NSSA 的适用场景: - 区域需要通过本地链路接入外部网络(如专线、MSTP 等) - 同时希望保持区域的 Stub 属性,减少外部 LSA 的数量 - 区域内只有一台路由器作为 ASBR 引入少量外部路由

2.2 Type 7 LSA 的基本特征

Type 7 LSA 是 NSSA 区域专属的外部路由 LSA 类型:

特征 说明
产生者 NSSA 区域内的 ASBR
泛洪范围 仅在 NSSA 区域内泛洪
外部路由类型 支持 E1 和 E2 两种类型
转换机制 NSSA 的 ABR 将 Type 7 转换为 Type 5
结构 与 Type 5 LSA 基本相同,增加了 Forwarding Address 字段

2.3 NSSA 区域的类型

NSSA 区域也支持 Totally 模式:

类型 阻止的 LSA 注入的路由
NSSA Type 5 默认路由(Type 7)
Totally NSSA Type 3、Type 4、Type 5 默认路由(Type 3)

Totally NSSA 是华为等厂商的扩展特性,在 NSSA 基础上进一步阻止 Type 3 和 Type 4 LSA,只注入一条默认路由。

三、技术细节

3.1 Type 7 到 Type 5 的转换过程

Type 7 LSA 到 Type 5 LSA 的转换是 NSSA 的核心机制:

Type 7 到 Type 5 的转换过程 - 图示

转换规则: 1. 只有 NSSA 区域的 ABR 才能执行 Type 7 到 Type 5 的转换 2. 转换时保留外部路由的网络地址、掩码、Cost 和类型(E1/E2) 3. 转换后的 Type 5 LSA 的 Advertising Router 为执行转换的 ABR 的 Router ID 4. 如果有多台 ABR 连接同一 NSSA,只有 Router ID 最大的 ABR 执行转换(防止重复)

3.2 NSSA 默认路由的注入

NSSA 区域的 ABR 会向区域内注入默认路由:

NSSA 类型 默认路由类型 LSA 类型
普通 NSSA Type 7 默认路由 Type 7 LSA
Totally NSSA Type 3 默认路由 Type 3 LSA
# 普通NSSA:ABR产生Type 7默认路由
# LS Type: NSSA-External-LSA
# Link State ID: 0.0.0.0

# Totally NSSA:ABR产生Type 3默认路由
# LS Type: Summary-LSA
# Link State ID: 0.0.0.0

3.3 P-bit(Propagation Bit)

Type 7 LSA 中包含一个 P-bit 字段,控制是否执行 Type 7 到 Type 5 的转换:

  • P-bit = 1:ABR 将 Type 7 转换为 Type 5(默认)
  • P-bit = 0:ABR 不执行转换,该外部路由仅在 NSSA 区域内有效

P-bit 为 0 的场景: - 某些外部路由不需要传播到整个 OSPF 域 - 仅在 NSSA 区域内使用的外部路由(如区域内专线回退地址)

四、实战配置/案例分析

4.1 NSSA 区域配置

# 配置NSSA区域
ospf 1
 area 0.0.0.3
  nssa              # 普通NSSA
  # 或
  nssa no-summary   # Totally NSSA

# 在NSSA区域内重分发外部路由
ospf 1
 import-route static nssa  # 以NSSA外部路由形式引入

# 查看NSSA区域的LSDB
display ospf lsdb nssa-external

4.2 案例分析:NSSA 外部路由未能传播到整个域

故障现象:NSSA 区域内的 ASBR 引入了外部路由,但该路由未能出现在其他区域的路由器上。

排查过程:

  1. 检查 NSSA 区域内 ASBR 是否产生了 Type 7 LSA:
[ASBR] display ospf lsdb nssa-external self-originate
 # 确认Type 7 LSA已产生
  1. 检查 NSSA 的 ABR 是否收到了 Type 7 LSA:
[ABR] display ospf lsdb nssa-external
 # 确认Type 7 LSA已到达ABR
  1. 检查 ABR 是否产生了 Type 5 LSA:
[ABR] display ospf lsdb as-external self-originate
 # 检查是否有转换后的Type 5 LSA
  1. 发现 P-bit 为 0,ABR 未执行转换:
[ASBR] display ospf lsdb nssa-external
  P-bit: 0    # 不传播到AS外部
  1. 修复:在重分发时设置 P-bit 为 1:
ospf 1
 import-route static nssa propagate

4.3 案例分析:多 ABR 的 Type 7 转换冲突

场景:NSSA 区域连接了两台 ABR,两台 ABR 都尝试将同一 Type 7 LSA 转换为 Type 5 LSA,导致出现两条指向同一外部网络但 Cost 不同的 Type 5 LSA。

分析:按照 OSPF 标准,只有 Router ID 最大的 ABR 应该执行转换。但如果两台 ABR 对"最大 Router ID"的判断不一致,可能出现重复转换。

解决: - 确保 NSSA 区域内所有路由器对 Router ID 的认知一致 - 使用路由策略控制特定 ABR 执行转换 - 或仅配置一台 ABR 连接 NSSA 区域

五、总结

特性 Stub NSSA Totally NSSA
阻止 Type 5 ✓ ✓ ✓
阻止 Type 3 ✗ ✗ ✓
阻止 Type 4 ✗ ✗ ✓
允许外部路由引入 ✗ ✓(Type 7) ✓(Type 7)
默认路由类型 Type 3 Type 7 Type 3
Type 7→Type 5 转换 N/A ABR执行 ABR执行

思考

  1. NSSA 区域与普通 Stub 区域的核心区别是什么?在什么场景下应该选择 NSSA 而非 Stub?
  2. 为什么 Type 7 LSA 不能直接泛洪到非 NSSA 区域?Type 7 到 Type 5 的转换必须在 ABR 上执行的原因是什么?
  3. 如果 NSSA 区域中有两台 ASBR 产生了相同外部路由的 Type 7 LSA,会发生什么?ABR 如何处理?

下篇预告:第64篇:OSPF 路由选路:区域内 > 区域间 > 外部