第163篇:MPLS L3VPN 基础:VRF、RD、RT
关键词:L3VPN、VRF、RD、RT、VPNv4、路由隔离、PE、CE、MP-BGP
一、引言
MPLS L3VPN(Layer 3 Virtual Private Network)是运营商网络中最核心的业务之一。它通过在 MPLS 骨干网上为客户构建逻辑隔离的三层虚拟网络,使客户的站点可以跨越不同的地理位置实现互联互通,同时确保不同客户之间的路由和数据完全隔离。理解 VRF、RD 和 RT 这三个核心概念,是掌握 L3VPN 技术的关键。
二、核心概念
2.1 L3VPN 网络架构
L3VPN 网络由两种关键设备组成:
| 设备 | 英文全称 | 角色 |
|---|---|---|
| CE | Customer Edge | 客户边缘设备, unaware of VPN,仅运行常规路由协议 |
| PE | Provider Edge | 运营商边缘设备,终结 VPN 业务,维护 VRF 和 MP-BGP |
| P | Provider | 运营商核心设备,仅转发 MPLS 标签报文,不感知 VPN |

2.2 VRF(Virtual Routing and Forwarding)
VRF 是 PE 上隔离客户路由的独立转发表。每个 VRF 包含: - 独立的 IP 路由表 - 独立的接口绑定 - 独立的转发表
核心问题:不同客户可能使用相同的 IP 地址段(如两个客户都使用 10.1.1.0/24)。VRF 实现了路由隔离,但还需要解决路由全局唯一性问题。
2.3 RD(Route Distinguisher,路由区分器)
RD 是 64 位的唯一标识符,附加到客户路由(IPv4 前缀)之前,形成全局唯一的 VPNv4 地址:
| 格式 | 组成 | 示例 |
|---|---|---|
| Administrator:Assigned | 2字节+4字节 | 10.1.1.1:100 → 0x0A010101:0x00000064 |
| ASN:Assigned | 2字节AS号+4字节 | 65001:100 → 0x0000FDE9:0x00000064 |
转换示例: - 客户路由:10.1.1.0/24 - RD:10.1.1.1:100 - VPNv4 路由:10.1.1.1:100:10.1.1.0/24(全局唯一)
两个不同的 VRF 可以为同一客户前缀分配不同 RD,从而在 MP-BGP 中区分: - VRF-A: RD=10.1.1.1:1 → 10.1.1.1:1:10.1.1.0/24 - VRF-B: RD=10.1.1.1:2 → 10.1.1.1:2:10.1.1.0/24
2.4 RT(Route Target,路由目标)
RT 用于控制 VPN 路由的导入和导出。它是 Extended Community 类型的一种属性:
| 操作 | 说明 |
|---|---|
| Export RT | PE 将 VRF 中的路由携带 RT 通过 MP-BGP 发布 |
| Import RT | PE 从 MP-BGP 接收路由,如果路由的 RT 匹配 Import RT,则导入到 VRF |
RT 的灵活运用实现了 VPN 的互通控制:
| 场景 | Export RT | Import RT | 结果 |
|---|---|---|---|
| 完全隔离 | RT-A | RT-A | 仅VRF-A内部互通 |
| 完全互通 | RT-Common | RT-Common | 所有VRF共享路由 |
| Hub & Spoke | 见下篇 | 见下篇 | Hub全通, Spoke仅连Hub |
三、技术细节
3.1 L3VPN 路由泄露流程

