VRF 把路由表切成互不可见的几份
VRF(Virtual Routing and Forwarding)在一台设备上虚拟出多套独立的路由表与转发表。接口绑定某个 VRF 后,该接口收到的流量只按这个 VRF 的路由转发,与默认表互不影响。它解决的是「同一台设备承载多个地址空间重叠的客户」这一问题,是 MPLS L3VPN 在 PE 侧的基本隔离单元。
基本信息
| 组成要素 | VRF 定义、RD(唯一化)、RT(导入导出)、独立 RIB/FIB |
|---|---|
| 接口归属 | 接口绑定后其地址与路由都属于该 VRF |
| 容量 | 一台设备可创建多个 VRF,数量受平台规格限制 |
| 命名建议 | 与客户或业务一一对应,避免用编号导致后期无法识别 |
| 适用平台 | Cisco IOS/IOS-XE、华为 VRP、Juniper 等主流设备 |
典型使用场景
- MPLS L3VPN:同一台 PE 承载多个客户,客户地址段可完全重叠
- 多租户数据中心:租户之间三层隔离,安全边界最清晰
- VRF Lite:不使用 MPLS,仅靠 VRF 与静态或 GRE 隧道实现隔离
- 管理与业务分离:带外管理使用独立 VRF,避免管理流量受业务抖动影响
- 按业务分流:不同业务走不同 VRF,各自使用独立的出口策略
基础核查命令
基础核查命令
# Cisco
show ip vrf
show ip vrf interfaces
show ip route vrf CUST-A
show ip bgp vpnv4 vrf CUST-A summary
# 测试连通性时要指定 VRF,否则走默认表
ping vrf CUST-A 10.10.2.2 source 10.10.2.1
!
# 华为
# display ip vpn-instance
# display ip vpn-instance verbose
# display ip routing-table vpn-instance CUST-A
# ping -vpn-instance CUST-A 10.10.2.2RD 与 RT 的分工
| 概念 | 作用 | 取值要求 |
|---|---|---|
| RD | 给前缀加上标识,使不同 VRF 的相同前缀在 VPNv4 表中唯一 | 同一 PE 内不可重复,不同 PE 可以相同 |
| RT | 声明导入导出关系,决定谁能收到我的路由 | 互联双方需事先约定,可配多条 |
| VRF 名称 | 本机配置中的标识,只在设备内部有效 | 不同设备可以取不同名字 |
常见排错路径
常见排错路径
# 1) 接口是否真的在 VRF 里
show ip vrf interfaces CUST-A
# 2) VRF 内是否有路由
show ip route vrf CUST-A
# 3) 会话内是否收到对端路由
show ip bgp vpnv4 vrf CUST-A
# 4) 是否带 RT 扩展团体
show ip bgp vpnv4 all 10.10.1.0/24 | include Extended
# 5) 转发是否学到位
show ip cef vrf CUST-A 10.10.2.2测试时最容易忽略的一点:在 PE 上执行 ping 或 traceroute 如果不指定 VRF,命令走的是全局默认表,即使业务正常也会显示不可达。核对连通性时务必带上 VRF 参数。