关键词: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 规模

Stub 区域 - 图示

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 特殊区域的共同约束

所有特殊区域必须遵守以下规则:

  1. 不能是骨干区域(Area 0)
  2. 区域内不能存在虚链接
  3. 区域内所有路由器必须配置为相同的区域类型
  4. 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 邻居无法建立。

排查:

  1. 检查区域类型配置:
[ABR] display ospf interface
  Area: 0.0.0.1
  Type: Stub

[R2] display ospf interface
  Area: 0.0.0.1
  Type: Normal           # 类型不匹配!
  1. 根因:R2 未配置为 Stub 区域,E-bit 与 ABR 不一致。

  2. 修复:在 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 区域内路由器如何通过默认路由访问外部网络。

案例分析:Totally Stub 区域的默认路由 - 图示

R2 的路由表中只有区域内路由和一条默认路由(0.0.0.0/0 → ABR)。当 R2 需要访问外部网络时,流量通过默认路由发送到 ABR,ABR 根据完整的外部路由表进行转发。

五、总结

区域类型 路由表规模 适用场景 配置复杂度
Stub 区域内 + 区域间 + 默认 不需要外部路由明细 低
Totally Stub 区域内 + 默认 最小的路由表需求 低
NSSA 区域内 + 区域间 + Type7 + 默认 需要引入少量外部路由 中
Totally NSSA 区域内 + Type7 + 默认 最小化+外部路由引入 中

思考

  1. 为什么 Totally Stub 区域的路由表规模比 Stub 区域更小?两者在 ABR 注入的路由上有什么区别?
  2. 如果 Stub 区域内的一台路由器被错误地配置为普通区域,会发生什么现象?
  3. NSSA 区域与 Stub 区域的本质区别是什么?在什么场景下必须使用 NSSA 而不是 Stub?

下篇预告:第70篇:多区域 OSPF 部署设计案例