第63篇:NSSA 区域与 Type7 LSA 的转换
关键词
OSPF、NSSA、Type7、LSA 转换、Stub 区域、ASBR、ABR
一、NSSA 出现的背景
1.1 Stub 区域的限制
Stub 区域不允许 Type 4/5 LSA 进入,这意味着 Stub 区域内不能引入外部路由。但现实中,Stub 区域下的某些设备可能也需要引入少量外部路由(如静态路由)。
1.2 NSSA 的诞生
NSSA(Not-So-Stubby Area) 就是为了解决这个矛盾而生的:
- 像 Stub 区域一样:不接收 Type 4/5 LSA(保持 LSDB 精简)
- 不像 Stub 区域:允许本区域内的 ASBR 引入外部路由
NSSA Area Area 0NSSA-ASBR 引入外部路由 生成 Type7 LSA ────ABR──── Type5 其他区域路由器 收到 Type5 LSA └──────────────────┘ (转换后) └──────────────────┘
二、Type 7 LSA 详解
2.1 基本特征
| 特性 | 说明 |
|---|---|
| 类型编号 | Type 7 |
| 正式名称 | NSSA LSA |
| 生成者 | NSSA 区域内的 ASBR |
| 传播范围 | 仅限 NSSA 区域内 |
| 是否转 Type 5 | ✅ 由 ABR 转换为 Type 5 |
2.2 Type 7 与 Type 5 的对比
| 对比项 | Type 5 | Type 7 |
|---|---|---|
| 生成者 | 任何区域的 ASBR | NSSA 区域内的 ASBR |
| 传播范围 | 整个 AS | 仅 NSSA 区域内 |
| 能否跨区域传播 | ✅ | ❌(必须由 ABR 转换为 Type 5) |
| Options 字段中的 P-bit | 无 | 有(标识是否可转换) |
2.3 Type 7 LSA 的结构
Type: NSSA (Type 7)
LS ID: 192.168.1.0 → 外部网段
Adv Rtr: 6.6.6.6 → NSSA 区域内 ASBR 的 Router ID
Net Mask: 255.255.255.0
Metric: 20
E Type: 2
Forwarding Address: 0.0.0.0
Tag: 1
Options: [P] → P-bit 标记(表示可转为 Type 5)
2.4 P-bit(Propagate Bit)
P-bit 是 Type 7 LSA 特有的标记位:
- P-bit = 1:ABR 可以将此 Type 7 转换为 Type 5
- P-bit = 0:不应转换(仅在 NSSA 区域内有效)
默认情况下,NSSA ASBR 生成的 Type 7 LSA 的 P-bit 为 1。
三、Type 7 → Type 5 的转换过程
3.1 转换条件
NSSA ABR 检查 Type 7 LSA:
├─ P-bit = 1? ──→ 继续检查
└─ P-bit = 0? ──→ 不转换
├─ 路由可达? ──→ 继续检查
└─ 路由不可达? ──→ 不转换
──→ 转换为 Type 5 LSA,通告到其他区域
3.2 转换前后对比
转换前(NSSA 区域内):
Type 7 LSA: 192.168.1.0/24, Cost=20, AdvRtr=6.6.6.6 (NSSA-ASBR)
转换后(Area 0 及其他区域):
Type 5 LSA: 192.168.1.0/24, Cost=20, AdvRtr=1.1.1.1 (ABR)
Type 4 LSA: AdvRtr=1.1.1.1, ASBR=1.1.1.1 (ABR 作为伪 ASBR)
注意:转换后,Type 5 的 Adv Rtr 从 NSSA-ASBR 的 Router ID 变为了 ABR 的 Router ID。对 OSPF 域的其他部分来说,ABR 充当了该外部路由的 ASBR。
四、NSSA 的配置
4.1 配置 NSSA 区域
# ABR 上配置
ospf 1
area 1
nssa # 将 Area 1 配置为 NSSA
# NSSA 区域内的其他路由器
ospf 1
area 1
nssa
4.2 NSSA 区域内引入外部路由
# NSSA 区域内的 ASBR
ospf 1
import-route static # 引入静态路由(会在 NSSA 内生成 Type 7 LSA)
4.3 NSSA 参数配置
ospf 1
area 1
nssa default-route-advertise # ABR 自动向 NSSA 内注入默认路由
nssa no-import-route # 禁止 ABR 将本机引入的路由注入 NSSA
nssa translator-always # 强制 ABR 始终执行 7→5 转换
nssa translator-stable-interval 60 # 转换选举稳定时间
五、NSSA 的默认路由
5.1 NSSA 区域的默认路由行为
与 Stub 区域不同,NSSA 区域的 ABR 默认不会向区域内注入默认路由。
如果需要,必须显式配置:
ospf 1
area 1
nssa default-route-advertise
5.2 两种默认路由形式
| 形式 | 类型 | 说明 |
|---|---|---|
| Type 3 | 区域间 | 由 ABR 生成,Cost 固定 |
| Type 7 | NSSA 外部 | 由 default-route-advertise 生成 |
推荐使用 default-route-advertise,因为它可以携带更灵活的策略。
六、NSSA 转换器的选举
6.1 多 ABR 场景
当 NSSA 区域中有多个 ABR 时,需要选举一个"转换器"(Translator)来执行 Type 7 → Type 5 的转换。
NSSA Area
│
├── ABR1(Router ID: 1.1.1.1)→ 转换器
└── ABR2(Router ID: 2.2.2.2)→ 备用
选举规则:
1. 优先选配置了 translator-always 的 ABR
2. 否则选 Router ID 最大的
6.2 查看转换器
display ospf nssa-translator
NSSA Translator Information
Area: 0.0.0.1
Translator State: Elected ← 当选状态
Translator Stable Interval: 60
Elected Router ID: 1.1.1.1
七、NSSA 与其他特殊区域的对比
| 区域类型 | 允许 Type 3 | 允许 Type 4/5 | 允许 Type 7 | 能否引入外部路由 |
|---|---|---|---|---|
| 普通区域 | ✅ | ✅ | ❌ | ✅(Type 5) |
| Stub | ✅ | ❌ | ❌ | ❌ |
| Totally Stub | ❌(除默认路由) | ❌ | ❌ | ❌ |
| NSSA | ✅ | ❌ | ✅ | ✅(Type 7) |
| Totally NSSA | ❌(除默认路由) | ❌ | ✅ | ✅(Type 7) |
八、总结
| 知识点 | 核心要点 |
|---|---|
| NSSA 定位 | 在限制外部 LSA 的同时允许引入外部路由 |
| Type 7 LSA | NSSA 内部的外部路由载体 |
| P-bit 标记 | 标识 Type 7 LSA 是否需要转换为 Type 5 |
| 转换过程 | 由 NSSA ABR 完成 Type 7 → Type 5 |
| 默认路由 | NSSA 不自动生成,需 default-route-advertise |
| 转换器选举 | 多 ABR 场景下选举唯一的转换执行者 |
九、思考
- NSSA 与 Stub 区域的核心区别是什么?
- 为什么需要 Type 7 LSA?直接在 NSSA 内使用 Type 5 不可以吗?
- P-bit 的作用是什么?什么情况下 P-bit 被设置为 0?
- 在 NSSA 区域中,Type 7 转换为 Type 5 后,Adv Rtr 字段有什么变化?为什么?
- 如果一个 NSSA 区域有多台 ABR,由谁来执行 Type 7 → Type 5 的转换?
下篇预告:第64篇《OSPF 路由选路——区域内 > 区域间 > 外部》——掌握 OSPF 路由优选的核心规则。