打破IBGP的水平分割的条件
IBGP水平分割---避免IBGP环路---从一个IBGP邻居处学习到的路由条目不能传递给本地的其他IBGP邻居;
因为BGP可以非直连建邻,故正常一台运行了BGP协议的路由器,均存在EBGP邻居,需要从其他AS学习路由条目,再共享到内部AS时,由于水平分割的存在,需要和本地AS内所有的BGP设备建立IBGP邻居关系;IBGP邻居关系的数量成指数上升;
有条件打破IBGP水平分割--- 有条件:在管理员确定网络无环的前提下,人为的打破水平分割限制建设邻居关系的数量;
无环的核心思想为AS-BY-AS规则;一条条目在AS内部传递时其属性默认不变化;
反射器
3种角色,RR(反射器) 客户端 非客户端;
3者构建一个簇;可以理解为RR为中心站点,客户端或非客户端是分支站点;
要求所有分支与中心必须是IBGP邻居关系;
在一个簇中至少存在一台客户端。
RR会将学习的路由反射出去,从而使得IBGP路由在AS内传播无需建立IBGP全互联。
将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR。
反射规则
RR在接受BGP路由时:
1、如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它将该路由反射给所有客户。
2、如果路由反射器从自己的客户学习到一条IBGP路由,则它将该路由反射给所有非客户,以及除了该客户之外的其他所有客户。
3、如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体。
路由反射场景的防环
BGP路由反射行为引入了路由环路的隐患;
RR的设定使得IBGP水平分割原则失效,这就可能导致环路的产生,为此RR会为BGP路由添加两个特殊的路径属性来避免出现环路:Originator_ID(起源者)、Cluster_List(记录经过的簇) 。
注意:若路由条目不优,不具有传递性;反射器也无法反射路由;
配置命令:[r3-bgp]peer 2.2.2.2 reflect-client
该指令的作用,是让2.2.2.2成为本地的客户端,同时本地成为路由反射器;
联邦(Confederation)
联邦也被称为联盟,大致的思想就是在一个大的AS内创建若干个小的AS,使得AS内部出现一种特殊的EBGP对等体,从而解决IBGP路由在AS内的传递问题。
简单说就是将一个真实的大AS,逻辑的分为多个小AS;小AS的编号建议为私有编号;
小AS间构建联邦内的EBGP邻居关系,可以向真实EBGP关系一样传递路由条目,但不修改属性; 对于该大AS外的其他AS,是不知道内部的小AS情况。
联邦配置
所有配置全部基于小as号进行
[r3]bgp 64512--先写小AS号
[r3-bgp]router-id 3.3.3.3---配置BGPRID
[r3-bgp]confederation id 2--指定小AS的大AS号
同样在大AS号里面小AS号用环回建邻时,也需要设置修改TTL值,小AS之间建邻也是属于EBGP关系。
[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2
小AS间互指peer;在联邦内的ebgp邻居关系间的两台设备,互相定义对端的小AS号;
[r3-bgp]confederation peer-as 64513
注:华为设备,必须先定义联邦的id,和互相小AS号后再配置邻居关系建立的命令;
在实际的工程案例中,联邦和反射器是同时被使用,降低配置量;