Skip to content

0. 课件来源

OSPF 域间路由靠 Type 3,外部路由靠 Type 5。但外部路由的完整理解需要三张 LSA 配合:Type 4(定位 ASBR)、Type 5(外部网段)、Type 7(NSSA 外部代偿)。本节把这三张 LSA 和四种特殊区域一网打尽。


1. LSA 完整对照表

在 Type 1/2/3 基础上,新增四张 LSA:

常见 LSA 字段速览
Type 1 · Router LSA
LSA ID / ADV Router = 始发 RID
link 信息,本区域泛洪
Type 2 · Network LSA
LSA ID = DR 接口 IP;ADV = DR RID
MA 掩码 + 成员 RID,本区域泛洪
Type 3 · Summary LSA
LSA ID = 域间路由前缀;ADV = ABR RID
掩码 + 始发区域 cost,区域内泛洪
Type 4 · ASBR Summary
LSA ID = ASBR RID;ADV = ABR RID
到 ASBR 的 cost,区域内泛洪
Type 5 · AS External
LSA ID = 外部路由前缀;ADV = ASBR RID
掩码、外部 cost、FA、cost-type,全网泛洪
Type 7 · NSSA External
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 是多少"。

外部路由计算公式
① 与 ASBR 同区域
T5+T1/T2算出 ASE 路由
② 与 ASBR 不同区域
T5+T4+T1/T2先定位 ASBR + 外部网段

2.2 Type 4 的传播规则(与 Type 3 完全一致)

规则说明
1ABR 发现始发非骨干区域有 ASBR → 向骨干区域产生 T4(cost=ABR 到 ASBR 的最优 cost)
2ABR 把骨干区域的 T4 → 向非骨干区域产生 T4
3ABR 发现骨干区域有 ASBR → 向非骨干区域产生 T4
4ABR 不会把非骨干区域的 T4 向骨干区域产生 T4
5ABR 只计算来自骨干区域的 T4 对应的外部 ASE 路由

💡 Type 3 vs Type 4

相同点不同点
都是 ABR 产生,传播规则相同T3 是叶子(域间路由网段)
都遵循防环规则T4 是拓扑(定位 ASBR)

2.3 Type 4 与 Type 5 的关系

Type 4 与 Type 5 的依存关系
有 T5 → 必然有 T4
ASBR 在非骨干区域时,需 T4 定位其位置
没有 T5 → 不一定没有 T4
只要 ASBR 角色还在,T4 就持续存在
📕 场景举例(AR5 = ASBR)
AR5 undo ip address loopback 55
无 T5仍是 ASBRT4 仍存在 ✓
AR5 undo import-route direct
失 ASBR 身份T5 消失T4 随之消失 ✗

3. Type 5 LSA(AS External)

3.1 ASBR 的定义

ASBR(Autonomous System Boundary Router):具备引入外部路由能力的路由器。

