单点重分发(一台设备做引入)没什么难度。但只要变成双点 + 双向,问题立刻就来——这是路由方向最经典的坑,也是 HCIE 考试必考的一题。

双点双向重分发的拓扑、环路成因与 tag 过滤解法
▲ 四个条件凑齐,环路就必然出现

为什么会出问题

关键在路由的来源失去了标记。一条 OSPF 内部路由被 R2 引入 IS-IS 后,在 IS-IS 里它就是一条普通的 IS-IS 路由——R1 看不出它「原本是 OSPF 的」。所以 R1 会毫不犹豫地把它再引回 OSPF。

由此产生两个问题:

问题表现
环路两台设备互相把对方引入的路由再引回去,路由在两个协议间反复翻转
次优路径外部路由(OSPF Type-5)的优先级低于内部路由,导致流量绕远

解法:给路由「盖章」

思路很朴素:引入的时候盖个章(tag),再引入的时候看见这个章就不引。

打 tag 与过滤 tag
R1 侧:
  OSPF → IS-IS 引入时打 tag 100
  IS-IS → OSPF 引入时,deny 掉 tag 200 的路由

R2 侧:
  OSPF → IS-IS 引入时打 tag 200
  IS-IS → OSPF 引入时,deny 掉 tag 100 的路由

★ 为什么 R1 要 deny tag 200?
  tag 200 是 R2 引出去的。如果 R1 又把它引回 OSPF,
  就等于把 R2 引入的那份又送回原地 → 环路
★ 各自的 tag 不同,才能区分「谁引的」

华为完整配置

huawei · R1(边界设备)
# ① 定义"要引入的路由"——精确控制,不要全放
acl number 2000
 rule 5 permit source 10.1.1.0 0.0.0.255
 rule 10 permit source 10.1.2.0 0.0.0.255

# ② OSPF → IS-IS:打 tag 100
route-policy ospf2isis permit node 10
 if-match acl 2000
 apply tag 100

# ③ IS-IS → OSPF:先 deny 掉 tag 200(R2 引的)
route-policy isis2ospf deny node 10
 if-match tag 200

route-policy isis2ospf permit node 20
 if-match acl 2000
 # 不重新打 tag,保留原有 tag

# ④ 应用
isis 1
 import-route ospf 1 route-policy ospf2isis
ospf 1
 import-route isis 1 route-policy isis2ospf
 # ★ OSPF 引入外部路由时可以指定类型和开销:
 import-route isis 1 type 1 cost 10 route-policy isis2ospf
huawei · R2(镜像配置,tag 反过来)
route-policy ospf2isis permit node 10
 if-match acl 2000
 apply tag 200                 # ★ R2 打 tag 200

route-policy isis2ospf deny node 10
 if-match tag 100              # ★ R2 过滤 R1 的 tag 100

route-policy isis2ospf permit node 20
 if-match acl 2000

isis 1
 import-route ospf 1 route-policy ospf2isis
ospf 1
 import-route isis 1 route-policy isis2ospf

次优路径怎么办

即使环路解决了,双点场景下还可能选出绕远的路。原因有两层:

Type-1 与 Type-2 的区别
Type-2(默认):
  比较的只是「外部开销」这一个值
  → 忽略到引入点之间的内部开销
  → 可能选到"外部开销小但内部绕远"的路

Type-1:
  总开销 = 外部开销 + 到 ASBR 的内部开销
  → 端到端最优
  → 双点场景建议用 Type-1

配置:
ospf 1
 import-route isis 1 type 1 cost 10 route-policy isis2ospf

HCIE 考试的经典变体

考试里通常会加几个条件,本质还是 tag 过滤:

通用套路:先在纸上画出「谁引谁」的箭头,每条箭头都要回答两个问题——① 打什么 tag ② 过滤什么 tag。把所有箭头的答案列出来,配置就是抄写。

验证

huawei
# 看路由有没有翻来覆去(关键看 Protocol/Preference/Tag)
display ip routing-table 10.1.1.0 verbose
display ip routing-table protocol ospf
display ip routing-table protocol isis

# 看外部路由的 tag 和 type
display ospf lsdb ase 10.1.1.0
display ospf lsdb ase self-originate

# 看引入策略
display route-policy
display isis route
display ospf routing

# ★ 环路判定:同一条路由的下一跳在两条边界设备之间来回变
#   反复 display ip routing-table 几次,看下一跳是否稳定

一句话总结:双点双向重分发的所有解法都是「打 tag + 过滤 tag」。谁引出去的谁打自己的 tag,另一台看见别人的 tag 就不引。次优路径靠 Type-1 外部路由解决。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

合并了原始笔记中「双点双向」三个变体页 + 「扩展--HCIE考试双点双向」共四页。
原笔记是考试题的配置片段,本文把「为什么出问题」讲透,并把所有变体归纳成同一套 tag 方法论。
配置命令保留华为 VRP 原样。