
#打卡不停更# calico BGP RR 跨节点通信 原创
calico BGP RR Model
BGP Full Mesh 缺陷
•由于IBGP水平分割的存在,为了保证所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联,这就导致AS内部需要维护大量的BGP连接,从而影响网络性能,路由反射器(Route Reflector,RR)可以“放宽”水平分割原则,解决该问题。
•为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大。在IBGP对等体间使用路由反射器可以解决以上问题。
BGP RR
RR在接收BGP路由时
1.如果该路由学习自非Client IBGP对等体,则反射给自己所有的Client;
2.如果路由学习自Client,则反射给所有非Client IBGP对等体和除了该Client之外的所有Client(华为设备可通过命令关闭RR在Client之间的路由反射行为);
3.如果路由学习自EBGP对等体,则发送给所有Client和非Client IBGP对等体。
eNSP 模拟 BGP RR 模式
在 Full Mesh 的基础上, AR1 和 AR2 建立 Peer,
AR2 和 AR3 建立 Peer,AR1 和 AR3 不建立 Peer 对等体,而是在 AR2 上将 AR1 和 AR3 配置为 RR-client
除此以外,其他的和 Full Mesh 配置全部一致。
具体细节配置如下所示:
calico BGP RR
安装部署
1.关闭 BGP Full Mesh
确定当前部署环境为 BGP Full Mesh
查看本地是否具有 bgpconfiguration
,如果已存在,则导出 yaml 后,配置nodeToNodeMeshEnabled
为 false。
如果没有的话,需要创建一个默认的bgpconfiguration
,注意,需要将nodeToNodeMeshEnabled
设置为 false ,关闭 BGP Full Mesh。
BGP-Configuration
2. 指定 RR 路由反射器
我们指定 node1.whale.com
为 RR 路由反射器
使用 calicoctl
命令进行改动
添加到如图所示指定位置内容,指定 node1 节点为 RR 反射器,以此类推,集群节点多的时候,分别指定 1,3,5 等奇数节点的 RR 数量。
修改完毕以后,calicoctl 执行 apply 即可
3.配置 RR-client
配置 RR-client 连接到 RR 路由反射器
peer–RR
配置 RR – RR 之间进行连接
RR–RR
查看bgppeer
查看 BGP 状态
通过 RR 节点的配置,来进行二次确认
我们找到 calico-node 在 node1 节点的配置文件,查看是否含有 BGP RR 的配置,从而确认集群是否成为 RR 的模式。
至此,我们的 BGP RR 模式已经可以正常创建,而关于 跨节点通信,则和 BGP Full Mesh 类似,我们本章节就暂不演示,有需要可以去 BGP Full Mesh 章节仔细查看即可。
