RR 解决什么问题
IBGP 有一条硬性规则:从 IBGP 邻居学到的路由不会再传给其他 IBGP 邻居。这条规则保证无环,代价是 n 台设备需要两两建立会话(会话数量随设备数平方增长)。路由反射器(RR)打破这个限制:被指定为客户端(client)的设备只需与 RR 建立会话,RR 负责把路由反射给其他客户端。
基本信息
| 要解决的问题 | IBGP 全互联带来的会话量增长 |
|---|---|
| 方案 | RR 作为反射中心,客户端只需连 RR |
| 层级 | RR 可级联,用 cluster 概念区分 |
| 冗余 | 常部署双 RR,客户端同时连两台 |
| 防环机制 | Originator ID 与 Cluster List |
| 配置命令 | neighbor <ip> route-reflector-client |
典型使用场景
- 数据中心内多台边界设备需要同步外部路由
- 企业骨干规模扩大,全互联会话数量难以维护
- 与 RR 级联设计配合,构建分层 IBGP 拓扑
- 双 RR 部署提升反射路径的可用性
- 排障时确认某台设备是否被正确指定为客户端
配置与验证
配置与验证
router bgp 65001
neighbor 10.0.0.10 remote-as 65001
neighbor 10.0.0.10 route-reflector-client # 把该邻居指定为客户端
!
show ip bgp 10.1.1.0/24 # 查看反射路径的 originator 与 cluster-list
show ip bgp neighbors 10.0.0.10 # 确认客户端的收发与状态
show ip bgp summary # 核对客户端与非客户端邻居构成与全互联方案对比
| 对比项 | 全互联 | RR 方案 |
|---|---|---|
| 会话数量 | n 台设备约 n 的平方量级 | 客户端只需连 RR,显著减少 |
| 配置复杂度 | 每台设备都要维护多个邻居 | 集中维护在 RR 上 |
| 可靠性 | 单条链路故障影响面小 | 需双 RR 提升冗余 |
| 防环依赖 | 规则本身保证 | Originator ID 与 Cluster List |
| 适用规模 | 少量设备 | 中大型 IBGP 域 |
RR 自身不改变 AS_PATH:反射时保留原有属性,环路防护依靠 originator ID 与 cluster list,因此这两项是核查反射是否正常的关键字段。
客户端只连一台 RR 时,RR 故障会导致反射路径中断:生产环境通常部署双 RR 并让客户端同时建立会话。
角色与规则速记
| 来源角色 | 目标角色 | 是否反射 |
|---|---|---|
| 客户端 | 客户端 | 反射 |
| 客户端 | 非客户端 | 反射 |
| 非客户端 | 客户端 | 反射 |
| 非客户端 | 非客户端 | 不反射 |
RR 不改变下一跳,也不改变属性:它只在 IBGP 邻居之间转发路由,因此下一跳可达性问题仍然需要靠 next-hop-self 或 IGP 设计来解决。