0. 课件来源
OSPF 域间路由靠 Type 3,外部路由靠 Type 5。但外部路由的完整理解需要三张 LSA 配合:Type 4(定位 ASBR)、Type 5(外部网段)、Type 7(NSSA 外部代偿)。本节把这三张 LSA 和四种特殊区域一网打尽。
1. LSA 完整对照表
在 Type 1/2/3 基础上,新增四张 LSA:
LSA ID / ADV Router = 始发 RID
link 信息,本区域泛洪
LSA ID = DR 接口 IP;ADV = DR RID
MA 掩码 + 成员 RID,本区域泛洪
LSA ID = 域间路由前缀;ADV = ABR RID
掩码 + 始发区域 cost,区域内泛洪
LSA ID = ASBR RID;ADV = ABR RID
到 ASBR 的 cost,区域内泛洪
LSA ID = 外部路由前缀;ADV = ASBR RID
掩码、外部 cost、FA、cost-type,全网泛洪
LSA ID = 外部路由前缀;ADV = ASBR RID
字段近似 T5,仅在 NSSA 区域内泛洪
2. Type 4 LSA(ASBR Summary)
2.1 Type 4 的作用
Type 5 告诉全网"外部网段是什么",但不同区域的设备还需要知道"ASBR 在哪"。Type 4 就是 ASBR 的定位 LSA——它由 ABR 产生,告诉域内设备"去往该 ASBR 的最优 cost 是多少"。
2.2 Type 4 的传播规则(与 Type 3 完全一致)
| 规则 | 说明 |
|---|---|
| 1 | ABR 发现始发非骨干区域有 ASBR → 向骨干区域产生 T4(cost=ABR 到 ASBR 的最优 cost) |
| 2 | ABR 把骨干区域的 T4 → 向非骨干区域产生 T4 |
| 3 | ABR 发现骨干区域有 ASBR → 向非骨干区域产生 T4 |
| 4 | ABR 不会把非骨干区域的 T4 向骨干区域产生 T4 |
| 5 | ABR 只计算来自骨干区域的 T4 对应的外部 ASE 路由 |
💡 Type 3 vs Type 4
| 相同点 | 不同点 |
|---|---|
| 都是 ABR 产生,传播规则相同 | T3 是叶子(域间路由网段) |
| 都遵循防环规则 | T4 是拓扑(定位 ASBR) |
2.3 Type 4 与 Type 5 的关系
AR5 undo ip address loopback 55AR5 undo import-route direct3. Type 5 LSA(AS External)
3.1 ASBR 的定义
ASBR(Autonomous System Boundary Router):具备引入外部路由能力的路由器。
三种表现:
- 进程下配置
import-route xxx - 本路由器产生默认路由(Type 5 default)
- NSSA 区域的 ABR(同时是 ABR + ASBR,负责 7 转 5)
3.2 Type 5 结构
<AR5> dis ospf lsdb ase 55.5.5.0External
55.5.5.0(外部网段)5.5.5.5(ASBR Router-ID)255.255.255.01(外部 cost)2(默认 ASE2)0.0.0.0(走 ASBR)14. ASE 选路规则
4.1 ASE1 与 ASE2 对比
| 选路项 | ASE2(默认) | ASE1 |
|---|---|---|
| 第1步 | 比较外部 cost,小的优先 | 比较外部 cost + 内部 cost 之和,小的优先 |
| 第2步 | 外部 cost 相同 → 比较内部 cost → 小的优先 | 总和相同 → 负载 |
| 第3步 | 外部 + 内部都相同 → 负载 | |
| 优先级 | ASE1 > ASE2(无视 cost,直接优先) |
⚠️ ASE1 到底是什么?
ASE1 体现的是"整条路径的优劣":内部 cost(到 ASBR 的代价)+ 外部 cost(引入时的代价)。适用于多出口选路精细控制。 ASE2 只看外部 cost,忽略 OSPF 域内路径差异,适用于"只要出口好就行"的简单场景。
4.2 内部 cost 与 FA 的关系
4.3 选路示例
| 路径 | 外部 cost | 内部 cost | ASE2 结果 | ASE1 结果 |
|---|---|---|---|---|
| 路径 A | 5 | 1 | 选 A | 5+1=6 → 负载 |
| 路径 B | 1 | 5 | 选 B ✓ | 1+5=6 → 负载 |
4.4 修改 cost-type
# 将特定外部路由改为 ASE1
AR5:
ospf 1
import-route direct cost 155 type 1 route-policy loopback5. Router-ID 唯一性
🚨 整个 OSPF 域中 Router-ID 必须唯一
| 场景 | RID 分布 | 结果 |
|---|---|---|
| 直连冲突(1.1.1.1 ↔ 1.1.1.1) | 同区 | 邻居不能建立,路由学不到 |
| 跨区冲突(1.1.1.1 — area1 — ABR — area1 — 1.1.1.1) | 同区 | 邻居可以建立,路由学不到 |
| 跨区不同区(1.1.1.1 — area0 — ABR — area1 — 1.1.1.1) | 不同区 | 邻居可以建立,路由可学到(ABR 产生 T3 改了 ADV RID) |
华为:自动恢复(auto-recovery),发现冲突后自动修改 RID 为物理接口 IP。 思科:必须唯一,否则一定出问题。
6. OSPF 特殊区域总览
核心思路:区域设备性能不足 → 减少 LSA 数量 → 同时保证数据转发不出问题 → 用默认路由兜底。
6.1 四种区域对比
| 区域类型 | 允许的 LSA | 拒绝的 LSA | ABR 产生默认路由 | ASBR 存在 |
|---|---|---|---|---|
| 常规区域 | T1, T2, T3, T4, T5 | — | ❌ | ✅ |
| Stub | T1, T2, T3 | T4, T5 | ✅ T3 默认路由 | ❌ 无意义 |
| Totally Stub | T1, T2, T3*(默认路由) | T3, T4, T5 | ✅ T3* 默认路由 | ❌ 无意义 |
| NSSA | T1, T2, T3, T7 | T4, T5 | ✅ T7 默认路由 | ✅ 产生 T7 |
| Totally NSSA | T1, T2, T7, T3*(默认路由) | T3, T4, T5 | ✅ T3* 默认路由 | ✅ 产生 T7 |
6.2 Hello 包 Option 字段标识
⚠️ 特殊区域配置注意事项
- 特殊区域所有路由器必须配置一致,否则邻居无法建立(Hello 包 Option 字段不匹配)
- Area 0 不能配置为特殊区域
- 有 Virtual Link 穿越的非骨干区域也不能配置为特殊区域
- Stub/Totally Stub 区域的 ASBR 没有意义(T5 被拒绝,无法传播外部路由)
- ABR 的默认路由 cost 可调:
default-cost <value>(默认 cost=1)
7. Stub 与 Totally Stub
7.1 场景
区域 2 中设备型号较低,资源不足,但全网有 10000 条 Type 5 LSA。区域 2 所有设备被迫存储这些外部路由 → 压力巨大。
解决:把区域 2 设为 Stub,拒绝 T4/T5,ABR 下发一条 T3 默认路由保证数据访问。
# 所有路由器都需要配置
AR1, AR2, AR3:
ospf 1
area 2
stub
# ABR 上修改默认路由 cost
AR2, AR3:
ospf 1
area 2
default-cost 37.2 进阶:Stub → Totally Stub
设置 Stub 后,T4/T5 消失了,但还有大量 T3 LSA 压着设备。
解决:在 ABR 上追加 no-summary → Totally Stub,连 T3 也拒绝,只保留一条 T3 默认路由。
# 只在 ABR 上配置 no-summary
AR2, AR3:
ospf 1
area 2
stub no-summary
# 区域内普通路由器仍然只配 stub
AR1:
ospf 1
area 2
stub8. NSSA 与 Totally NSSA
8.1 场景
区域 2 已经是 Totally Stub,但现在区域内的 AR1 需要引入外部网段(如本地业务系统)。
矛盾:Stub 区域不允许 T5 → AR1 不能成为 ASBR → 无法引入外部。
解决:妥协产生 NSSA(Not So Stubby Area)——仍拒绝 T4/T5,但允许 ASBR 用 Type 7 LSA 代替 Type 5 通告外部路由。ABR 负责把 Type 7 转换成 Type 5(7 转 5)向骨干区域传播。
8.2 配置
# 所有路由器都需要配置为 NSSA
AR1, AR2, AR3:
ospf 1
area 2
nssa
# Totally NSSA(在 ABR 上追加 no-summary)
AR2, AR3:
ospf 1
area 2
nssa no-summary8.3 Type 7 LSA 结构
<AR1> dis ospf lsdb nssa 11.1.1.0NSSA
11.1.1.01.1.1.1NP(N=1,P=1)5(外部 cost)1(NSSA1)10.1.1.1(NSSA 常见非 0)8.4 7 转 5 规则
NSSA ABR 将 Type 7 转换为 Type 5 向骨干区域转发:
9. 选路总汇
10. 特殊区域快速决策树
11. 易混淆点与考前速记
| 对比项 | 结论 |
|---|---|
| T4 作用 | 定位 ASBR(拓扑),由 ABR 产生,传播规则 = T3 |
| T4 vs T3 | T3 是叶子(网段),T4 是拓扑(ASBR 的 cost) |
| T4 vs T5 关系 | 有 T5 必有 T4;没有 T5 不一定没 T4(ASBR 身份还在就有 T4) |
| ASBR 三种定义 | import-route / 产生默认路由 / NSSA ABR(7转5) |
| ASE2 默认 | 引入外部路由默认 cost-type = 2 |
| ASE1 > ASE2 | 无视 cost 直接优先 |
| FA = 0.0.0.0 | 内部 cost = 我到 ASBR 的 cost |
| FA ≠ 0.0.0.0 | 内部 cost = 我到 FA 的 cost |
| 4 种特殊区域 | Stub / Totally Stub / NSSA / Totally NSSA |
| Stub | 拒绝 T4、T5,ABR 下发 T3 默认路由 |
| Totally Stub | Stub + 拒绝 T3,仅保留 T3* 默认路由 |
| NSSA | 拒绝 T4、T5,允许 T7(ASBR 产生),ABR 7 转 5 |
| Totally NSSA | NSSA + 拒绝 T3,仅保留 T3* 默认路由 |
| 配置关键字 | Stub: stub;Totally Stub: stub no-summary;NSSA: nssa;TL-NSSA: nssa no-summary |
| 限制 | Area 0 不能配特殊区域;Vlink 穿越区域不能配特殊区域 |
| 特殊区域必须全配 | 区域内所有路由器一致,否则邻居建不来(Option 不匹配) |
| 普通区域 Option | N=0, E=1 |
| Stub Option | N=0, E=0 |
| NSSA Option | N=1, E=0 |
| RID 唯一性 | 华为自动恢复(auto-recovery),思科必须唯一 |
考前速记 10 条:
T4 定位 ASBR(拓扑),传播规则 = T3,有 T5 必有 T4ASE1 看内外总和,ASE2 先看外部 cost;ASE1 > ASE2 无条件优先FA=0 时内部 cost=我到 ASBR;FA≠0 时内部 cost=我到 FAStub 拒绝 T4/T5,ABR 下发 T3 默认路由Totally Stub = Stub + no-summary,拒绝 T3,只留 T3* 默认NSSA = Stub + 允许 ASBR 产生 T7,ABR 做 7 转 5Totally NSSA = NSSA + no-summary,拒绝 T3特殊区域全部路由器要配一致,Option 位(N/E)不匹配邻居建不起来Area 0 不能配特殊、Vlink 穿越区域不能配特殊华为 RID 冲突自动恢复,思科必须唯一
🤖 AI 伴学
想把 OSPF 特殊区域记得更牢?让 AI 用"快递中转站"类比:
"请把 OSPF 的四种特殊区域用'快递中转站'来类比:Stub 区域就像一个只收本地件和同城件(T1/T2/T3)、不收国际件(T4/T5)的站点,国外的件统一由 ABR 这个'中转站长'用默认路由代转。Totally Stub 更极端——连同城件(T3)都不收了,只留一个'有任何问题找站长'的默认路由。NSSA 是 Stub 的妥协版:站点内部突然有了发国际件的需求(ASBR),那就用 T7 信封代替 T5 信封发出,到了 ABR 站长那儿再换成 T5 信封发到全国。Totally NSSA 就是 NSSA 的极端简化版。最后对比 ASE1 和 ASE2 的选路:ASE2 只看'国际邮费(外部 cost)',哪家便宜走哪家;ASE1 看'全程邮费(内部+外部)',更精准但也更复杂。"
