BGP 的水平分割原则(IBGP 也就是从 IBGP 邻居学到的路由不传给其他 IBGP 邻居)在大型网络中会导致 Full-mesh 连接数爆炸。RR 打破了这一规则,因此必须引入新的防环机制:Originator_ID 和 Cluster_List。
- Originator_ID 与 Cluster_List 的深层逻辑
Originator_ID:由第一个 RR 产生,记录了路由最初发起者的 Router-ID。如果路由器收到的 BGP 更新中 Originator_ID 等于自己的 Router-ID,则丢弃,防止环路回到源头。
Cluster_List:记录路由经过的所有反射簇(Cluster ID)。类似于 AS-Path,用来防止在多个 RR 之间的环路。
- 容易被忽视的“次优路径”陷阱
RR 虽然解决了连接数问题,但它不仅破坏了 IBGP 水平分割,还破坏了 BGP 的最佳路径选择视角。
RR 只会反射它自己认为“最优”的那一条路由给客户端。
场景:假设 Client A 到目标网段有两条物理链路,分别经过 Router B 和 Router C。如果 RR 认为经过 Router B 的路径最优,它只会把这一条反射给 Client A。即使从 Client A 的物理拓扑看,走 Router C 其实更近(IGP Cost 更低),Client A 也无从得知,因为通过 C 的路由被 RR “吞”掉了。
解决:这通常需要通过 BGP Add-Path 特性来解决,允许 RR 传递多条路由。
- 跨运营商互联中的 Option B 与 Next-Hop
在 MPLS VPN 跨域 Option B 方案中,ASBR 之间开启 MP-EBGP。这里有一个非常容易混淆的点:
Next-Hop-Self 的自动性:在 Option B 中,ASBR 向内部 PE 传递路由时,必须自动将下一跳改为自己。
标签栈的变化:这是 Option B 的核心难点。报文在 ASBR 处并不仅仅是转发,而是发生了标签交换。
入方向:ASBR 收到带有 VPN Label 的报文,剥离外层(如有),查找 LFIB,将旧的 VPN Label 替换为新的 VPN Label(由该 ASBR 分配),然后压入新的 IGP 标签转发给下一跳。
专家视点:Option B 不泄露 VPN 路由到 P 路由器,安全性好于 Option A,但 ASBR 需维护所有 VPN 路由,内存压力大。理解这一过程必须能够脑补出数据包在 ASBR 接口那一瞬间的 Pop -> Swap -> Push 动作。


评论