在多协议混合及多厂商网络架构的日常运维与规划中,路由引入(Route Import,思科称为路由重发布 Route Redistribution)是一项极为核心的技术。无论是因为企业网络合并、总部与分公司的网络对接,还是多厂商设备兼容或网络边界的安全隔离,异构路由协议之间的数据互通都依赖于此。
然而,路由引入也是网络故障的高发区。由于不同路由协议的算法机制、度量值(Metric)计算方式以及不同厂商默认参数的差异,盲目的路由引入极易导致次优路径 或路由环路(路由回灌)。
本文将系统梳理路由引入的基本概念,深度剖析华为、华三、思科三大厂商的底层逻辑差异,并针对双点双向等高危场景,给出工程化的规避配置方案。
一、 路由引入的核心本质与架构挑战
1. 路由引入的本质
路由引入并不是路由协议之间的直接对话,其本质是路由表的引入。
当我们在协议 A 中引入协议 B 的路由时,本地路由器会查看自己的 IP 路由表(RIB) 。只有当前在 IP 路由表中处于 Active(激活) 状态的协议 B 路由,才会被提取并转换成协议 A 的路由条目(如 OSPF 的 ASE LSA 或 IS-IS 的 LSP),进而发布到协议 A 的网络中。如果某条路由在路由表中非激活(例如因为管理距离/优先级较差未入表),它是无法被引入的。
2. 路由引入的拓扑分类与风险模型
在架构设计上,路由引入可按方向和点数划分为四种基本模型:
-
单点单向引入:最简单、最安全的模型。仅在单台边界路由器上,将协议 A 的路由引入到协议 B 中。无环路风险。
-
单点双向引入:在单台边界路由器上,协议 A 和协议 B 互相引入。由于引入点只有一个,虽然可能因度量值规划不合理产生次优路径,但不会形成物理环路。
-
多点单向引入:在多台边界路由器上,将协议 A 单向引入到协议 B。此时需要注意防范次优路径。
-
多点双向引入(通常为双点双向):攻坚难点,高危场景。两台(或多台)边界路由器同时在两个协议间进行双向引入。极易引发路由回灌(一条路由从 A 引入到 B,又在另一个点从 B 引入回 A),从而造成灾难性的路由环路与次优路径。
3. 跨厂商对接时最致命的变量:优先级与管理距离(Preference / AD)
导致跨厂商引入时出现次优路径的根本原因,在于不同厂商对各路由协议赋予的默认可信度(优先级/管理距离)完全不同。
-
华为 / 华三(VRP/Comware 平台)默认优先级(数值越小越优先):
-
直连路由(Direct):0
-
OSPF 内部路由:10
-
IS-IS 路由:15
-
静态路由(Static):60
-
RIP 路由:100
-
OSPF 外部路由(ASE/NSSA):150
-
BGP 路由:255
-
-
思科(IOS/XE 平台)默认管理距离(AD,数值越小越优先):
-
直连路由(Connected):0
-
静态路由(Static):1
-
OSPF 路由(包括内部与外部):110
-
IS-IS 路由:115
-
RIP 路由:120
-
BGP 路由(EBGP):20
-
BGP 路由(IBGP):200
-
经典踩坑场景分析:
在华为设备上,OSPF 外部路由优先级为 150,IS-IS 优先级为 15。如果进行双点双向引入,原本来自 OSPF 的路由被引入到 IS-IS 后,在另一台边界路由器上,其 IS-IS 路由优先级(15)优于 OSPF 外部路由优先级(150),路由器就会错误地选择 IS-IS 路径,从而造成次优路径。而在思科设备上,OSPF 的 AD 为 110,IS-IS 为 115,两者的偏好关系与华为完全相反。这种底层的根本性差异,要求我们在跨厂商部署时必须进行精准的路由控制。
二、 华为(Huawei)路由引入逻辑与配置详解
在华为 VRP 平台中,路由引入使用 import-route 命令。需要重点关注不同协议作为接收方时的**默认种子度量值(Seed Metric)**和控制命令。
1. 华为 OSPF 路由引入
-
默认种子度量值:1。
-
默认度量值类型:Type 2(即路由在 OSPF 域内传输时,开销值不随物理链路累加)。
-
基础配置命令:
[R2] ospf 1
[R2-ospf-1] import-route direct # 引入直连路由
[R2-ospf-1] import-route static # 引入静态路由
[R2-ospf-1] import-route isis 1 # 引入进程号为1的IS-IS路由 -
修改引入参数(修改种子度量值与开销类型):
将IS-IS 1的路由引入到OSPF中,设置种子度量值为4,开销类型修改为Type 1(开销值在域内随物理链路累加)
[R2-ospf-1] import-route isis 1 cost 4 type 1
2. 华为 IS-IS 路由引入
-
默认种子度量值:64。
-
数据库级别控制 :IS-IS 区分 Level-1 和 Level-2。默认情况下,如果不指定级别,外部路由会被引入到 Level-2 路由表中。
-
基础配置命令:
[R2] isis 1
[R2-isis-1] import-route ospf 1 # 默认引入到L2数据库中 -
精准控制级别与度量值:
将直连路由引入到Level-1数据库中
[R2-isis-1] import-route direct level-1
将直连路由同时引入到Level-1和Level-2数据库中
[R2-isis-1] import-route direct level-1-2
引入OSPF 1路由,并在默认种子度量值(64)的基础上增加55(最终度量值为119)
[R2-isis-1] import-route ospf 1 cost 55
3. 华为 RIP 路由引入
-
默认种子度量值:0(在 RIP 中,引入开销为 0 代表该路由在本地边界,发布出去时会加 1 跃点)。
-
基础配置命令:
[R2] rip 1
[R2-rip-1] import-route ospf 1 # 引入OSPF 1路由
[R2-rip-1] import-route ospf 1 cost 1 # 手动指定引入后的开销为1
三、 华三(H3C)路由引入逻辑与"allow-direct"特性
华三 Comware 平台在基础语法上与华为 VRP 类似,但其底层行为存在一个极具工程影响力的差异:allow-direct 关键字的处理机制。
在华三设备上,当引入某种动态路由协议(如 OSPF、IS-IS)时,默认情况下不会自动引入该协议在该设备上使能(Enable)的直连网段路由。为了确保接口的直连路由与动态路由一并被顺利引入,必须显式附加 allow-direct 关键字。
1. 华三 OSPF 路由引入
-
默认种子度量值:1。
-
配置命令:
[R2] ospf 1
[R2-ospf-1] import-route direct
[R2-ospf-1] import-route static引入IS-IS 1路由,同时允许引入本地运行IS-IS接口的直连路由
[R2-ospf-1] import-route isis 1 allow-direct
-
修改引入参数:
引入IS-IS 1,允许直连,设置开销类型为Type 1,种子度量值为7
[R2-ospf-1] import-route isis 1 allow-direct type 1 cost 7
2. 华三 IS-IS 路由引入
-
默认种子度量值:64。
-
配置命令(Comware v7 通常在 IPv4 地址族视图下配置):
[R2] isis 1
[R2-isis-1] address-family ipv4引入OSPF 1,且允许直连路由引入
[R2-isis-1-ipv4] import-route ospf 1 allow-direct
引入OSPF 1到Level-1数据库,且允许直连
[R2-isis-1-ipv4] import-route ospf 1 allow-direct level-1
引入OSPF 1,允许直连,并将度量值设置为35
[R2-isis-1-ipv4] import-route ospf 1 allow-direct cost 35
3. 华三 RIP 路由引入
-
默认种子度量值:0。
-
配置命令:
[R2] rip 1
引入OSPF或IS-IS时,携带allow-direct
[R2-rip-1] import-route ospf 1 allow-direct
[R2-rip-1] import-route isis 1 allow-direct引入直连,手动设置开销为1
[R2-rip-1] import-route direct cost 1
四、 思科(Cisco)路由重发布逻辑与三大"天坑"
思科 IOS/XE 平台使用 redistribute 命令。由于其设计理念较早,思科在路由重发布上保留了几个非常特殊的底层行为。如果习惯了华为/华三的逻辑,在配置思科设备时极易遭遇"网络黑洞"。
1. 天坑之一:RIP 重发布的"度量值无穷大(Infinity)"
在思科设备上,将任何路由(直连、静态、OSPF、IS-IS)引入到 RIP 时,默认的种子度量值是无穷大(16 跃点) 。这意味着,如果不手动指定 Metric,引入的路由在 RIP 数据库中会被标记为不可达,RIP 永远不会将它们通告给邻居。
-
错误配置(导致路由无法通告):
R1(config)# router rip
R1(config-router)# redistribute ospf 1 ! 此时默认Metric为16,邻居收不到路由 -
正确配置(必须手动指定 Metric):
R1(config)# router rip
R1(config-router)# redistribute ospf 1 metric 1 ! 手动指定初始跃点数为1
2. 天坑之二:OSPF 重发布必须携带"subnets"关键字
在思科设备上将路由引入到 OSPF 时,默认情况下它只引入主类路由(Classful Routes,如 A、B、C 类有类网络) 。如果被引入的路由是划分子网后的无类路由(Classless Subnets),在没有配置 subnets 关键字的情况下,这些子网路由会被全部静默丢弃。
-
错误配置(子网路由丢失):
R1(config)# router ospf 1
R1(config-router)# redistribute connected ! 只有标准有类直连路由会被引入 -
正确配置(强制携带 subnets):
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets
R1(config-router)# redistribute static subnets
R1(config-router)# redistribute isis subnets -
思科 OSPF 引入参数修改:
-
默认种子度量值:20(除 BGP 为 1 外,其余协议引入均为 20)。
-
默认开销类型:Type 2(E2)。
! 引入直连子网路由,修改开销类型为Type 1
R1(config-router)# redistribute connected metric-type 1 subnets! 引入直连子网路由,设置种子度量值为17
R1(config-router)# redistribute connected metric 17 subnets
-
3. 天坑之三:IS-IS 重发布默认数据库与多层引入控制
在思科中,将外部路由引入到 IS-IS 时:
-
默认数据库级别 :默认直接引入到 Level-2 数据库。
-
默认种子度量值:0。
R1(config)# router isis
R1(config-router)# redistribute connected metric 5 ! 默认引入至L2,度量值为5 -
手动控制级别:
R1(config-router)# redistribute connected level-1 ! 仅引入至L1数据库
R1(config-router)# redistribute connected level-1-2 ! 同时引入至L1和L2数据库 -
反向引入注意点(IS-IS 引入到其他协议):
默认情况下,如果把 IS-IS 重发布到 OSPF 或 RIP,思科 IOS 仅会提取 IS-IS Level-2 路由表中的路由。如果你需要引入 IS-IS Level-1 的路由,必须在命令中明确指出:
R1(config)# router ospf 1
R1(config-router)# redistribute isis level-1 subnets ! 明确指定引入L1路由
R1(config-router)# redistribute isis level-1-2 subnets ! 引入L1和L2的所有路由
五、 双点双向路由引入:次优路径与环路规避的工程级解决方案
在实际大型网络中,双点双向路由引入是避免单点故障的标配设计,但也是次优路径和环路的重灾区。下面以 OSPF 与 IS-IS 双点双向引入(华为设备环境) 为例,提供标准的一线部署级规避策略。
1. 问题模型剖析
假设有两台边界路由器 GW1 和 GW2 跨接在 OSPF 和 IS-IS 两个域之间。
-
OSPF 域内某网段 10.1.1.0/24 的路由传至 GW1。
-
GW1 配置了 OSPF 到 IS-IS 的单向引入,将 10.1.1.0/24 引入到 IS-IS 域。此时,该路由在 IS-IS 域内的优先级(Preference)变为 15。
-
GW2 作为另一台边界设备,同时运行 OSPF 和 IS-IS。它通过 OSPF 学习到该路由(外部优先级 150),同时也通过 IS-IS 学习到了由 GW1 引入过来的这条路由(优先级 15)。
-
根据华为的优先级规则,15 < 150,GW2 将会优选 IS-IS 路径去往 10.1.1.0/24。这就导致了次优路径(GW2 去往 OSPF 内部网段,不直接走 OSPF 域,而是跨越 IS-IS 域绕道 GW1)。
-
如果 GW2 还配置了 IS-IS 到 OSPF 的引入,它会将这条原本属于 OSPF 的路由再次引入回 OSPF。这就形成了路由回灌 与物理环路。
2. 核心规避思想:Tag 标记与双向过滤
最成熟、最通用的工程解决方案是 Route Tag 机制(路由打标与过滤)。
-
策略 A :在 GW1/GW2 将 OSPF 引入到 IS-IS 时,为路由打上标签 Tag 100 ;在将 IS-IS 引入到 OSPF 时,拒绝携带 Tag 100 的路由。
-
策略 B :在 GW1/GW2 将 IS-IS 引入到 OSPF 时,为路由打上标签 Tag 200 ;在将 OSPF 引入到 IS-IS 时,拒绝携带 Tag 200 的路由。
通过这种"自产自销、拒绝回流"的逻辑,可以完全斩断路由回灌的链条。
3. 华为设备完整配置实现
GW1 上的配置:
# 1. 定义路由策略,将OSPF引入IS-IS时打上Tag 100,并拒绝含有Tag 200的路由
route-policy OSPF_TO_ISIS deny node 10
if-match tag 200
#
route-policy OSPF_TO_ISIS permit node 20
apply tag 100
# 2. 定义路由策略,将ISIS引入OSPF时打上Tag 200,并拒绝含有Tag 100的路由
route-policy ISIS_TO_OSPF deny node 10
if-match tag 100
#
route-policy ISIS_TO_OSPF permit node 20
apply tag 200
# 3. 协议视图下应用策略
isis 1
import-route ospf 1 route-policy OSPF_TO_ISIS
#
ospf 1
import-route isis 1 route-policy ISIS_TO_OSPF
GW2 上的配置(与 GW1 保持对称一致):
route-policy OSPF_TO_ISIS deny node 10
if-match tag 200
#
route-policy OSPF_TO_ISIS permit node 20
apply tag 100
#
route-policy ISIS_TO_OSPF deny node 10
if-match tag 100
#
route-policy ISIS_TO_OSPF permit node 20
apply tag 200
# 应用策略
isis 1
import-route ospf 1 route-policy OSPF_TO_ISIS
#
ospf 1
import-route isis 1 route-policy ISIS_TO_OSPF
注:在某些极度复杂的拓扑中,除了打标过滤外,还需要通过 preference 命令手动调整本地学习到路由的优先级,使其强制与原区域一致,从而一并根治次优路径问题。
4. 思科设备等效配置(对照参考)
为了方便跨厂商协同,以下给出思科环境下的等效 Route-Map 过滤逻辑:
! 定义 OSPF 引入到 IS-IS 的策略
route-map OSPF_TO_ISIS deny 10
match tag 200
!
route-map OSPF_TO_ISIS permit 20
set tag 100
! 定义 IS-IS 引入到 OSPF 的策略
route-map ISIS_TO_OSPF deny 10
match tag 100
!
route-map ISIS_TO_OSPF permit 20
set tag 200
! 在协议中应用
router isis
redistribute ospf 1 route-map OSPF_TO_ISIS
!
router ospf 1
redistribute isis route-map ISIS_TO_OSPF subnets
六、 总结与工程实践黄金准则
路由引入不是简单的几行配置堆砌,它是一项涉及整个网络控制平面逻辑的精细工程。在日常规划中,建议谨记以下最佳实践:
-
绝不裸奔引入:在任何生产环境进行路由引入,无论规模大小,都应养成**必须手动指定种子度量值(Seed Metric)**的习惯。不依赖厂商默认值,能规避 80% 的跨厂商对接故障。
-
思科重发布谨记两个关键字:
-
重发布至 OSPF 时,千万不要漏掉 subnets。
-
重发布至 RIP 时,必须跟上 metric <值>。
-
-
华三设备谨记一个关键字:
- 引入动态协议时,如需将本地使能接口的直连路由一并带入,必须附加 allow-direct。
-
双点双向,打标先行:
- 一旦拓扑中出现两个或两个以上的路由引入交汇点,不要心存侥幸。必须在第一步规划时就设计好 Route Tag 过滤方案,并画出路由传递逻辑图。
-
跨厂商迁移,必对齐优先级:
- 如果网络中存在华为与思科的混合组网,请仔细核对 OSPF 外部路由与 IS-IS 路由的默认优先级差异(思科优选 OSPF,华为优选 IS-IS)。在交汇处的边界设备上,通过 preference 或 distance 命令使两端的选路逻辑保持一致,是避免次优路径的根本。