一、重发布(Route Redistribution)概述
1.1 技术背景与作用
现实网络中常存在多种路由协议共存 的场景(如企业并购、多厂商设备混合组网、历史遗留网络),不同路由协议(OSPF/RIP/IS-IS/ 静态)的度量值计算逻辑、报文格式完全不同,默认无法直接交换路由信息。
重发布(又称路由引入)是在ASBR(自治系统边界路由器) 上,将一种路由协议的路由信息转换为另一种协议可识别的格式,实现跨协议路由共享,最终达成全网可达。
优势:无需大规模整改原有网络,低成本实现异构网络互通。
1.2 部署条件
(1)必须存在 ASBR 设备
ASBR 是同时运行两种及以上路由协议(或同一协议的不同进程) 的边界路由器,它能同时学习到两边网络的路由,是重发布的唯一配置点。
示例:
-
R2 同时运行 RIP 和 OSPF 协议
-
R2 从 RIP 学到
192.168.1.0/24、192.168.2.0/24 -
R2 从 OSPF 学到
192.168.3.0/24、192.168.4.0/24 -
默认情况下,R2 不会自动在两个协议间传递路由,必须手动配置重发布

(2)必须关注种子度量值(Seed Metric)
不同协议的开销计算逻辑完全不同,无法直接复用原协议的度量值。重发布时,ASBR 会为引入的路由添加一个起始种子度量值,作为该路由在目标协议中的初始开销。
1.3 重发布规则
(1)配置位置规则
将 A 协议路由引入 B 协议 → 必须在 ASBR 的 B 协议进程下配置
# 示例:将 RIP 路由引入 OSPF → 在 OSPF 进程下配置
[r2-ospf-1]import-route rip 1
# 示例:将 OSPF 路由引入 RIP → 在 RIP 进程下配置
[r2-rip-1]import-route ospf 1
(2)发布内容规则
重发布默认会引入所有符合条件的路由:
-
A 协议学习到的所有路由
-
ASBR 上宣告在 A 协议中的所有直连路由
(3)方向性规则
重发布是单向行为:
-
单向重发布:仅将 A 协议路由引入 B 协议,B 协议路由不引入 A 协议
-
双向重发布:互相引入,实现全网互通(最常用)
(4)ASBR 数量分类
-
单点重发布:仅存在一个 ASBR,无环路风险,配置简单
-
双点 / 多点重发布:存在多个 ASBR,可能产生路由环路和次优路径,需配合路由策略优化
二、常见场景重发布配置(华为设备)
2.1 不同协议默认种子度量值对比
| 目标协议 | 默认种子度量值 | 可配置范围 | 补充说明 |
|---|---|---|---|
| RIP | 0(跳数) | 0~15 | 跳数 16 为不可达,重发布时建议手动修改为 1 |
| OSPF | 1(开销) | 1~16777214 | 默认使用 Type 2 外部路由 |
| ISIS | 10 | 1~16777214 | 默认引入到 Level-2 级别 |
| BGP | 继承原路由度量值 | - | 可手动修改 MED 值 |
2.2 RIP 与 OSPF 双向重发布
拓扑说明
-
RIP 域:R1-R2,网段
192.168.1.0/24、192.168.2.0/24 -
OSPF 域:R2-R3,网段
192.168.3.0/24、192.168.4.0/24 -
ASBR:R2
配置
(1)基础协议配置
R1 配置 RIP,R3 配置 OSPF,R2 同时配置 RIP 和 OSPF。
(2)RIP 引入 OSPF 路由
[r2]rip 1
[r2-rip-1]import-route ospf 1 # 引入 OSPF 路由
[r2-rip-1]import-route ospf 1 cost 2 # 手动指定种子度量值为2(推荐)
(3)OSPF 引入 RIP 路由
[r2]ospf 1
[r2-ospf-1]import-route rip 1 # 引入 RIP 路由,默认种子度量值1,Type 2
[r2-ospf-1]import-route rip 1 cost 5 type 1 # 手动指定种子度量值5,Type 1
2.3 直连路由重发布
将 ASBR 上未宣告进目标协议的直连网段引入:
# 将直连路由引入 RIP
[r2-rip-1]import-route direct
# 将直连路由引入 OSPF
[r2-ospf-1]import-route direct
注意:重发布直连路由的优先级高于动态路由协议学习到的同网段路由。
2.4 静态路由重发布
将 ASBR 上配置的静态路由引入动态协议:
# 先配置静态路由
[r2]ip route-static 10.0.0.0 255.255.255.0 192.168.1.1
# 将静态路由引入 OSPF
[r2-ospf-1]import-route static
2.5 重发布关键限制
-
不能自动引入缺省路由 :重发布默认不会引入
0.0.0.0/0缺省路由,需单独配置下发 -
OSPF 防回馈机制:OSPF 将域外路由优先级设为 150(低于内部路由 10),避免路由回馈
-
RIP 跳数限制:RIP 最大跳数为 15,种子度量值 + 沿途跳数不能超过 15,否则路由不可达
三、路由策略(Route Policy)
3.1 为什么需要路由策略
重发布默认会引入所有路由,实际网络中常需要:
-
过滤不需要的路由(如敏感网段、测试网段)
-
修改特定路由的参数(开销、优先级、标签)
-
控制路由的发布方向和范围
路由策略是实现上述需求的核心工具,可在重发布、路由发布、路由接收等环节对路由进行精细化控制。
3.2 常用路由过滤工具
(1)ACL(访问控制列表)
-
作用:匹配路由的目的 IP 地址
-
特点:只能匹配网络地址,无法匹配掩码长度
-
适用场景:简单的路由过滤
允许 192.168.1.0/24 网段
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[r2-acl-basic-2000]rule deny source any
(2)IP 前缀列表(IP-Prefix)
-
作用:同时匹配路由的网络地址和掩码长度
-
特点:比 ACL 更灵活,是路由过滤的首选工具
-
语法:
ip ip-prefix 列表名 permit/deny 网络地址 掩码长度 [less-equal 最大掩码] [greater-equal 最小掩码]允许 192.168.1.0/24 精确匹配
[r2]ip ip-prefix aa permit 192.168.1.0 24
允许所有 10.0.0.0/8 网段,掩码长度在 16~24 之间
[r2]ip ip-prefix bb permit 10.0.0.0 8 greater-equal 16 less-equal 24
允许所有路由(放通所有)
[r2]ip ip-prefix cc permit 0.0.0.0 0 less-equal 32
注意:前缀列表末尾隐含拒绝所有规则,必须手动放通需要的路由。
(3)过滤列表(Filter-Policy)
-
作用:在路由协议的接收或发布方向过滤路由
-
特点:只能过滤路由,不能修改路由参数
-
适用场景:距离矢量协议(RIP)的路由过滤
在 RIP 出方向过滤 192.168.3.0/24 路由
[r2-rip-1]filter-policy ip-prefix bb export
3.3 Route-Policy(路由策略)
Route-Policy 是最强大的路由策略工具,支持匹配 + 修改 路由的任意参数,采用自上而下匹配、匹配即停止的机制,末尾隐含拒绝所有。
(1)基本语法
# 创建路由策略,指定节点号和动作(permit/deny)
[r2]route-policy 策略名 permit/deny node 节点号
# 匹配条件(可多个)
[r2-route-policy]if-match 匹配条件
# 执行动作(可多个)
[r2-route-policy]apply 修改动作
-
节点号:越小优先级越高,建议间隔 10 编号,方便后续插入规则
-
permit:匹配到的路由执行 apply 动作,然后允许通过
-
deny:匹配到的路由直接拒绝,不执行 apply 动作
(2)常用匹配条件
| 匹配条件 | 作用 |
|---|---|
if-match acl ACL号 |
匹配 ACL 抓取的路由 |
if-match ip-prefix 前缀列表名 |
匹配前缀列表抓取的路由 |
if-match cost 开销值 |
匹配特定开销的路由 |
if-match route-type 路由类型 |
匹配 OSPF 内部 / 外部路由 |
(3)常用执行动作
| 执行动作 | 作用 |
|---|---|
apply cost 开销值 |
修改路由的度量值 |
apply cost-type type-1/type-2 |
修改 OSPF 外部路由类型 |
apply tag 标签值 |
为路由打标签(用于后续过滤) |
apply preference 优先级 |
修改路由的优先级 |
四、路由策略实战配置
4.1 拓扑与需求说明

