引入
如下图在很多时候,BGP建立对等体的时候,要去建立大量的EBGP和IBGP对等体,IBGP还要全连接,这就给我们带来了大量重复的工作,路由表就会变得很庞大,区域内和区域之间就会很难管理,以下这些配置就可以解决这些问题
再补充一点:路由黑洞和黑洞路由的区别
黑洞路由:是一种路由,他一般设置在网络边界,吸收路由聚合之后那些不存在的路由条目
路由黑洞:一种现象,BGP可以跨网段跨设备建立邻居
如下图,假设1、2、4、5运行了BGP,3没有运行BGP
在转发路由的时候,5的路由会发给EBGP,2会发给IBGP4,后4再发给他的EBGP邻居
1,这样3就有了去往5的路由,转发的时候下一跳就是4,但是1在发给5的数据报文时候
3没有运行BGP,在查看数据包的时候,发现目的地址是5,但是他路由表没有地址为5的
路由,所以就会丢弃,就形成了路由黑洞
解决方案:路由引入,IBGP全连接,静态路由(先不说这篇学习的内容)
解决方法
1.BGP对等体多
--建立对等体组
--BGP团体
2.BGP路由庞大
--BGP路由聚合
3.IBGP全连接
--BGP路由反射
--BGP联盟
4.路由变化频繁
--BGP路由衰减
工作流程
1.BGP对等体组
BGP对等体组(Peer Group)是一些具有某些相同属性的对等体的集合;
通过对等体组可以简化配置;
设置的对等体组只对本路由器有效;
根据对等体所在的AS,对等体组可分为IBGP对等体组和EBGP对等体组;
对等体组在一定程度上面简化了BGP的配置
2.BGP团体
团体属性是一组有相同特征的目的地址的集合,没有物理上的边界,与其所在的AS无关;
包含有团体属性的路由,表示该路由是一个路由团体中的一员,该路由团体具有某种或者多种相同特征;
一条路由可以具有一个以上的团体属性值
公认团体属性 | 属性含义 |
internet | 可以传给EBGP和IBGP邻居 |
no_export | 不发给本地AS之外;有联盟不发联盟外,发给联盟的子AS |
no_advertise | 不通告给任何其他的邻居 |
no_export_subconfed | 不发给本地AS,也不发给联盟子AS |
3.路由聚合
自动聚合:
配置自动聚合后,BGP发言者将不再发布子网路由,而是发布自然网段的路由;
自动聚合只能对引入的IGP子网路由进行聚合,不能对从BGP邻居学习来的路由
和通过network命令发布的路由进行聚合;
手动聚合:
手动聚合允许管理者采取灵活的路由聚合和发布策略;
手动聚合可以对已经存在于BGP路由表中的从BGP邻居学习来的
具体路由、引入的IGP具体路由、通过Network命令生成的具体路由进行聚合;
4.路由反射
相当于对IBGP全连接的一种简化
路由反射器、客户端、非客户端;
1、反射器从客户端收到的路由,可以反射给其他的客户端和非客户端;
2、反射器从非客户端收到的路由,只能反射给客户端;
3、从非客户端收到的路由不能发射其他非客户端----基于IBGP邻居的水平分割
4、从EBGP对等体收到的路由更新,反射给全客户端和非客户端
在一个集群中可以配置一个以上的路由反射器,以增加网络的可靠性和防止单点故障;
一个集群中的每个路由反射器都要配置相同的集群ID(Cluster_ID),以避免路由环路的产生;
BGP是一种距离矢量协议,就会出现环路
1、基于IBGP邻居的水平分割;
2、AS-path 防环:拒绝接收AS-path中含有自己本AS号的路由信息;
3、cluster-list防环:拒绝接收cluster-list中含有自己本簇ID的路由信息;(cluster id是由RR添加的自己的router-id)
4、orginator-id:在路由反射器中,每一条路由经过RR时,会由路由反射器给该路由添加一个起源者ID
防环:拒绝接收originor-id为自己router-id的这些路由信息
3、4属性值是只有在有路由反射器才会有
配置的时候只要再反射器配置客户端就行,不需要在客户端指定反射器
反射器组网部署:多个反射器相连的时候
1.多个反射器全互连
2.把一个反射器设置为另外反射器的客户端
4.BGP联盟
这个在实际项目也会用到,但已经非常少了
一般应用在内部路由器数目很多的场景
联盟(Confederation)是处理自治系统内部的IBGP网络连接激增的另一种方法;
联盟将一个自治系统划分为若干个子自治系统,每个子自治系统内部
的IBGP对等体建立全连接关系,子自治系统之间建立联盟内部EBGP
连接关系;
子自治系统之间要求有一个EBGP邻居,子自治系统内部要求全连接
5.BGP衰减(不要求掌握)
6.部署多出口BGP网络