关键词:OSPF、特殊区域、Stub、Totally Stub、NSSA、默认路由、LSA过滤
第69篇:OSPF 特殊区域:Stub、Totally Stub、NSSA
一、引言
OSPF 特殊区域(Special Area)是一类经过优化的 OSPF 区域,通过限制某些类型 LSA 的泛洪范围,减少区域内的 LSDB 规模和路由表条目数量,降低路由器的资源消耗。
特殊区域的核心思想是:区域内的路由器不需要知道完整的外部路由信息,只需通过 ABR 注入的默认路由到达外部网络。这样既保持了区域内路由的精确性,又大幅减少了跨区域的路由信息量。
OSPF 定义了多种特殊区域类型,每种类型在阻止 LSA 的类型和注入默认路由的方式上有所不同。
二、核心概念
2.1 特殊区域类型对比
| 区域类型 | 阻止的 LSA | 注入默认路由 | 允许 ASBR |
|---|---|---|---|
| 普通区域 | 无 | 无 | 允许 |
| Stub | Type 5 | Type 3 默认路由 | 不允许 |
| Totally Stub | Type 3/4/5 | Type 3 默认路由 | 不允许 |
| NSSA | Type 5 | Type 7 默认路由 | 允许(Type 7) |
| Totally NSSA | Type 3/4/5 | Type 3 默认路由 | 允许(Type 7) |
2.2 Stub 区域
Stub 区域是最基本的特殊区域类型:
阻止的 LSA:Type 5 AS-External LSA
注入的路由:ABR 向 Stub 区域内注入一条默认路由(0.0.0.0/0),类型为 Type 3 LSA
适用场景: - 区域内不需要访问外部网络的具体路由 - 区域内没有连接到外部网络(无 ASBR) - 希望减少区域内的 LSDB 规模

2.3 Totally Stub 区域
Totally Stub 是华为等厂商对标准 Stub 的增强:
阻止的 LSA:Type 3、Type 4、Type 5(Stub 基础上进一步阻止 Type 3 和 Type 4)
注入的路由:ABR 只注入一条默认路由,不注入任何区域间明细路由
优势:区域内的路由表仅包含区域内路由和一条默认路由,路由表规模最小
2.4 NSSA 区域
NSSA(Not-So-Stubby Area)在 Stub 的基础上允许区域内存在 ASBR:
阻止的 LSA:Type 5
允许的 LSA:Type 7(NSSA 区域内的外部路由使用 Type 7 LSA)
注入的路由:ABR 注入 Type 7 默认路由
适用场景:区域内有设备需要引入外部路由,同时希望阻止 Type 5 LSA 进入。
三、技术细节
3.1 默认路由的生成与传播
特殊区域的 ABR 自动生成默认路由并注入区域内:
# Stub区域:ABR自动生成Type 3默认路由
# LS Type: Summary-LSA
# Link State ID: 0.0.0.0
# Advertising Router: ABR的Router ID
# Cost: 1
# NSSA区域:ABR自动生成Type 7默认路由
# LS Type: NSSA-External-LSA
# Link State ID: 0.0.0.0
# P-bit: 0 (不转换为Type 5)
3.2 特殊区域的 E-bit 标志
Hello 报文 Options 字段中的 E-bit 用于标识区域类型:
| 区域类型 | E-bit | 说明 |
|---|---|---|
| 普通区域 | 1 | 允许外部路由 |
| Stub | 0 | 不允许外部路由 |
| NSSA | 0 | 不允许 Type 5(但允许 Type 7) |
如果两台路由器的 E-bit 不一致,它们不会建立邻居关系。
3.3 特殊区域的共同约束
所有特殊区域必须遵守以下规则:
- 不能是骨干区域(Area 0)
- 区域内不能存在虚链接
- 区域内所有路由器必须配置为相同的区域类型
- ABR 必须同时支持特殊区域属性
四、实战配置/案例分析
4.1 特殊区域完整配置
# ABR配置
sysname ABR
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 10.0.0.0 0.0.0.255
area 0.0.0.1
stub no-summary # Totally Stub
network 10.1.0.0 0.0.0.255
# 区域内路由器配置
sysname R2
ospf 1 router-id 2.2.2.2
area 0.0.0.1
stub # 普通路由器只需配置stub
network 10.1.1.0 0.0.0.255
4.2 案例分析:特殊区域邻居无法建立
故障现象:ABR 与区域内路由器的 OSPF 邻居无法建立。
排查:
- 检查区域类型配置:
[ABR] display ospf interface
Area: 0.0.0.1
Type: Stub
[R2] display ospf interface
Area: 0.0.0.1
Type: Normal # 类型不匹配!
-
根因:R2 未配置为 Stub 区域,E-bit 与 ABR 不一致。
-
修复:在 R2 上配置 Stub:
[R2] ospf 1
[R2-ospf-1] area 0.0.0.1
[R2-ospf-1-area-0.0.0.1] stub
4.3 案例分析:Totally Stub 区域的默认路由
场景:Totally Stub 区域内路由器如何通过默认路由访问外部网络。

R2 的路由表中只有区域内路由和一条默认路由(0.0.0.0/0 → ABR)。当 R2 需要访问外部网络时,流量通过默认路由发送到 ABR,ABR 根据完整的外部路由表进行转发。
五、总结
| 区域类型 | 路由表规模 | 适用场景 | 配置复杂度 |
|---|---|---|---|
| Stub | 区域内 + 区域间 + 默认 | 不需要外部路由明细 | 低 |
| Totally Stub | 区域内 + 默认 | 最小的路由表需求 | 低 |
| NSSA | 区域内 + 区域间 + Type7 + 默认 | 需要引入少量外部路由 | 中 |
| Totally NSSA | 区域内 + Type7 + 默认 | 最小化+外部路由引入 | 中 |
思考
- 为什么 Totally Stub 区域的路由表规模比 Stub 区域更小?两者在 ABR 注入的路由上有什么区别?
- 如果 Stub 区域内的一台路由器被错误地配置为普通区域,会发生什么现象?
- NSSA 区域与 Stub 区域的本质区别是什么?在什么场景下必须使用 NSSA 而不是 Stub?
下篇预告:第70篇:多区域 OSPF 部署设计案例