首页/网络/BGP 与广域网速查/VPNv4 的 RR 设计:反射与下一跳
MPLS 与专线70 条

VPNv4 的 RR 设计:反射与下一跳

PE 数量增长后用 RR 反射 VPNv4 路由;反射器保持原始下一跳语义,跨域场景评估 next-hop-unchanged 的使用边界。

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

VPNv4 为什么要用 RR

VPNv4 是 MPLS L3VPN 中承载客户路由的地址族,每条路由带 RD 与 RT 扩展团体。PE 数量增长后,PE 之间的 iBGP 全互联会话数按平方级增长,于是引入路由反射器(RR):PE 作为客户端只与 RR 建立会话,由 RR 把路由反射给其他客户端。设计上要额外关注两点:客户端如何分组接入,以及反射后的下一跳是否可达。

基本信息

RR 作用避免 PE 之间 iBGP 全互联,降低会话数量
地址族在 VPNv4 地址族下单独启用
客户端PE 以客户端身份接入,需配 route-reflector-client
下一跳反射时默认保持原始下一跳,跨域再评估 next-hop-unchanged
冗余两台 RR 互为备份,cluster-id 规划要成体系

典型使用场景

  • PE 数量增长后用 RR 收敛 iBGP 会话规模
  • 新增 PE 上线:只在 RR 侧补一条客户端配置
  • 跨域 Inter-AS 方案评审时决定是否保持下一跳
  • 排查「PE 之间学到路由但流量不通」:先看下一跳可达性
  • RR 冗余设计:避免单点故障影响 VPN 路由收敛

配置与核对

配置与核对
router bgp 65001
 address-family vpnv4
  neighbor 3.3.3.3 activate
  neighbor 3.3.3.3 route-reflector-client      # 该 PE 作为反射客户端
  neighbor 4.4.4.4 route-reflector-client
!
show ip bgp vpnv4 all summary                   # 客户端数量与邻居状态
show ip bgp vpnv4 all 10.1.1.0/24               # 核对下一跳与 RT 是否符合设计

设计要点

要点做法风险
客户端分组按区域或机房挂到就近 RR全部 PE 挂同一对 RR 会让收敛压力集中
cluster-id同集群一致,不同集群区分规划混乱会破坏环路防护语义
下一跳处理默认保持原始下一跳客户端到该下一跳不可达时路由不入表
RR 冗余两台 RR 互为备份单 RR 故障时新会话无法建立
RR 保持原始下一跳的好处是避免流量绕行反射器,代价是每个客户端都要能到达该下一跳(通常是入口 PE 的 loopback),因此 PE 之间的底层可达性必须提前规划。
cluster-id 用于环路检测:同一集群内的 RR 要一致,不同集群要区分,规划混乱时可能出现路由被误丢或冗余路径异常。
跨域场景随意启用 next-hop-unchanged,会让对端拿到不可达的下一跳:路由进了表却无法转发,表现为「有路由无流量」,改前先确认两端底层可达关系。

易错点

  • cluster-id 规划混乱:环路防护语义被破坏,表现为路由被误丢或冗余路径异常
  • 跨域随意启用 next-hop-unchanged:对端下一跳不可达,路由入表但流量不通
  • RR 只有一台且无备份:单点故障时新会话无法建立,VPN 路由收敛受影响
  • 只加客户端不考虑底层可达性:反射成功但转发失败,PE 之间缺少到达原始下一跳的路由

数据来源与参考

  • RFC 4456: Route Reflection
  • RFC 4364: L3VPN 架构
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