两个层面的邻居
在多 VRF 场景里 BGP 是按实例运行的:PE-CE 邻居定义在具体 VRF 内、独立成表;PE 与 PE 之间用全局实例建立 VPNv4/VPNv6 会话传带 RD 的前缀。邻居定义在哪个实例决定了它的路由进入哪张表,而 VRF 之间能否互相导入由 RT(route-target)控制。这套分工同时也是 MPLS L3VPN 的排障顺序基础:先看 PE-CE 邻居,再看 RT 导入导出,最后才查底层标签与隧道。
基本信息
| PE-CE 邻居 | 定义在 VRF 内(按 VRF 地址族),独立路由表 |
|---|---|
| PE-PE 会话 | 全局实例承载 VPNv4/VPNv6 前缀,不放在 VRF 内 |
| RD 作用 | 让同一前缀在不同 VRF 中不冲突,作为 VPN 前缀的一部分 |
| RT 作用 | export/import 决定前缀在哪个 VRF 被导入导出 |
| 核对入口 | 邻居所属 VRF、RD/RT 配置、VPN 与 VRF 路由表 |
| 排障顺序 | PE-CE 邻居 → RT 导入导出 → 底层标签与隧道 |
典型使用场景
- 多租户承载:每个客户一个 VRF,PE-CE 用 BGP 或静态路由对接
- 客户路由隔离:确认邻居建在正确的 VRF 内,避免路由串表
- 新增客户上线:核对 RD/RT 规划与对端一致,避免导入不进去
- 排障「VPN 路由学到了但业务不通」:RT 不匹配是高频根因
- 跨 VRF 互通需求:通过 RT 的导入导出而非改拓扑实现受控互通
查看与核对
查看与核对
show bgp vrf CUST-A summary # VRF 内的 PE-CE 邻居状态
show bgp vpnv4 unicast all summary # PE 之间的 VPNv4 会话
show bgp vrf CUST-A ipv4 unicast # 该 VRF 的 BGP 路由表
show bgp vpnv4 unicast all 10.1.0.0/24 # 看带 RD 的 VPN 路由与 RT 属性
show ip route vrf CUST-A 10.1.0.0 # VRF 内实际生效的路由不同层面的邻居对比
| 层面 | 邻居定义位置 | 承载内容 |
|---|---|---|
| PE-CE | VRF 实例内 | 客户普通 IPv4/IPv6 前缀 |
| PE-PE | 全局实例 | 带 RD 的 VPNv4/VPNv6 前缀 |
| 全局表 | 全局实例 | 互联网或自有业务路由 |
| 跨 VRF 互通 | 全局实例 + RT 导入导出 | 由 import/export RT 决定 |
常见错误是把 PE-CE 邻居建在全局表里:会话看起来 Established,但客户路由进不了 VRF 路由表,业务侧表现就是「邻居正常、业务不通」。核对时先确认邻居归属的 VRF,而不是先怀疑策略。
RD 与 RT 不是一回事:RD 只让同一前缀在不同 VRF 中不冲突,RT 才决定前缀能否被某个 VRF 导入。两者经常被写成相同的值,排障时不要因为数值一样就把概念混为一谈。