BGP协议路由反射器

1、产生背景
为了保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接的关系,假设在一个AS内部有N台设备,那么建立的IBGP连接数就为N(N-1)/ 2,当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都非常大,在IBGP对等体间使用路由反射器可以解决上述问题;

2、路由反射器角色
如下图所示,在一个AS内部关于路由反射器有以下几种角色:HuaWei ❀ BGP协议路由反射器_连通性

(1)路由反射器-RR Route Reflector:允许把从IBGP对等体学到的路由反射到其他IBGP对等体的BGP设备,类似OSPF网络中的DR;
(2)客户机-Client:与RR形成反射邻居关系的IBGP设备,在AS内部客户机只需要与RR直连;
(3)非客户机-Non Client:既不是RR也不是客户机的IBGP设备,在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系;
(4)始发者-Originator:在AS内部始发路由的设备,Originator_ID属性用于防止集群内产生路由环路;
(5)集群-Cluster:路由反射器及其客户机的集合,Cluster_List属性用于防止集群间产生路由环路;

3、路由反射器原理
同一个集群内的客户机只需要与该集群的RR直连交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量,如上图所示,在AS 65000内一台设备作为RR,三台设备作为客户机,形成Cluster 1,此时AS 65000中IBGP连接数从配置RR前的10条较少到4条,不仅简化了设备的配置,也减少了网络的负担;
RR突破了 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体 的限制,并采用独有的Cluster_List属性和Originator_ID属性防止路由环路,RR向IBGP邻居发布路由规则如下:
(1)从非客户机学到的路由,发布给所有客户机;
(2)从客户机学到的路由,发布给所有非客户机和客户机,本地客户机除外;
(3)从EBGP对等体学到的路由,发布给所有非客户机和客户机;

4、备份路由反射器
为了增加网络的可靠性,防止单点故障对网络造成影响,有时需要在一个集群中配置一个以上的RR,由于RR打破了从IBGP对等体收到的路由不能传递给其他IBGP对等体的限制,所以同一个集群内的RR之间可能存在环路,这时该集群中的所有RR必须使用 相同的Cluster ID,以避免RR之间的路由环路;
HuaWei ❀ BGP协议路由反射器_全连接_02

如上图所示,路由反射器RR1和RR2在同一个集群内,配置了相同的Cluster ID;
(1)当客户机Clent 1从EBGP对等体接收到一条更新路由,它将通过IBGP向RR1和RR2通告这条路由;
(2)RR1和RR2在接收到该更新路由后,将本地Cluster ID添加到Cluster_List前面,然后向其他的客户机反射,同时相互反射;
(3)RR1和RR2在接收到该反射路由后,检查Cluster_List,发现自己的Cluster ID已经包含在Cluster_List中,于是RR1和RR2丢弃该更新路由,从而避免了路由环路;