说明:该笔记作用于 BGP 路由反射器理论与命令参考讲解
参考视频:红茶三杯
前置
我们先来回顾 BGP 的第一天学习知识:
直接的观察上图,我们发现存在一个中转 AS ( Transit AS ),可以很直接了笃定,如果 D,C 不起 BGP 路由协议,那么将造成 路由黑洞 的问题
但是如果起了 BGP ,我们就需要注意 IBGP 的 水平分割原则:我从一个 IBGP 学习到的路由,我将不会再转发给我的任何 IBGP 邻居。所以为了避免水平分割的原则,造成 timeout,我们必须再 AS-Transit 中起一个全互联的 BGP neighbor
关系,我们将这种中转关系叫做 Full mesh neighbors
这种情况其实很常见,可是 BGP 配置就已经够烦人了,关系到各种路由策略,我还的关心路由黑洞和水平分割,不得玩疯了?
这个时候啊,BGP 路由反射器就诞生了
中转 AS 中的 IBGP 问题:
-
AS 内要求 IBGP 全互联 ( IBGP 水平分割)
-
BGP Routers
- 需维护大量的 TCP 及 BGP 连接
- 网络中充斥着 BGP 路由信息
-
解决方案
- 路由反射器
- BGP 联邦
0x01 路由反射器技术背景
关键字:Route Reflector == 路由反射器 RR
观察上图:
因为 IBGP 水平分割原则,导致 AS 内部需要维护大量的 BGP 连接 (要求 IBGP 全互联 full mesh ),从而影响网络性能,路由反射器可以 “放宽” 水平分割原则,缓解该问题。
其实,说白了,我们就是不愿意,不想去给 R3 和 R5 起 BGP 邻居关系,这样会浪费网络性能
0x02 路由反射器基础
关于路由反射器 RR route reflector 我们可以将其形象的理解为一面镜子
观察下图:
我们可以发现,存在一个 Client -> RR (Route Reflector) 的关系,
如果我们在 R4 上起路由反射器,将 R3 作为 Client,**那么 R4 将会把从 R3 发送给 R4 的路由信息反射到 **R5 上,从而使得 R5 跨越水平分割的屏障,学习到 R4 的路由。
0x03 路由反射规则 🔺
1:如果路由学习自非 Client IBGP Peer,则反射给所有 Client
2:如果路由学习自 Client,则反射给所有非 Client IBGP 邻居和除了该 Client 以外的所有 Client
3:如果路由学习自 EBGP Peer,则发送给所有 Client 和非 Client IBGP 邻居
巩固实例 1:
巩固实例 2:
0x04 Route Reflector 防环路径属性 🔺
由于我们使用路由反射器去放宽水平分割原则,这样就回给环路带来一定隐患
通常 Route Reflector 部署在 Transit AS 内部,那么既然为 AS 内部,则 AS-Path 防环无效,为了避免水平分割与路由黑洞,起路由反射器,但我们也需要注意路由反射器的防环
Route Reflector 防环属性:
- Originator_ID
- Cluster_list
参考图:
通过观察上图,我们可以发现:🔺
1:Originator_ID 是标记一个路由起源,即 R3 的 Router ID
2:Cluster_list,则是 RR 标记上去的一个反射簇
二者都类似于 AS-path 属性的防环特点
3:Originator_ID,在反射出去后会一直携带,且不改变值
4:Cluster_listÿ