第69篇:OSPF 特殊区域——Stub、Totally Stub、NSSA
关键词
OSPF、Stub Area、Totally Stub、NSSA、Totally NSSA、特殊区域、LSDB 精简
一、为什么需要特殊区域?
在多区域 OSPF 网络中,非骨干区域的路由器通常不需要知道完整的全网拓扑。特殊区域的目的是:
- 精简 LSDB——减少 LSA 数量,降低路由器内存消耗
- 提高稳定性——外部路由变化不影响特殊区域
- 简化配置——区域边缘路由器自动生成默认路由
二、五种区域类型总览
| 区域类型 | 允许 Type 1/2 | 允许 Type 3 | 允许 Type 4/5 | 允许 Type 7 | 默认路由 |
|---|---|---|---|---|---|
| 普通区域 | ✅ | ✅ | ✅ | ❌ | ❌ |
| Stub | ✅ | ✅ | ❌ | ❌ | ✅(自动) |
| Totally Stub | ✅ | ❌(除默认路由) | ❌ | ❌ | ✅(自动) |
| NSSA | ✅ | ✅ | ❌ | ✅ | ❌(可选) |
| Totally NSSA | ✅ | ❌(除默认路由) | ❌ | ✅ | ✅(自动) |
三、Stub Area(末梢区域)
3.1 特点
Stub Area
Type1/2 ✅ Type3 ✅ Type4/5 ❌ ABR 自动生成 默认路由 Type3 │ ▼ Area 0(骨干)
核心规则:
1. 不允许 Type 4/5 LSA 进入
2. ABR 自动生成一条默认路由(Type 3,Cost 可配置)
3. 区域内不能配置 ASBR(不能 import-route)
3.2 配置
# ABR 上配置
ospf 1
area 1
stub
# 区域内其他路由器
ospf 1
area 1
stub
注意:区域内所有路由器都必须配置 stub,否则邻居无法建立。
3.3 默认路由 Cost
# 修改默认路由的 Cost
ospf 1
area 1
stub
default-cost 20 # 默认路由的 Cost,默认 1
3.4 适用场景
- 分支网络的接入层路由器
- 不需要知道外部路由细节的区域
- 希望减少 LSDB 规模的地方
四、Totally Stub Area(完全末梢区域)
4.1 特点
Totally Stub Area
Type1/2 ✅ Type3 ❌ Type4/5 ❌ ABR 自动生成 默认路由 Type3
比 Stub 更严格:不仅阻止 Type 4/5,还阻止所有 Type 3 LSA(除了默认路由)。
4.2 配置
# ABR 上配置(加 no-summary 参数)
ospf 1
area 1
stub no-summary
# 区域内其他路由器(仍配置 stub)
ospf 1
area 1
stub
4.3 Stub vs Totally Stub
| 对比项 | Stub | Totally Stub |
|---|---|---|
| 是否有 Type 3 区域间路由 | ✅ 有(但不是全部) | ❌ 除了默认路由 |
| LSDB 大小 | 较小 | 最小 |
| 去往其他区域 | 路由表中能看到具体网段 | 只知道默认路由 |
| 配置 | 所有路由器配置 stub |
ABR 加 no-summary |
五、NSSA(Not-So-Stubby Area)
5.1 特点
已在第 63 篇详细讲解,此处作为对比总结:
NSSA Area
Type1/2 ✅ Type3 ✅ Type4/5 ❌ Type7 ✅ 默认路由 ❌
5.2 配置回顾
ospf 1
area 1
nssa # 配置为 NSSA
# NSSA 内 ASBR 引入路由
ospf 1
import-route static # 在 NSSA 内生成 Type 7
六、Totally NSSA
6.1 特点
Totally NSSA Area
Type1/2 ✅ Type3 ❌ Type4/5 ❌ Type7 ✅ 默认路由 ✅
6.2 配置
ospf 1
area 1
nssa no-summary # 阻止 Type 3,自动生成默认路由
七、区域选择决策树
是否需要引入外部路由?
├─ 是 ─→ 是否需要区域间路由细节?
│ ├─ 是 ─→ NSSA
│ └─ 否 ─→ Totally NSSA
│
└─ 否 ─→ 是否需要区域间路由细节?
├─ 是 ─→ Stub
└─ 否 ─→ Totally Stub
八、特殊区域的限制
| 限制 | 说明 |
|---|---|
| Area 0 不能是特殊区域 | 骨干区域必须是普通区域 |
| Virtual Link 不能穿越特殊区域 | Virtual Link 只能在普通区域中建立 |
| 区域内所有路由器配置必须一致 | 同一区域要么都是 Stub,要么都不是 |
| 特殊区域内不能有 ASBR | Stub/Totally Stub 不允许 import-route |
九、实际部署建议
9.1 企业分支网络
核心层(Area 0):普通区域
汇聚层(Area 1):Stub
接入层(Area 2):Totally Stub
9.2 需要引入外部路由的分支
核心层(Area 0):普通区域
分支(Area 1):NSSA(分支有本地静态路由需要引入)
十、总结
| 区域类型 | 最精简的 LSDB | 能否引入外部路由 |
|---|---|---|
| 普通区域 | ❌ | ✅ |
| Stub | 中等 | ❌ |
| Totally Stub | 最小 | ❌ |
| NSSA | 中等 | ✅(Type 7) |
| Totally NSSA | 较小 | ✅(Type 7) |
十一、思考
- Stub 区域和 Totally Stub 区域的核心区别是什么?
- 为什么骨干区域(Area 0)不能配置为 Stub 区域?
- 在一个 Stub 区域中,如果没有 ABR 自动生成的默认路由,区域内的路由器如何访问其他区域?
- 什么场景下应该使用 NSSA 而不是 Stub 区域?
- Virtual Link 能否穿越 Stub 区域?为什么?
下篇预告:第70篇《多区域 OSPF 部署设计案例》——从零设计一个企业级多区域 OSPF 网络。