第64篇:OSPF 路由选路——区域内 > 区域间 > 外部

关键词

OSPF、路由选路、优先级、Intra-Area、Inter-Area、External、Type1、Type2


一、OSPF 路由的三种类型

OSPF 将路由分为三个层级,优选顺序为:

区域内路由(Intra-Area)> 区域间路由(Inter-Area)> 外部路由(External)

Area 1            Area 0(骨干)             外部网络
RouterA 10.0.1.0/24 Cost=1 ────── RouterB Type5 ──────── 172.16.0 Cost=20 ASBR
│ │
│ OSPF 优选顺序 │
│ Intra-Area (O) → 优先 │
│ Inter-Area (O-IA) → 次之 │
└── External (O-E2) → 最后 │

二、完整优先顺序

优先级 路由类型 路由表中标记 说明
1(最高) Intra-Area(区域内) O 本区域内通过 SPF 计算得出
2 Inter-Area(区域间) O-IA 通过 Type 3 LSA 学习
3 Type 1 External(E1) O-ASE 外部路由,累加内部 Cost
4(最低) Type 2 External(E2) O-ASE 外部路由,不累加内部 Cost

三、区域内路由(Intra-Area)

3.1 特征

  • 路由表标记:O
  • 优先级(Preference):10
  • 来源:Type 1 + Type 2 LSA 通过 SPF 计算
  • 可信度:最高

3.2 示例

display ip routing-table protocol ospf

Destination/Mask    Proto  Pre  Cost      NextHop         Interface
10.0.1.0/24         OSPF   10   1         10.0.12.1       GE0/0/0
10.0.2.0/24         OSPF   10   2         10.0.12.2       GE0/0/1

四、区域间路由(Inter-Area)

4.1 特征

  • 路由表标记:O-IA
  • 优先级(Preference):10(与区域内相同)
  • 来源:Type 3 LSA
  • 选路:比较 Type 3 中的 Cost 值

4.2 区域内与区域间的优先关系

虽然协议优先级相同(都是 10),但 OSPF 在内部逻辑上优先选择区域内路由

路由器同时学到 10.0.1.0/24:
  方式 1:区域内(O)→ 下一跳直连,Cost=1
  方式 2:区域间(O-IA)→ 下一跳经 ABR,Cost=5

选择:区域内路由(O)→ Cost 更小更优

4.3 查看区域间路由

display ip routing-table protocol ospf

Destination/Mask    Proto  Pre  Cost      NextHop         Interface
10.0.3.0/24         O-OSPF 10   20        10.0.0.2        GE0/0/0

五、外部路由(External)

5.1 E1 与 E2 的选择

外部路由的选路规则稍微复杂一些:

E2 选路规则(默认):
  1. 先比较外部 Cost(Type 5 中的 Metric)
  2. 外部 Cost 相同 → 比较到达 ASBR 的内部 Cost

E1 选路规则:
  总 Cost = 外部 Cost + 内部 Cost
  选择总 Cost 最小的路径

5.2 E1 vs E2 选路对比

                   ┌──── ASBR1 ──── 172.16.0.0/16 (E2 Cost=20)
                   │    内部 Cost=10
Router ─── ABR ───┤
                   │    内部 Cost=20
                   └──── ASBR2 ──── 172.16.0.0/16 (E2 Cost=20)

E2 选路:
  ASBR1:Cost=20(只看外部)
  ASBR2:Cost=20(相同)
  → 负载分担

E1 选路:
  ASBR1:20 + 10 = 30
  ASBR2:20 + 20 = 40
  → 优选 ASBR1

5.3 外部路由的优先级

display ip routing-table protocol ospf

Destination/Mask    Proto  Pre  Cost      NextHop         Interface
172.16.0.0/16       O-ASE  150  20        10.0.0.2        GE0/0/0

注意:外部路由的协议优先级为 150,远高于区域内/区域间路由的 10。


六、完整选路决策树

收到到达同一目的地的多条 OSPF 路由:

  1. 先按 OSPF 路由类型排序 区域内(O) > 区域间(O-IA) > E1 > E2 ↓
  2. 同类型比 Cost Cost 越小越优先 ↓
  3. Cost 相同 → 负载分担(ECMP) 等价路由加入路由表

七、实际案例

7.1 拓扑

                       172.16.0.0/16
                           │
                       ┌───┴───┐
                       │ ASBR  │
                       └───┬───┘
                           │
               Area 0 ┌────┴────┐
                      │         │
                    ABR1       ABR2
                   Cost=5     Cost=15
                      │         │
               Area 1 └────┬────┘
                           │
                        RouterC

7.2 RouterC 的路由表

# 情况 1:外部路由使用 E2
display ip routing-table 172.16.0.0

Destination/Mask    Proto  Pre  Cost      NextHop         Interface
172.16.0.0/16       O-ASE  150  20        10.0.0.1        GE0/0/0
                                       ← 两条等价,负载分担
172.16.0.0/16       O-ASE  150  20        10.0.0.2        GE0/0/1

# 情况 2:外部路由使用 E1
display ip routing-table 172.16.0.0

Destination/Mask    Proto  Pre  Cost      NextHop         Interface
172.16.0.0/16       O-ASE  150  25        10.0.0.1        GE0/0/0
                                       ← 优选 Cost=20+5=25

八、常见误解澄清

误解 1:OSPF 路由优先级都是 10

纠正:区域内和区域间的协议优先级是 10,但外部路由是 150

# 可以通过 preference 命令修改
ospf 1
 preference 15                       # 修改所有 OSPF 路由的优先级
 preference ase 160                  # 单独修改 ASE 路由的优先级

误解 2:E1 一定比 E2 优先

纠正E1 在选路优先级上高于 E2,但这不是比较 Cost,而是路由类型优先级。哪怕 E2 的 Cost 为 1,E1 的 Cost 为 1000,仍然优选 E1。

误解 3:Cost 相同一定负载分担

纠正:仅当路由类型相同Cost 相同时才会负载分担。区域间 O-IA 与区域内 O 即使 Cost 相同,也只会选 O。


九、总结

路由类型 标记 优先级(Preference) 选路顺序
区域内 O 10 1
区域间 O-IA 10 2
外部 E1 O-ASE 150 3
外部 E2 O-ASE 150 4

一句话记住内 > 间 > E1 > E2,同类型比 Cost,Cost 相同负载分担。


十、思考

  1. OSPF 区域内路由和区域间路由的协议优先级是否相同?实际上哪个优先?
  2. 如果一条外部路由同时以 E1 和 E2 的方式存在,路由器会选择哪一个?
  3. 路由器上有 10.0.1.0/24 的区域内路由(Cost=5)和区域间路由(Cost=3),会选择哪个?为什么?
  4. 在多 ASBR 场景中,E2 路由选路时是先比外部 Cost 还是内部 Cost?
  5. 如何通过命令修改 OSPF 路由的默认优先级?

下篇预告:第65篇《OSPF 开销计算与带宽参考值》——深入理解 Cost 的计算方式和调优方法。