
#打卡不停更# calico BGP Full Mesh 跨节点通信 原创
简介
Full Mesh - 全互联模式,启用了 BGP 之后,Calico 的默认行为是在每个节点彼此对等的情况下创建完整的内部 BGP(iBGP)连接,这使 Calico 可以在任何 L2 网络(无论是公有云还是私有云)上运行,或者说(如果配了 IPIP)可以在任何不禁止 IPIP 流量的网络上作为 overlay 运行。对于 vxlan overlay,Calico 不使用 BGP。
Full-mesh 模式对于 100 个以内的工作节点或更少节点的中小规模部署非常有用,但是在较大的规模上,Full-mesh 模式效率会降低,较大规模情况下,Calico 官方建议使用 Route reflectors。
BGP 是增量更新的方式,不是全量更新。
BGP是应用层协议。
calico-bgp-full-mesh
安装部署
BGP Full Mesh
就是在 calico-ipip
的基础上修改如下参数:
其实就是关闭 IPIP 的封装,默认会使用 BGP Full Mesh
可以通过 calicoctl 查看 ippool
查看 calico BGP Full Mesh 状态
部署完以后,我们可以通过 calicoctl
node1 192.168.0.81
node2 192.168.0.82
已经建立 Full mesh,状态为 Established
查看 calico BGP AS-number
calico-bgp-as-number
默认情况下,所有 Calico 节点都使用 64512 作为自治域,除非已为节点指定了 per-node AS。
BGP 模式抓包测试
pod1 10.244.42.65
node1 192.168.0.81
pod2 10.244.103.65
node2 192.168.0.82
pod1.cap
通过网卡的对应关系,我们并没有发现 在 node 节点上的诸如 vxlan 和 ipip 的封装设备,说明是通过的 node 的路由表来进行通信的。
pod1-node.cap
查看 pod1 对应node 节点的 calico-node 的配置
查看 IBGP 路由配置
查看对应的配置文件内容
pod2.cap
pod2-node.cap
node2 节点的配置同 node1 节点的配置,所以node2 就参考 node1 即可
由于抓包时间过短,只抓到一个 node2 -> master 的 BGP 的 KEEPALIVER 报文,不过这也说明了,类似于在实际环境中一样的 BGP 模式
