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,会让对端拿到不可达的下一跳:路由进了表却无法转发,表现为「有路由无流量」,改前先确认两端底层可达关系。