bgp路由反射器与联盟

为了实现路由信息的交互,BGP要求一个AS内的所有BGP SPeaker相互形成IBGP的对等体全互联,而这一要求使得IBGP的扩展成为了一个很大的问题。BGP反射器以及BGP联盟则是为了解决该问题提出的BGP扩展技术。

我们使用路由反射来描述一个BGpSPeaker通告一条IBGP路由到另外一个IBGP对等体的操作。而这样的一个BGPSpeaker通常被称为路由反射器(RouteReflector,RR),这样的一条旧GP路由被称为反射路由。

旧GP对等体可以有三种角色:
路由反射器(RouteReflector)
客户机(Client)
非客户机(Non一Client)
路由反射器和它的客户机组成一个集群(Ouster)。路由反射器在客户机之间传递(反射)路由信息,所以客户机之间不需要建立BGp连接。既不是反射器也不是客户机的BGp路由器被称为非客户机(Non一Client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。

路由反射宣告原则:当RR收到BGP对等体发来的路由,首先使用BGP选路策略来选择最佳路由。在发布学习到的路由信息时,RR按照RFC2796中的规则发布路由。从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)。从EBGP对等体学到的路由,发布给所有的非客户机和客户机。

当一个AS内存在多台RR为Client提供冗余时,RR间的路由更新很有可能会形成环路,为防止该现象,引入了Cluster的概念。

通常,一个客户的簇只拥有一个RR,并由RR的BGP RouterID去标识该簇。

路由反射环路防止机制-Originator_ID

当一个路由被反射的时候,可能会由于错误的配置形成路由环路。因此路由反射定义了以下的方法去检测和防止路由信息环路的产生:Originator_ID属性用于防止路由在反射器和客户机/非客户机之间产生环路。Originator_ID属是由路由反射器(RR)产生的,携带了本地AS内部路由发起者的Router ID,当一条路由第一次被RR反射的时候,RR将originator_lD属性加入这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了originator_ID属性,则RR将不会创建新的Originator_ID。当其它BGP Speaker接收到这条路由的时候,将比较收到的originator ID和本地的RouterID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。

路由反射环路防止机制-Cluster_List

CLuster_LIST有路由反射器RR产生,当RR在它的客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluter_ID添加到Cluster_ID前面。当RR接受到一条更新路由时,RR会检查Cluster_List。如果Cluster_list中已经有本地的Cluster_ID,则丢弃该路由,否则将本地Cluster_ID加入该更新路由Cluster_List中,然后发送该更新路由

bgp路由反射器与联盟_第1张图片

放射器的配置如下:

把AR5配置成一台RR,AR4与AR5建立IBGP邻居关系,则AR5可以向AR4传递从AR3上学来的外部路由,打破IBGP的水平分割。配置命令如下:
bgp 100                              进入AS编号为100的bgp进程
peer 14.1.1.2 as-number 100          指定ibgp邻居

peer 14.1.1.2 reflect-client         将14.1.1.2设置为反射器的客户机,接受从ibgp学习到的路由

bgp联盟:联盟通过把大的AS分成多个更小的AS来解决}BGP全互连的问题,这些自治系统叫做成员AS。因为成员AS之间使用EBGP会话,它们之间不需要全互连。然而在每一个成员AS中,IBGP全互连的要求仍然适用。对于外部邻居来说(联盟外的的对等体),成员AS拓扑是不可见的。也就是说,在发向EBGP邻居的更新消息中,已经剥去了联盟内被修改的AS_PATH。从其他的自治系统来看,联盟就像单个AS一样。每个成员AS中,旧GP全连接是需要的。路由反射也可以被部署。部署联盟的一个明显优势就是其成员AS不需要使用相同的IGP。每个成员AS不需要向其他成员AS通告自己的内部拓扑。不过,当使用不同的IGP时,每一个成员AS内必须保证BGP下一跳的可达性。
bgp联盟配置命令如下:
把AR3和AR5组成一个子AS,编号为2000,把AR4单独作为一个子AS,编号为2001。
在AR3上的配置命令如下:
bgp 2000                                 进入子AS编号为2000的bgp进程中
confederation id 100                     设置封装子AS的外部AS编号
peer 11.1.1.1 as-number 200              指定ebgp邻居
peer 13.1.1.2 as-number 2000             指定ibgp邻居
在AR5上的配置如下:
bgp 2000                                 进入子AS编号为2000的bgp进程中
confederation id 100                     设置封装子AS的外部AS编号
confederation peer-as 2001               指定联盟内外部子AS的编号(与联盟外AS区分开)
peer 13.1.1.1 as-number 2000             指定ibgp邻居
peer 14.1.1.2 as-number 2001             指定联盟内外部子AS为2001的ebgp邻居

你可能感兴趣的:(bgp路由反射器与联盟)