阅读本文章可了解BGP的IBGP对等体之间是如何传递路由的,并了解BGP的IBGP对等体之间如何实现交换路由信息的,了解RR反射器与联盟之间的属性参数,以及环路问题和RR反射与联盟之间的区别。
一、概述
在BGP中,为了防止路由环路的出现,对于EBGP路由和IBGP路由分别做了如下规定。(水平分割)
- 对于AS之间学习到的EBGP路由,通过AS_Path属性记录途径的AS路径,规定在收到带有本地AS号的路由将被直接丢弃。
- 对于AS内部学习到的IBGP路由,规定在收到路由后禁止向其他IBGP对等体发布。也就是IBGP对等体之间仅能学习到对等体(IBGP的对等体可以是非直连的)之间的路由,不能学习到非对等体之间的路由。
从上面的说明可以看出,IBGP设备之间只有对等体之间可以互相学习到对方的路由,这样一来就带来了一个问题,即非IBGP对等体之间不能彼此交互路由信息,变成路由不可达了。为了保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全互联关系。即假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。但这样一来,当一个AS中的BGP设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大,对管理员的工作量也非常大。
为了解决以上问题,BGP提供了两种解决方案,一个就是在IBGP对等体间使用路由反射器(Route Reflector,RR),另一个就是联盟(Confederation)。由于联盟的功能以及对拓扑的要求导致我们现在几乎不会使用到联盟,所以这里大家了解即可。
二、路由反射器(Route Reflector,RR)
在IBGP对等体间使用路由反射器可以解决在一个AS内各设备间需要全连通的问题。在RR技术中,为一个AS内部的各IBGP设备定义了以下几种角色,如下图所示。
- 路由反射器(RR):上图中的AR1就是RR,RR允许把从IBGP对等体学习到的路由反射给其他IBGP对等体,与OSPF网络中的DR(指定路由器)或者IS-IS网络中的DIS(指定IS)类似。
- 客户机(Client):与RR形成反射邻居关系的IBGP设备,类似于OSPF中的DROther,或者IS-IS网络中的DISOther。在AS内部,客户机只需要与RR直连,彼此交换路由信息,客户机之间无需直接连接,也无需交换路由信息。
- 非客户机(NOn-Client):既不是RR,也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全互联关系。
- 集群(Cluster):路由反射器及其客户机的集合。通过专门的Cluster_List属性可防止集群间产生路由环路。
- 始发者(Originator):在AS内部始发IBGP路由的设备。通过专门的Originator_ID属性可防止集群内产生路由环路。
1、路由反射器原理
在路由反射器技术中规定,同一集群内的客户机只需要与该集群的RR直接交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量。类似于OSPF广播网络中一个网段的DRother仅可与DR、BDR建立邻接关系,DRother不能建立邻接关系。
如下图所示,在AS65000内,一台设备作为RR,3台设备作为客户机,形成Cluster1,此时,AS65000中IBGP的连接数从配置RR前的10条减少到4条,不仅简化了设备的配置,也减轻了网络和CPU的负担。
RR突破了"从IBGP对等体获得的IBGP路由只能发布给它的EBGP对等体"的限制,并采用独有的Cluster_List属性和Originator_ID属性分别防止了集群之间和集群内部的路由环路的出现。
RR向IBGP邻居发布路由规则如下:
- 从非客户机学习到的路由,发布给所有客户机。
- 从客户机学习到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。
- 从EBGP对等体学习到的路由,发布给所有的非客户机和客户机。
单纯记这三条不好记,只需要记一条非客户机不传非客户机即可
2、Cluster_List属性
路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性来记录路由经过的所有集群的Cluster ID,类似于EBGP路由中所使用的AS_Path属性。具体流程如下:
- 当一条路由第一次被RR通告时,RR会把本地Cluster ID添加到Cluster_List的前面。如果没有Cluster_List属性,RR就创建一个。
- 当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster ID,则丢弃该路由;否则,将其假如Cluster_List,然后通告该更新路由。
3、Originator_ID属性
Originator_ID由RR产生,使用路由始发者的Router ID进行标识,用于防止集群内产生路由环路。具体流程如下
- 当一条路由第一次被RR通告时,RR将路由始发者的Originator_ID属性加入这条路由当中,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
- 当IBGP接收到这条路由时,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,则丢弃该路由,否则,接收该更新路由。
4、备份路由反射器
为增加网络的可靠性,防止单点故障对网络造成的影响,有时需要在一个集群中配置一个以上的RR。由于RR打破了从IBGP对等体收到的BGP路由不能传递给其他IBGP对等体的限制,所以,如果同一集群内存在多个RR,则它们之间有可能存在环路,因此这里又规定,同一集群中的所有RR必须使用相同的Cluter ID,以避免RR之间的路由环路。
如下图所示,路由反射器RR1和RR2在同一个集群内,配置了相同的Cluster ID。下面是备份路由反射器解决环路的具体流程:
- 当客户机Client1从EBGP对等体接收到一条更新路由时,它将通过IBGP同时向RR1和RR2通告这条路由。
- RR1和RR2在接收到该更新路由后,将本地Cluster ID添加到Cluster List前面,然后向其他的客户机(Client2、Client3)通告。对于到达同一目的地的路由,它们只接收先到的路由,因为由RR1和RR2发送的到达同一目的的两份路由信息中的Cluster ID相同,相当于是来自同一个RR的多个副本。
- 当Client2、Client3客户向RR1和RR2进行路由发布时,RR1和RR2有可能收到原来由自己向客户机通告的路由。这时RR1和RR2会检查路由发布中的Cluster List,如果发现自己的Cluster ID已经包含在通告路由的Cluster List中,就丢弃该更新路由,从而避免了路由环路。
5、多集群路由反射器
一个AS中可以存在多个集群,各个集群的RR之间可以建立IBGP对等体。当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。当RR所处的网络层相同时,可以将不同集群的RR全连接,形成同级RR。在实际的RR部署中,常用的是分级RR的场景。
如下图所示,ISP为AS100提供Internet路由。AS100内部分为两个集群,其中Cluster1内的4台设备是核心路由器,采用备份RR的形式保证可靠性;而Cluster2内的两台设备是下级路由器,采用单RR结构。
如下图所示,一个骨干网被分成多个集群。各集群的RR间互为非客户机关系,并建立全连接。此时,虽然每个客户机只与所在集群的RR建立IBGP连接,但所有RR和客户机都能收到全部的路由信息。
三、BGP联盟
解决AS内部要求IBGP对等体间全联通的问题,除了可以用反射器之外,还可以使用联盟(Confederation)技术。联盟的基本思想是将一个AS划分为若干个子AS,这样一来,原来有些设备间的IBGP对等体关系就可能变成了EBGP对等体关系了,就可以继续发布路由了。
在联盟内,只需每个子AS内部建立了IBGP全连接关系即可,子AS之间的设备间没有全连接的要求,而且子AS间可以建立联盟内部的EBGP对等体关系,但联盟外部AS仍会仍为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。这样有两个好处:一是可以保留原有的IBGP属性,包括Local Preference属性、MED属性和Next_Hop属性等;二是联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作。
如下图所示,AS100使用联盟后被划分为3个子AS:AS65001、AS65002和AS65003,使用AS100作为联盟ID。此时IBGP的连接数量从10条减少到了4条,不仅简化了设备的配置,也减轻了网络和CPU的负担。而AS100外的BGP设备因为仅知道AS100的存在,并不知道AS100内部的联盟关系,所以不会增加CPU的负担。
联盟的缺陷是:从非联盟方案向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。在大型BGP网络中,路由反射器和联盟可以被同时使用。下表从配置、设备连接和应用方面对路由反射器和联盟进行了比较。
路由反射器 | 联盟 |
不需要更改现有的网络拓扑,兼容性号 | 需要改变逻辑拓扑 |
配置方便,只需要对作为反射器的设备进行配置,客户机并不需要知道自己是客户机 | 所有设备需要重新进行配置 |
集群与集群之间仍然需要全连接 | 联盟的子AS之间是特殊的EBGP连接,不需要全连接 |
适用于中、大规模网络 | 适用于大规模网络 |
以上就是本章的全部内容了,感谢大家的浏览观看!关于RR反射的相关实验案例配置在下一章会详细讲解,文章若有错误或疑问可联系博主删除更改,文章中部分内容源自教材《华为路由器学习指南》感兴趣可购买相关书籍进行浏览。