三种表现:

  1. 进程下配置 import-route xxx
  2. 本路由器产生默认路由(Type 5 default)
  3. NSSA 区域的 ABR(同时是 ABR + ASBR,负责 7 转 5

3.2 Type 5 结构

Type 5 · AS External LSA
<AR5> dis ospf lsdb ase 55.5.5.0
Type
External
Ls id
55.5.5.0(外部网段)
Adv rtr
5.5.5.5(ASBR Router-ID)
Net mask
255.255.255.0
TOS 0 Metric
1(外部 cost)
E type
2(默认 ASE2)
Forwarding Address
0.0.0.0(走 ASBR)
Tag
1

4. 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 的关系

内部 cost 与 FA 的关系
FA = 0.0.0.0
内部 cost 等于
我到 ASBR 的 cost
通过 T1/T2 + T4 计算得出
FA ≠ 0.0.0.0
内部 cost 等于
我到 FA 地址的 cost
FA 机制详见下一节

4.3 选路示例

ASE1 vs ASE2 选路示例
路径外部 cost内部 costASE2 结果ASE1 结果
路径 A51选 A5+1=6 → 负载
路径 B15选 B ✓1+5=6 → 负载
ASE1 → 负载(总和相等)
ASE2 → 选 B(外部 cost 小)

4.4 修改 cost-type

text
# 将特定外部路由改为 ASE1
AR5:
ospf 1
 import-route direct cost 155 type 1 route-policy loopback

5. 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拒绝的 LSAABR 产生默认路由ASBR 存在
常规区域T1, T2, T3, T4, T5
StubT1, T2, T3T4, T5✅ T3 默认路由❌ 无意义
Totally StubT1, T2, T3*(默认路由)T3, T4, T5✅ T3* 默认路由❌ 无意义
NSSAT1, T2, T3, T7T4, T5✅ T7 默认路由✅ 产生 T7
Totally NSSAT1, T2, T7, T3*(默认路由)T3, T4, T5✅ T3* 默认路由✅ 产生 T7

6.2 Hello 包 Option 字段标识

Hello Options 位:N / E
常规区域
N=0 E=1
允许外部路由
Stub / Totally Stub
N=0 E=0
拒绝 T4/T5
NSSA / Totally NSSA
N=1 E=0
用 Type 7 代替 Type 5

⚠️ 特殊区域配置注意事项

  1. 特殊区域所有路由器必须配置一致,否则邻居无法建立(Hello 包 Option 字段不匹配)
  2. Area 0 不能配置为特殊区域
  3. Virtual Link 穿越的非骨干区域也不能配置为特殊区域
  4. Stub/Totally Stub 区域的 ASBR 没有意义(T5 被拒绝,无法传播外部路由)
  5. 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 默认路由保证数据访问。

text
# 所有路由器都需要配置
AR1, AR2, AR3:
ospf 1
 area 2
  stub

# ABR 上修改默认路由 cost
AR2, AR3:
ospf 1
 area 2
  default-cost 3

7.2 进阶:Stub → Totally Stub

设置 Stub 后,T4/T5 消失了,但还有大量 T3 LSA 压着设备。

解决:在 ABR 上追加 no-summaryTotally Stub,连 T3 也拒绝,只保留一条 T3 默认路由。

text
# 只在 ABR 上配置 no-summary
AR2, AR3:
ospf 1
 area 2
  stub no-summary

# 区域内普通路由器仍然只配 stub
AR1:
ospf 1
 area 2
  stub

8. 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 配置

text
# 所有路由器都需要配置为 NSSA
AR1, AR2, AR3:
ospf 1
 area 2
  nssa

# Totally NSSA(在 ABR 上追加 no-summary)
AR2, AR3:
ospf 1
 area 2
  nssa no-summary

8.3 Type 7 LSA 结构

Type 7 · NSSA External LSA
<AR1> dis ospf lsdb nssa 11.1.1.0
Type
NSSA
Ls id
11.1.1.0
Adv rtr
1.1.1.1
Options
NP(N=1,P=1)
TOS 0 Metric
5(外部 cost)
E type
1(NSSA1)
Forwarding Address
10.1.1.1(NSSA 常见非 0)

8.4 7 转 5 规则

NSSA ABR 将 Type 7 转换为 Type 5 向骨干区域转发:

P = 1
允许 7 转 5(Propagate)
P = 0
禁止 7 转 5,仅留在 NSSA 内

9. 选路总汇

外部路由选路总汇
Type 1(ASE1 / NSSA1)> Type 2(ASE2 / NSSA2)—— 优先级无视 cost 值
ASE1 / NSSA1(看总和)
内部 cost + 外部 cost 之和
1. 总和小的优先
2. 总和相同 → 负载
ASE2 / NSSA2(看外部)
外部 cost 优先
1. 外部 cost 小的优先
2. 外部 cost 相同 → 比较内部 cost
3. 外部和内部都相同 → 负载

10. 特殊区域快速决策树

特殊区域快速决策树
区域需要拒绝 T4/T5 吗?
└─ 否
常规区域
└─ 是
区域内有 ASBR 吗?
├─ 否
需要拒绝 T3 吗?
├─ 否
Stub
└─ 是
Totally Stub
no-summary
└─ 是
需要拒绝 T3 吗?
├─ 否
NSSA
└─ 是
Totally NSSA
no-summary

11. 易混淆点与考前速记

对比项结论
T4 作用定位 ASBR(拓扑),由 ABR 产生,传播规则 = T3
T4 vs T3T3 是叶子(网段),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 StubStub + 拒绝 T3,仅保留 T3* 默认路由
NSSA拒绝 T4、T5,允许 T7(ASBR 产生),ABR 7 转 5
Totally NSSANSSA + 拒绝 T3,仅保留 T3* 默认路由
配置关键字Stub: stub;Totally Stub: stub no-summary;NSSA: nssa;TL-NSSA: nssa no-summary
限制Area 0 不能配特殊区域;Vlink 穿越区域不能配特殊区域
特殊区域必须全配区域内所有路由器一致,否则邻居建不来(Option 不匹配)
普通区域 OptionN=0, E=1
Stub OptionN=0, E=0
NSSA OptionN=1, E=0
RID 唯一性华为自动恢复(auto-recovery),思科必须唯一

考前速记 10 条

  1. T4 定位 ASBR(拓扑),传播规则 = T3,有 T5 必有 T4
  2. ASE1 看内外总和,ASE2 先看外部 cost;ASE1 > ASE2 无条件优先
  3. FA=0 时内部 cost=我到 ASBR;FA≠0 时内部 cost=我到 FA
  4. Stub 拒绝 T4/T5,ABR 下发 T3 默认路由
  5. Totally Stub = Stub + no-summary,拒绝 T3,只留 T3* 默认
  6. NSSA = Stub + 允许 ASBR 产生 T7,ABR 做 7 转 5
  7. Totally NSSA = NSSA + no-summary,拒绝 T3
  8. 特殊区域全部路由器要配一致,Option 位(N/E)不匹配邻居建不起来
  9. Area 0 不能配特殊、Vlink 穿越区域不能配特殊
  10. 华为 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 看'全程邮费(内部+外部)',更精准但也更复杂。"

真人撰写written by human