3.2 VRF 与 RD/RT 的关系
| 属性 | VRF | RD | RT |
|---|---|---|---|
| 作用域 | PE 本地 | MP-BGP 全局 | MP-BGP 全局 |
| 功能 | 路由隔离 | 路由全局唯一 | 路由导入/导出控制 |
| 数量 | 每 PE 多个 | 每 VRF 一个 | 每 VRF 多个(Import/Export) |
| 类比 | 独立的"小路由器" | 路由的"姓氏" | 路由的"通行证" |
3.3 VPNv4 地址族
VPNv4 是 MP-BGP 中承载 L3VPN 路由的地址族:
| 属性 | 说明 |
|---|---|
| 地址长度 | 128 位(64 位 RD + 32 位 IPv4 前缀 + 32 位掩码) |
| Next Hop | PE 的 LoopBack 地址(4 字节) |
| 标签属性 | 携带 MPLS 标签(用于数据平面转发) |
| Extended Community | 携带 RT、Color 等扩展属性 |
四、实战配置/案例分析
4.1 华为 L3VPN 基础配置
# ========== PE1 配置 ==========
<NE40E> system-view
[NE40E] sysname PE1
# 1. 创建 VRF 实例
[PE1] vpn-instance VPN-A
[PE1-vpn-instance-VPN-A] rd 10.1.1.1:100
[PE1-vpn-instance-VPN-A] route-target export 100:100
[PE1-vpn-instance-VPN-A] route-target import 100:100
# 2. 配置 CE 接口并绑定 VRF
[PE1] interface GE 1/0/0
[PE1-GigabitEthernet1/0/0] ip binding vpn-instance VPN-A
[PE1-GigabitEthernet1/0/0] ip address 10.1.1.1 24
# 3. 配置 MP-BGP 发布 VPNv4
[PE1] bgp 65001
[PE1-bgp-65001] router-id 10.1.1.1
[PE1-bgp-65001] peer 10.1.2.1 as-number 65001
[PE1-bgp-65001] peer 10.1.2.1 connect-interface LoopBack 0
[PE1-bgp-65001] address-family vpnv4
[PE1-bgp-65001-vpnv4] peer 10.1.2.1 enable
[PE1-bgp-65001-vpnv4] peer 10.1.2.1 route-policy VPN-EXPORT export
# 4. 引入 VRF 路由到 BGP
[PE1-bgp-65001-vpnv4] import-route direct vpn-instance VPN-A
# ========== PE2 配置 ==========
[NE40E] sysname PE2
[PE2] vpn-instance VPN-A
[PE2-vpn-instance-VPN-A] rd 10.1.2.1:100
[PE2-vpn-instance-VPN-A] route-target export 100:100
[PE2-vpn-instance-VPN-A] route-target import 100:100
[PE2] interface GE 1/0/0
[PE2-GigabitEthernet1/0/0] ip binding vpn-instance VPN-A
[PE2-GigabitEthernet1/0/0] ip address 10.1.2.1 24
[PE2] bgp 65001
[PE2-bgp-65001] router-id 10.1.2.1
[PE2-bgp-65001] peer 10.1.1.1 as-number 65001
[PE2-bgp-65001] address-family vpnv4
[PE2-bgp-65001-vpnv4] peer 10.1.1.1 enable
[PE2-bgp-65001-vpnv4] import-route direct vpn-instance VPN-A
4.2 验证 L3VPN 状态
# 查看 VRF 路由表
<PE1> display ip routing-table vpn-instance VPN-A
Route Flags: R - relay, D - download to fib
Routing Tables: VPN-A
To : 0.0.0.0/0
Output Interface NextHop RouteFlags
GE1/0/0 10.1.1.2 R
# 查看 VPNv4 BGP 路由
<PE1> display bgp vpnv4 all routing-table
BGP local router ID : 10.1.1.1
Status: *> valid, > best
Network NextHop MED LocPref Path
*> 10.1.2.1:100:10.1.2.0/24 10.1.2.1 0 100 i
# RD=10.1.2.1:100, 前缀=10.1.2.0/24, 来自PE2
# 查看 VPN 标签
<PE1> display mpls vpn-label
VPN-Label:
RD: 10.1.2.1:100
Prefix: 10.1.2.0/24
Label: 16012
Peer: 10.1.2.1
4.3 故障排查:VPN 路由未学习
故障场景:PE1 的 VRF 中看不到 PE2 侧 CE 的路由。
# Step 1: 检查 MP-BGP VPNv4 路由
<PE1> display bgp vpnv4 all routing-table
# 无 VPNv4 路由条目
# Step 2: 检查 BGP 邻居状态
<PE1> display bgp vpnv4 all peer
Peer: 10.1.2.1, AS: 65001, State: Established
# BGP Session 正常
# Step 3: 检查 PE2 是否发布了 VPNv4 路由
<PE2> display bgp vpnv4 all routing-table
# PE2本地也没有VPNv4路由
# 说明PE2未将VRF路由导入BGP
# Step 4: 检查PE2的BGP配置
<PE2> display current-configuration | include import-route
# 发现缺少: import-route direct vpn-instance VPN-A
# Step 5: 修正配置
[PE2-bgp-65001-vpnv4] import-route direct vpn-instance VPN-A
# Step 6: 检查 RT 匹配
<PE1> display vpn-instance VPN-A
Route-target import/add: 100:100
Route-target export/add: 100:100
<PE2> display vpn-instance VPN-A
Route-target import/add: 100:100
Route-target export/add: 100:100
# RT 匹配, 确认无问题
五、总结
| 项目 | 要点 |
|---|---|
| VRF | PE 本地路由隔离,每个 VRF 有独立路由表和接口绑定 |
| RD | 64位标识符,附加到 IPv4 前缀形成全局唯一的 VPNv4 地址 |
| RT | Extended Community 属性,控制 VPN 路由的导入和导出 |
| MP-BGP | 承载 VPNv4 路由传播,携带 RD、RT 和 VPN 标签 |
| CE 无感知 | CE unaware of VPN,仅运行标准路由协议 |
思考
- 为什么 VRF 需要同时配置 RD 和 RT?如果只配 RD 不配 RT,VPN 路由能否在 PE 之间传播?
- RT 的 Import 和 Export 列表是否可以配置多个值?多个 RT 之间的匹配规则是什么(与 OR 关系)?
- 如果两个 VRF 使用相同的 RD 但不同的 RT,MP-BGP 中如何处理冲突的 VPNv4 路由?
下篇预告:第164篇:MP-BGP 在 L3VPN 中的角色