问题:请描述OE1 与 OE2 的区别以及Forward Metric
一、OE1 与 OE2对比总览
| 外部 Cost + 内部 Cost | 仅外部 Cost | |
| 等价时的 tie-breaker | ||
二、Cost 计算对比
场景:外部路由引入时 cost = 20,内部路由器到 ASBR 的 cost = 10OE1 总 Cost = 20 + 10 = 30 ← 内部 cost 参与计算OE2 总 Cost = 20 ← 内部 cost 不计入三、什么是Forward Metric ?
Forward Metric : 到 ASBR 地址的区域内部路径 Cost。
OE2 的 Forward Metric
两条 OE2 路由到同一目的 10.1.1.0/24:路由A: External Cost=20, 到 ASBR 到 A 内部 Cost=5路由B: External Cost=20, 到 ASBR 到 B 内部 Cost=10选路: Step 1: External Cost = 20 = 20 → 相等 Step 2: Forward Metric → A(5) < B(10) 结果: 选择路由A ✅OE1 不需要额外比较 Forward Metric(FM直接参与计算cost)
两条 OE1 路由到同一目的:路由A: External Cost=20 + 到 ASBR-A Cost=5 → 总 Cost = 25路由B: External Cost=20 + 到 ASBR-B Cost=10 → 总 Cost = 30结果: A(25) < B(30) → 选A ✅(Forward Metric 已自动计算在内)四、OE1 vs OE2 选择指南
五、实战场景面试题:OE1 多 ASBR 选路分析
这是面试题中常考的"两台 ASBR 同时引入同一外部路由"的场景,重点考察:① OE1 与 OE2 的 cost 计算差异;② 5 类 LSA 域内泛洪时 metric 是否累加;③ 收到多条 5 类 LSA 时如何优选。
网络拓扑如下:

