BGP路由反射器

同一集群内的客户机只需要与该集群的RR直接交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量

RR突破了“从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。”的限制,并采用独有的Cluster_List属性和Originator_ID属性防止路由环路。

RR向IBGP邻居发布路由规则如下:

从非客户机学到的路由,发布给所有客户机。

从客户机学到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。

从EBGP对等体学到的路由,发布给所有的非客户机和客户机

Cluster_List属性

路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的ClusterID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。

当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到ClusterList的前面。如果没有Cluster_List属性,RR就创建一个。

当RR接收到一条更新路由时, RR会检查Cluster List 。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地ClusterID,将其加入Cluster List,然后反射该更新路由。

Originator_ID属性

OriginatorID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。

当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。

当设备接收到这条路由的时候,将比较收到的OriginatorID和本地的Router ID,如果两个ID相同,则不接收此路由

路由器AR1和路由器AR2配置成RR,下面有一个共同的RR客户端路由器AR3。RR客户端宣告一条路由X,这条路由通告给路由器AR1和路由器AR2,路由器AR1和路由器AR2之间也会相互通告。路由器AR1关于路由X就有两个来源,路由器AR2和路由器AR3,优选路由器AR3。当路由器AR3宣告的10.10.10.10/24网络down掉以后,路由器AR1优选路由器AR2通告过来的路由,并且把路由通告给路由器AR3,路由器AR3把从路由器AR1学到的路由通告给路由器AR2。

此时,路由器AR1通过路由器AR2到达网络X,路由器AR2通过路由器AR1到达网络X,路由器AR3通过路由器AR1到达网络X,网络出现了环路。

可以通过ORIGINATOR_ID来解决。路由器AR2反射路由X给路由器AR1的时候为路由打上ORIGINATOR_ID。路由器AR1在把路由X反射给路由器AR3的时候,路由器AR3拒绝这条路由。这样就避免了路由环路。

RR反射BGP路由时候对哪些属性做修改

1.首台反射器反射路由时,把邻居的ROUTER ID作为起源ID添加在PA属性中,并新创建一个clusterlist的PA属性,此PA属性中携带了经过的所有RR的cluster ID。后续RR再次反射路由时,检查起源ID已经存在则不做修改,并把自己的clusterID放在cluster list中(形成列表,并非覆盖)。cluster list用作在RR间反射路由时防环,RR检测到clusterlist中有自己的cluster id则不收此路由。默认情况RR的cluster id等于自己的router id,也可以通过reflectorcluster-id命令手工指定。

2.起源ID属性用作在RR的客户端上防止路由环路,当设备收到一条BGP路由中有起源ID属性,并且等于自己的routerid,则认为出现路由环路,并不接受此路由。

3.在BGP路由反射器上,peernext-hop-local命令仅对标签路由(vpnv4路由)有效。

4.reflectchange-path-attribute命令用来使能路由反射器通过出口策略修改BGP路由的路径属性。根据RFC4465的规定,路由反射器上不能通过出口策略修改路由路径属性,因为这样配置可能会导致路由循环。所以默认情况下,禁止路由反射器通过出口策略修改路由路径属性。但是如果需要对网络流量进行重新规划,可以执行reflectchange-path-attribute命令使能路由反射器通过出口策略修改路由路径属性。反射器上使能reflectchange-path-attribute命令后,通过出口策略修改路由路径属性的配置即可生效。

防环场景

ORIGINATOR_ID防环场景:

路由器AR1和路由器AR2配置成RR,下面有一个共同的RR客户端路由器AR3。RR客户端宣告一条路由X,这条路由通告给路由器AR1和路由器AR2,路由器AR1和路由器AR2之间也会相互通告。路由器AR1关于路由X就有两个来源,路由器AR2和路由器AR3,优选路由器AR3。当路由器AR3宣告的C网络down掉以后,路由器AR1优选路由器AR2通告过来的路由,并且把路由通告给路由器AR3,路由器AR3把从路由器AR1学到的路由通告给路由器AR2。此时,路由器AR1通过路由器AR2到达网络X,路由器AR2通过路由器AR3到达网络X,路由器AR3通过路由器AR1到达网络X,网络出现了环路。

可以通过ORIGINATOR_ID来解决。路由器AR2反射路由X给路由器AR1的时候为路由打上ORIGINATOR_ID。路由器AR1在把路由X反射给路由器AR3的时候,路由器AR3拒绝这条路由。这样就避免了路由环路。

CLUSTER_LIST防环场景:

路由器AR1是一个簇的RR,路由器AR2和路由器AR3是另外一个簇的RR。路由器AR1将簇内一个客户端通告的路由X传递给路由器AR2和路由器AR3,路由器AR2和路由器AR3之间也会相互通告。

路由器AR2关于路由X就有两个来源,路由器AR2和路由器AR3,优选路由器AR1。当路由器AR1所在簇的路由X出现问题时,路由器AR2优选路由器AR3通告过来的路由,并且把路由X通告给路由器AR1,路由器AR1把从路由器AR2学到的路由通告给路由器AR3。此时,路由器AR1通过路由器AR2到达网络X,路由器AR2通过路由器AR3到达网络X,路由器AR3通过路由器AR1到达网络X,网络出现环路。

可以通过CLUSTER_LIST来解决。路由器AR1把路由X通告给非簇成员路由器AR1和路由器AR2的时候,在CLUSTER_LIST中添加自己的簇ID。路由器把通过路由器AR3学到的路由传递给路由器AR1的时候,在CLUSTER_LIST中添加自己的簇ID。路由器收到路由器AR2传递过来的路由,检测CLUSTER_LIST,发现里面有自己的簇ID,决绝这条路由。

路由通过IBGP通告的时候,IBGP路由不会像EBGP路由那样具有环路保护机制,所以就有可能出现环路。

假设一个拓扑,路由器AR1/AR2/AR3两两互联,两两建立IBGP邻居。在路由器AR1上面宣告一条路由,路由器AR2和路由器AR3都会学习到。如果没有IBGP的水平分割,路由器AR2和路由器AR3相互也会通告这条路由,路由器AR2和路由器AR3上面也有对方通告的路由。假设路由器AR1上面通告的网络down掉,路由器AR3会选择路由器AR2通告的路由,并且向路由器AR1通告这条路由。路由器AR1此时向路由器AR2通告的路由是从路由器AR3学到的,路由器AR3的路由是从路由器AR2学到的,路由器AR2的路由是从路由器AR1学到的。这样,就导致了环路。

为了避免环路,BGP不会把从IBGP邻居学到的路由通告给其他的IBGP邻居。这就是IBGP的水平分割。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A_Puter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值