1.BGP大规模路由的应用
在较大规模组网或者路由条目较多的情况下,出于简化配置,减少路由条目,提升设备性能等等因素的考虑,会需要用到以下几种工具或技术
- 路由聚合,主要是用于简化路由
- 对等体组,主要是用于简化配置以及提升设备的性能
- 团体属性,简化配置以及简化路由的使用
- 路由反射,简化配置
- BGP联盟,大规模场景的应用
1.1 路由聚合
路由聚合
- 只向对等体发送聚合后的路由,从而缩小路由表规模
- 明细路由如果发生路由振荡,不会对网络造成影响
- 路由聚合分为自动聚合和手动聚合
对于IPV4的路由,BGP支持
- 手工聚合
- 自动聚合
对于IPV6的路由,BGP支持
- 手工聚合
1.2 对等体组
对等体组
- 对等体组(Peer Group)是一些具有某些相同策略的对等体的集合
- 此功能可以简化BGP的配置,同时减少路由性能损耗
按组打包
- 按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组
- 每条待发送路由只被打包一次然后发给组内的所有邻居
1.3 BGP的团体属性
团体属性用于标识具有相同特征的BGP 路由,该属性为可选过渡
团体属性分为:
- 自定义团体属性
- 公认团体属性
团体名称 | 说明 |
Internet | 缺省情况下,所有路由器都属于Internet团体。具有此属性的路由可以被通告给所有的BGP对等体 |
No_Export | 具有此属性的路由在收到后,不能被发布到本地AS之外 |
No_Advertise | 具有此属性的路由在收到后,不能被通告给任何其他的BGP对等体 |
No_Export_Subconfed | 具有此属性的路由在收到后,不能被发布到本地AS之外,也不能被发布到其他子AS |
1.4 路由反射器
- 允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系全互联的需求,减少IBGP会话数量
- 包括路由反射器(RR)和客户机(Client)
反射的规则
- 从EBGP对等体学到的路由,发布给所有的非客户机和客户机
- 从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机
- 从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)
防环机制
Originator_ID属性:
- Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路
- 当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性
- 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由
Cluster_List属性:
- 在一个AS内,每个路由反射器使用唯一的Cluster ID作为集群标识,用于防止集群间产生路由环路
- 为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID
- 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个
- 当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由
备份RR
- 相同集群中的路由反射器要共享相同的Cluster_ID
- Cluster_List的应用保证了同一AS内的不同RR之间不出现路由循环
拓补描述:
- 当客户机Client1从外部对等体接收到一条更新路由(10.0.0.0/24)后,它通过IBGP向RR1和RR2通告这条路由
- RR1接收到该更新路由后,它向其他的客户机(Client2、Client3)和非客户机(RR2)反射,同时将本地Cluster_ID添加到Cluster_List前面
- RR2接收到该反射路由后,检查Cluster_List,发现自己的Cluster_ID已经包含在Cluster_List中。因此,它丢弃该更新路由,不再向自己的客户机反射
同级反射器
一个骨干网被分成多个反射集群,每个RR将其它的RR配置成非客户机,各RR之间建立全连接。每个客户机只与所在集群的RR建立IBGP连接。这样该自治系统内的所有BGP路由器都会收到反射路由信息
分级反射器
- 将较低网络层次的RR配成更高网络层次中RR的客户机
- Cluster1中部署了一个一级RR(RR-1),Cluster2和Cluster3中的RR(RR-2和RR-3)作为RR-1的客户端
1.5 BGP联盟
- BGP联盟也一样,都是为了防止环路的产生的
- 联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS