路由反射器
BGP路由在AS内部职能传递一跳。
角色:
-
RR---路由反射器
-
RR就好比是一面镜子,可以将自己收到的BGP路由信息反射给其他BGP对等体
-
-
Client----RR客户端
-
所有设备都可以是RR的客户端,但是这件事情需要由RR来指定。
-
只有RR的IBGP对等体才可以称为其的客户
-
我们将RR与其的客户端所构成的系统称为路由反射簇,每一个路由反射簇都将使用RR的RID作为簇ID,来标识不同的反射簇。
路由反射器的反射规则
-
如果RR从自己的非客户端收到一条IBGP路由信息,则可以转发给自己的客户端
-
如果RR从自己的客户端收到一条IBGP路由信息,则可以转发给自己的所有非客户和除了路由发来的客户
-
如果RR从自己的EBGP对等体学习到一条路由信息,则可以转发给所有人
-
RR只能将自己身上可用且优的路由信息进行反射。
[r3-bgp]peer 2.2.2.2 reflect-client ---将R2指定为本地的RR客户
路由反射器的出现,解决了IBGP路由传输的问题,打破了IBGP水平分割原理。而IBGP水平分割原理是为了防止BGP出现环路所设计的,打破会存在环路隐患。
路由反射器场景下的防环
起源者ID
当一条BGP路由被RR反射给其他路由器时,如果这条路由已经携带了起源者ID属性,则保留该属性,否则由RR设备为这条路由信息添加起源者ID属性,并且将该属性的数值设定为本地AS内的始发路由器的RID。
路由器从IBGP对等体收到一条IBGP路由,并且该路由所携带的起源者ID属性与本地的BGP RID相同时,则会意识到该路由信息是从本地始发的信息,将忽略这条路由信息的更新。从而避免环路。
该属性参数,只会在AS内部进行传递,不会传递出AS。
簇列表
当一条BGP路由被路由反射器执行反射时,如果这条路由已经存在簇列表属性,那么路由反射器将本地的簇ID附加到路由的簇列表属性之前。而如果这条路由并不存在簇列表属性,那么RR会为这条路由信息创建一个簇列表属性并将本地的簇ID添加到簇列表中。
当一台==路由反射器==收到BGP路由时,若发现该路由携带簇列表,并且簇列表中包含自己本地的簇ID,则忽略这条路由信息的更新。----防环效果类似于AS_Path属性。
注意:
-
当RR从EBGP学习一条路由,并传递给自己的IBGP对等体时,不会创建起源者ID和簇列表属性,因为这本质上不是路由反射行为。
-
这两个属性只会在AS内传递,传出AS时,这两个属性会被删除。
-
当路由反射器执行路由反射时,除了这两个属性,其他路径属性都不会修改。
反射器组网方案
备份RR组网
当客户端1从EBGP对等体收到一条BGP路由时,它将通过IBGP向RR1和RR2通告这条路由。
RR1和RR2在收到该更新路由后,将本地的簇ID添加到簇列表当中,然后向其他客户端反射,同时RR1和RR2相互反射。
RR1和RR2收到相互反射路由时,检查簇列表,发现与自己的簇ID相同。故忽略对端的路由更新,避免环路问题。
如果要构建备份RR组网,所有的RR设备必须使用相同的簇ID。
[r2-bgp]reflector cluster-id 2.2.2.2 ---在RR上配置,配置后,会覆盖原有的簇ID,使用2.2.2.2为新的簇ID数值。
多集群路由反射器组网
让反射簇的RR之间建立IBGP对等体关系。