-
OSPF 域:R1-R2-R3,业务网段
172.16.1.0/24(A)、172.16.2.0/24(B)、172.16.3.0/24(C) -
ISIS 域:R3-R4
-
需求:
-
R1 向 OSPF 引入业务路由时,拒绝引入业务 C(172.16.3.0/24)
-
R3 向 ISIS 引入 OSPF 路由时,仅引入业务 B(172.16.2.0/24)
-
4.2 需求 1:R1 过滤业务 C 路由
步骤 1:用前缀列表抓取流量
# 拒绝业务 C 172.16.3.0/24
[r1]ip ip-prefix filter-c deny 172.16.3.0 24
# 放通其他所有业务路由
[r1]ip ip-prefix filter-c permit 0.0.0.0 0 less-equal 32
步骤 2:创建路由策略
[r1]route-policy import-ospf deny node 10
[r1-route-policy]if-match ip-prefix filter-c # 匹配业务 C
[r1]route-policy import-ospf permit node 20 # 放通其他所有路由
# 无 if-match 表示匹配所有,无 apply 表示不修改参数
步骤 3:重发布时调用路由策略
[r1]ospf 1
[r1-ospf-1]import-route direct route-policy import-ospf
4.3 需求 2:R3 仅引入业务 B 路由
步骤 1:用前缀列表抓取流量
# 仅允许业务 B 172.16.2.0/24
[r3]ip ip-prefix permit-b permit 172.16.2.0 24
步骤 2:创建路由策略
[r3]route-policy import-isis permit node 10
[r3-route-policy]if-match ip-prefix permit-b # 仅匹配业务 B
# 末尾隐含拒绝所有,其他路由自动被过滤
步骤 3:重发布时调用路由策略
[r3]isis 1
[r3-isis-1]import-route ospf 1 route-policy import-isis
4.4 需求:修改路由参数
需求:将业务 B 路由引入 ISIS 时,修改开销为 20,打标签 666。
[r3]route-policy import-isis permit node 10
[r3-route-policy]if-match ip-prefix permit-b
[r3-route-policy]apply cost 20
[r3-route-policy]apply tag 666