关键词:OSPF、路由选路、优先级、区域内路由、区域间路由、外部路由、Metric

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

一、引言

当 OSPF 路由器通过不同途径学习到到达同一目的网络的多条路由时,必须有一套明确的选路规则来确定最优路径。OSPF 的路由选路遵循严格的优先级顺序:区域内路由优先于区域间路由,区域间路由优先于外部路由。

这种优先级设计体现了 OSPF 分层架构的核心思想:尽可能在最小的拓扑范围内做出最优的转发决策。理解 OSPF 的选路规则,不仅有助于理解 OSPF 的路由行为,也是进行路径调优和故障排查的基础。

二、核心概念

2.1 OSPF 路由选路优先级

OSPF 路由类型的优先级从高到低:

优先级 路由类型 标记符号 LSA 来源
1 区域内路由(Intra-Area) O Type 1 + Type 2
2 区域间路由(Inter-Area) O_* Type 3
3 第1类外部路由(External Type 1) O_E1 Type 5 (E1) / Type 7 (E1)
4 第2类外部路由(External Type 2) O_E2 Type 5 (E2) / Type 7 (E2)

OSPF 路由选路优先级 - 图示

2.2 同类型路由的选路规则

当多条路由属于同一类型时,选路规则细化为:

区域内路由(Intra-Area): 1. 比较 SPF 计算得出的最短路径 Cost,Cost 小的优先 2. Cost 相同时,多条路由形成等价负载分担(ECMP)

区域间路由(Inter-Area): 1. 比较总 Cost(到达 ABR 的 Cost + Type 3 中的 Cost) 2. 总 Cost 相同,比较 ABR 的 Router ID,大的优先

E1 外部路由: 1. 比较总 Cost(外部 Cost + 到达 ASBR 的内部 Cost) 2. 总 Cost 相同,比较 ASBR 的 Router ID

E2 外部路由: 1. 比较外部 Cost(仅 Type 5 中的 Cost) 2. 外部 Cost 相同,比较 Type 5 LSA 中的 Advertising Router(ASBR 的 Router ID) 3. 仍相同,比较到达 ASBR 的内部 Cost,小的优先

2.3 选路优先级的设计原理

OSPF 选路优先级体现了以下设计原则:

原则 说明
精确性优先 区域内路由基于完整拓扑计算,路径最精确
收敛速度 区域内变化触发 SPF,区域间变化仅更新路由表
防环保证 区域内 SPF 天然无环;区域间通过 Area 0 中转防环
外部隔离 外部路由优先级最低,避免外部路径影响内部最优路径

三、技术细节

3.1 区域内路由的计算

区域内路由通过 SPF(Dijkstra)算法计算,基于完整的拓扑视图:

  1. SPF 以本路由器为根节点
  2. 使用 Type 1(Router LSA)和 Type 2(Network LSA)构建拓扑图
  3. 计算到达每个目的节点的最短路径树
  4. 路径 Cost 为沿途所有接口 Cost 的累加和

示例: 区域内路由的计算 - 图示

R1 到达 R3: - 路径1(R1→R2→R3):Cost = 10 + 20 = 30 - 路径2(R1→R4→R3):Cost = 50 + 5 = 55 - 选择路径1(Cost 30)

3.2 区域间路由的计算

区域间路由的计算不运行 SPF,而是基于 Type 3 LSA:

到达目标网络的Cost = 到达ABR的Cost + Type3 LSA中的Cost

其中"到达 ABR 的 Cost"通过区域内 SPF 计算得出,Type 3 LSA 中的 Cost 是生成该 LSA 的 ABR 到达目标网络的距离。

3.3 外部路由的计算

E1 外部路由:

总Cost = Type5中的外部Cost + 到达ASBR的内部Cost

E2 外部路由:

总Cost = Type5中的外部Cost

E2 类型忽略到达 ASBR 的内部代价,适用于所有 ASBR 到达外部网络的代价近似相等的场景(如多出口接入同一上游 ISP)。

3.4 路由表中的 OSPF 路由标识

在华为设备的 IP 路由表中,OSPF 路由的标识如下:

标记 含义 路由类型
O OSPF 区域内路由 Intra-Area
O_* OSPF 区域间路由 Inter-Area
O_E1 OSPF E1 外部路由 External Type 1
O_E2 OSPF E2 外部路由 External Type 2
O_NSSA1 NSSA E1 外部路由 NSSA External Type 1
O_NSSA2 NSSA E2 外部路由 NSSA External Type 2
# 查看OSPF路由表
display ospf routing
display ip routing-table protocol ospf

# 输出示例
  Destination/KMask  Pre  Cost  NextHop         Interface
  10.1.1.0/24        10   10    10.0.0.2        GE0/0/0         O    (区域内)
  10.2.0.0/16        10   20    10.0.0.2        GE0/0/0         O_*  (区域间)
  172.16.0.0/16      10   10    10.0.0.2        GE0/0/0         O_E2 (外部)

四、实战配置/案例分析

4.1 查看路由选路详情

# 查看特定路由的选路详情
display ip routing-table 10.1.1.0 verbose
 # 显示该路由的来源、Cost、下一跳、出接口等详细信息

# 查看所有OSPF路由及其类型
display ospf routing

# 按区域查看路由
display ospf routing area 0.0.0.0
display ospf routing asbr

# 查看路由选路统计
display ip routing-table statistics

4.2 案例分析:区域内路由优先于区域间路由

拓扑: 案例分析:区域内路由优先于区域间路由 - 图示

场景:R1 到达 192.168.1.0/24 有两条路径: - 区域内路径:R1→R3,Cost = 10 - 区域间路径:R1→ABR→R2,Cost = 100 + 1 = 101

选路结果:尽管区域间路径的 Cost 看起来更小(如果只看 Cost),但由于区域内路由优先级高于区域间路由,R1 选择通过 R3 的路径。

注意:如果区域内路径的 Cost 非常大,OSPF 仍然优先选择区域内路径。这是 OSPF 的设计特性,确保区域内拓扑的精确性。

4.3 案例分析:E1 与 E2 选路差异

场景: 案例分析:E1 与 E2 选路差异 - 图示

E2 选路结果: - 两条 E2 路由的外部 Cost 均为 10 - 比较 ASBR 的 Router ID,Router ID 大的胜出

若改为 E1: - ASBR1 路径:10 + 2 = 12 - ASBR2 路径:10 + 20 = 30 - 选择 ASBR1 路径(Cost 12)

五、总结

优先级 路由类型 标记 选路依据
最高 区域内 O SPF计算的最短路径Cost
次高 区域间 O_* 到达ABR的Cost + Type3中的Cost
次低 E1外部 O_E1 外部Cost + 到达ASBR的Cost
最低 E2外部 O_E2 外部Cost

思考

  1. 为什么 OSPF 规定区域内路由的优先级高于区域间路由?即使区域间路由的 Cost 更小,也优先选择区域内路由,这样设计的好处和代价分别是什么?
  2. 当 OSPF 路由与其他协议(如静态路由、BGP)学习到同一目的网络时,OSPF 路由是否一定优先?为什么?
  3. E1 和 E2 外部路由的选路规则差异在什么场景下会产生明显不同的选路结果?

下篇预告:第65篇:OSPF 开销计算与带宽参考值