首页/网络/BGP 与广域网速查/VRF 中的 BGP 邻居基础
BGP 基础与邻居89 条

VRF 中的 BGP 邻居基础

多 VRF 场景 BGP 按 VRF 实例运行(address-family vpnv4 与每 VRF 的 vrf-target):邻居定义在哪个 VRF 决定路由导入哪张表。

BGP 与广域网速查网络更新于 2026-10-13

两个层面的邻居

在多 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-CEVRF 实例内客户普通 IPv4/IPv6 前缀
PE-PE全局实例带 RD 的 VPNv4/VPNv6 前缀
全局表全局实例互联网或自有业务路由
跨 VRF 互通全局实例 + RT 导入导出由 import/export RT 决定
常见错误是把 PE-CE 邻居建在全局表里:会话看起来 Established,但客户路由进不了 VRF 路由表,业务侧表现就是「邻居正常、业务不通」。核对时先确认邻居归属的 VRF,而不是先怀疑策略。
RD 与 RT 不是一回事:RD 只让同一前缀在不同 VRF 中不冲突,RT 才决定前缀能否被某个 VRF 导入。两者经常被写成相同的值,排障时不要因为数值一样就把概念混为一谈。

易错点

  • 把 PE-CE 邻居建在全局表:路由进不了 VRF,会话正常但业务不通,排查容易卡在「邻居是好的」这一步
  • RT 写错或方向写反:路由学到了却导入不进去,表现为 VPN 表里有路由、VRF 表为空
  • RD 与 RT 混为一谈:改错对象会导致前缀冲突或导入失败,必须分别核对
  • 只查 PE-CE 不查 PE-PE:VPN 前缀根本没传过来时,需要先在 PE-PE 方向确认会话与通告情况
  • 排障顺序颠倒:先怀疑底层标签,忽略 PE-CE 与 RT 这两个更常见的原因,浪费大量时间

数据来源与参考

  • RFC 4364: BGP/MPLS IP VPN
  • 厂商: VRF 与 BGP 配置
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