路由泄漏的原理与做法
MPLS L3VPN 里不同 VRF 默认完全隔离:一个实例只导入与自己 RT 匹配的路由。但实际需求经常是「大部分隔离、少量互通」——比如多个业务 VRF 都要访问同一个共享服务 VRF(DNS、认证、网管)。路由泄漏的做法是在源 VRF 上额外导出一个专用的 RT,在目标 VRF 上导入这个 RT,这样目标侧就能拿到源 VRF 的路由。关键点在于方向与范围:泄漏通常设计成单向,并把引入的前缀限制在必要范围内,避免整张表的互相注入。
基本信息
| 原理 | RT 匹配决定实例之间的导入导出关系 |
|---|---|
| 实现 | 源 VRF 追加 export RT,目标 VRF import 该 RT |
| 方向 | 建议单向泄漏,避免双向互相导入 |
| 范围控制 | import map 或前缀列表限制引入的前缀 |
| 平台 | Cisco IOS/IOS-XE、华为 VRP 均有对应配置 |
| 核对 | show ip route vrf 与 show vpn vrf detail |
典型使用场景
- 共享服务场景:多个业务 VRF 访问统一的 DNS 或网管服务器
- 割接期临时互通:迁站期间需要两个实例短暂互访
- 多租户共享出口:所有租户访问同一组出口地址
- 运维通道:管理 VRF 需要访问各业务实例设备地址
- 排障验证:确认泄漏是按预期方向生效,而不是被双向放大
Cisco 配置示例
Cisco 配置示例
# 源实例:额外导出一个专用 RT 供共享使用
vrf definition CUST-A
address-family ipv4
route-target export 65001:100
route-target export 65001:999
route-target import 65001:100
# 目标实例:只导入共享 RT,并按前缀过滤
vrf definition SHARED
address-family ipv4
route-target export 65001:999
route-target import 65001:999
! 核对实例导入导出关系与实际路由
show ip vpn vrf detail | include RD|Export|Import
show ip route vrf SHARED | include 172.16设计要点对照
| 要点 | 推荐做法 | 风险 |
|---|---|---|
| 方向 | 单向导出、单向导入 | 双向易形成路由环路与放大 |
| 范围 | 用 import map 限定前缀 | 全量引入会污染目标实例 |
| 编号 | 共享 RT 单独编号段 | 与业务 RT 混用后难以梳理 |
| 记录 | 在实例规划表中标注泄漏关系 | 无人知晓的泄漏成为长期隐患 |
| 核对 | 定期比对各实例路由条数 | 泄漏扩大后难以追溯起点 |
泄漏的本质是 RT 匹配,不是配置了某条特殊命令;理解 import 与 export 的对应关系,就能推断任意两个实例之间是否互通。
双向泄漏会把两个实例的路由互相注入,极端情况下形成环路或使路由表规模翻倍,务必在设计阶段就确定单向关系。