场景一:两台 ASBR(AR3和AR4) 同时引入同一外部路由 10.1.1.1(type 1),但引入 cost 不同
AR3(ASBR-1)─── type1 引入 10.1.1.1,cost 取默认值 1 AR4(ASBR-2)─── type1 引入 10.1.1.1,cost 修改为 1000Q1:针对AR7和AR8设备来说,AR3和AR4谁会作为主出口设备?答:AR3 作为主出口设备。因为所有路由器到达 AR3的内部cost + 外部cost 的总计 cost更低,因此AR3作为主出口设备。
Q2:AR7 访问 10.1.1.1 的下一跳是谁?答:AR5。AR7 到 AR5 内部 cost=1,再 AR5→AR3 内部 cost=1,到 AR3 总内部 cost=2;AR7 到 AR8或者AR6 内部 cost=1,再 AR8→AR5→AR3 内部 cost=2,总内部 cost=3。AR5 更近。
Q3:AR8 访问 10.1.1.1 的下一跳是谁?答:AR5。AR8→AR5→AR3 内部 cost=2;AR8→AR7/AR6 →AR5→AR3 内部 cost=3。前者更近。
Q4:AR7 和 AR8 各能收到几个 5 类 LSA?metric 各是多少?答:都收到 2 个 5 类 LSA:
• 一条来自 AR3,External Cost = 1; • 一条来自 AR4,External Cost = 1000。
Q5:假设 Area 0 内所有链路 cost 都是 1,AR8 访问 10.1.1.1 的总 cost 是多少?答:总 cost = 3(内部 2 + 外部 1)。即 AR8→AR5→AR3 内部 cost=2,加上 ASBR(AR3)的外部 cost=1。
💡 场景一核心结论:本例选用 OE1(Type-1 External),正是为了让"AR3 发布、cost=1 的 5 类 LSA"在域内被自动优选——即使 AR4 也发布了同一目的路由,由于 AR4 的外部 cost 过大且到 AR4 的内部路径无优势,最终 AR3 成为 ASBR 出口。
场景二:两台 ASBR(AR3和AR4) 同时引入同一外部路由 10.1.1.1(type 1),但引入 cost 相同
AR3(ASBR-1)─── type1 引入 10.1.1.1,cost 取默认值 1 AR4(ASBR-2)─── type1 引入 10.1.1.1,cost 取默认值 1Q1:针对AR7和AR8设备来说,AR3 和 AR4 谁会作为主出口设备?答:两台都是主出口,形成负载分担。两台 ASBR 外部 cost 相同(都是 1),AR7和AR8 路由器到达两台 ASBR(AR3 和 AR4 )的总cost相等。
Q2:AR7 访问 10.1.1.1 的下一跳是谁?答:AR5和AR6形成ECMP,当下一跳AR5则出口设备则为AR3,下一跳AR6出口设备则为AR4。AR7→AR5→AR3 内部 cost=2,总cost =2+1=3;AR7→AR6→AR4 内部 cost=2,总cost =2+1=3。出口形成负载分担。
Q3:AR7 和 AR8 各收到几个 5 类 LSA?metric 各是多少?答:都收到 2 个 5 类 LSA,metric 都是 1。两台 ASBR 都取默认值,外部 cost 完全一致。
Q4:AR8 的 GE 0/0/2(连 AR5 的链路)DOWN 掉后,AR8 的下一跳是谁?出口设备是谁?答:下一跳切换为 AR6(走 AR4)。AR8→AR6→AR4 内部 cost=2,总 cost=2+1=3。原直连路径不可达(AR8→AR5→AR3),AR8 仍可通过绕路到达 AR3,但内部 cost 上增大后被 AR4 路径超越。
💡 场景二核心结论:外部 cost 相同时,OE1 自动实现"就近出口"——AR7和AR8 均可以实现双出口,流量在域内自然分流。这正是 OE1 相比 OE2 的核心优势:不需要手动配置策略,内部距离自动决定出口。
场景三:两台 ASBR(AR3和AR4) 同时引入同一外部路由 10.1.1.1(type 2),但引入 cost 相同
AR3(ASBR-1)─── type2 引入 10.1.1.1,cost 取默认值 1 AR4(ASBR-2)─── type2 引入 10.1.1.1,cost 取默认值 1Q1:针对AR7和AR8设备来说,AR3 和 AR4 谁会作为主出口设备?答:两台都是主出口。OE2 外部 cost 相同(都是 1),触发 Forward Metric 决胜。由于 AR7 到 AR3/AR4 的 Forward Metric 都等于 2(AR7→AR5→AR3与 AR7→AR6→AR4均为 2 跳),AR8 到 AR3/AR4 的 Forward Metric 也都等于 2(AR8→AR5→AR3与 AR8→AR6→AR4均为 2 跳),所以 AR7 和 AR8 都形成 ECMP,AR3 和 AR4 同为主出口。
Q2:AR7 访问 10.1.1.1 的下一跳是谁?总 cost 是多少?答:AR5 和 AR6 形成 ECMP。
• AR7→AR5→AR3:Forward Metric=2 • AR7→AR6→AR4:Forward Metric=2 • 两条 Forward Metric 相等,负载分担 • 总 cost = 1(OE2 只看外部 cost,不累加内部距离)
Q3:AR7 和 AR8 各收到几个 5 类 LSA?metric 各是多少?答:都收到 2 个 5 类 LSA,metric 都是 1。5 类 LSA 在域内泛洪时 metric 不累加(区别于 1/3 类 LSA 的逐跳累加机制),ASBR 发布时是多少,远端路由器看到的就是多少。
Q4:AR8 的 GE 0/0/2(连 AR5 的链路)DOWN 掉后,AR8 的下一跳切换为谁?总 cost 是多少?答:下一跳切换为 AR6(走 AR4)。原直连 AR8→AR5 断开后:
• 到 AR4 的 Forward Metric = 2( AR8→AR6→AR4,仍直连)• 到 AR3 的 Forward Metric = 3(绕路 AR8→AR6→AR5→AR3或AR8→AR7→AR5→AR3)• Forward Metric 决胜,选 AR4,下一跳 AR6 • 总 cost = 1(OE2 不累加内部距离)
核心结论:同样的故障,OE1 总 cost 不变(仍 3,因为切换到了同等代价的 AR4 路径);OE2 总 cost 永远等于外部 cost——这是 OE2 与 OE1 最本质的区别:路由表 cost 不感知内部拓扑变化。
💡 场景三核心结论:OE2 的总 cost 永远是外部 cost(本例为 1),内部路径再长也不影响。但是当外部cost相同时,需要Forward Metric 充当"决胜因子"——谁到 ASBR 更近,就选谁发布的 5 类 LSA。
场景四:两台 ASBR(AR3和AR4) 同时引入同一外部路由 10.1.1.1(type 2),但引入 cost 不同
AR3(ASBR-1)─── type2 引入 10.1.1.1,cost 取默认值 1 AR4(ASBR-2)─── type2 引入 10.1.1.1,cost 修改为 1000Q1:针对AR7和AR8设备来说,AR3 和 AR4 谁会作为主出口设备?答:AR3 作为主出口设备。OE2 选路时优先比较外部 cost,1 < 1000,AR3 直接胜出——此时 Forward Metric 完全不参与决策,即使 AR8 到 AR4 的 Forward Metric 与到 AR3 相同(都是 2),也无法让 AR4 上位作为出口。
Q2:AR7 访问 10.1.1.1 的下一跳是谁?总 cost 是多少?答:AR5(走 AR3)。AR7→AR5→AR3,总 cost = 1(OE2 只看外部 cost)。即使 AR7 到 AR4 的 Forward Metric=2(与到 AR3 相同),由于外部 cost 不等(1 ≠ 1000),Forward Metric 不参与比较。
Q3:AR7 和 AR8 各收到几个 5 类 LSA?metric 各是多少?答:都收到 2 个 5 类 LSA:
• 来自 AR3,metric = 1 • 来自 AR4,metric = 1000
5 类 LSA 在域内泛洪时 metric 不累加,AR7/AR8 看到的 metric 与 ASBR 发布时完全一致。
Q4:AR7 的 GE 0/0/1(连 AR5 的链路)DOWN 后,AR7 的下一跳切换为谁?总 cost 是多少?与场景三(OE2, cost 相同)故障切换对比说明什么?答:出口仍为AR3,下一跳切换为 AR6 和 AR8 形成 ECMP。
• 原直连 AR7→AR5 断开,AR7 必须绕路到 AR3: • AR7→AR6→AR5→AR3= 3• AR7→AR8→AR5→AR3= 3• 到 AR4 的 Forward Metric = 2( AR7→AR6→AR4),更近• 但 OE2 外部 cost 不等(1 ≠ 1000),不比较 Forward Metric,仍然优选 AR3 • 总 cost = 1(OE2 不变)
核心结论:场景四揭示 OE2 的另一个本质特性——外部 cost 不等时,Forward Metric 完全失效。即使故障让 AR3 路径变长(Forward Metric=3 > AR4 的 2),OE2 仍然固守外部 cost 较小的 ASBR,无法感知内部拓扑变化。
💡 场景四核心结论:OE2 的 Forward Metric 仅在外部 cost 完全相等时才作为 tie-breaker 生效。一旦外部 cost 不等,无论内部拓扑如何变化(包括链路故障),OE2 都不会切换 ASBR。这正是 OE2 "外部 cost 稳定但内部拓扑不感知"特性的另一面——既稳定也"固执"。
🔑 四场景串联对比:
• 场景一(OE1,cost 不同):全网选 AR3,外部 cost + 内部cost 差距决定出口。 • 场景二(OE1,cost 相同):就近分流,内部距离决定出口;内部故障后总 cost 会发生变化,可以反映拓扑变化。 • 场景三(OE2,cost 相同):就近分流,Forward Metric 决胜;故障后总 cost 不变。 • 场景四(OE2,cost 不同):全网选 AR3,外部 cost 直接决定出口;故障后 Forward Metric 失效,ASBR 不切换。
总结:
1、OE1 与 OE2 的本质区别在于"内部 cost 是否累加":
• OE1 总 cost = 外部 + 内部,路由表 cost 反映整网路径代价,内部故障/拓扑变化会立即体现在 cost 中; • OE2 总 cost = 仅外部,路由表 cost 恒定,内部拓扑变化只能通过 Forward Metric 在外部 cost 相等时实现间接生效。
2、Forward Metric 的"激活条件":
• OE1:已计入总 cost,无需额外比较; • OE2:仅当外部 cost 完全相等时才作为比较条件,否则完全无效(场景四)。
3、5 类 LSA 在域内泛洪时 metric 不累加——这是与 1/3 类 LSA 的关键区别,也是 ASBR 引入路由时 metric 能"原汁原味"传递到全网的基础。
4、工程选型建议:
• 多出口、希望感知内部拓扑→ OE1(场景一、二) • 单出口或外部 cost 差异显著→ OE2(场景三、四) • 需要精确控制选路→ OE2 + route-policy(手动调 External Cost)
夜雨聆风