容器网络实现中,相比于Overlay网络模型,Underlay网络具有更高的数据面转发性能。TCS(Tencent CloudNative Stack)在多集群的生产实践中,伴随着集群规模的增大,愈发需要能够支撑底层网络可以横向扩展的高性能网络方案。基于BGP实现的纯三层网络方案,打通Node与Pod以及Pod与Pod之间的网络通信,兼具高性能和强扩展属性助力TCS夯实底座。
01 性能测试
下图对比overlay常用到的两种隧道方案做性能对比,可以看出Underlay在网络发送吞吐上基本没有性能损耗。
02 架构概览
在不改变IDC机房内部网络拓扑的情况下,接入层交换机和核心层交换机建立BGP连接,借助于机房内部已有的路由策略实现,针对Node所处的物理位置分配Pod CIDR,并在每个节点上将Pod CIDR通过BGP协议宣告给接入层交换机,实现全网通信的能力。下图基于Leaf-Spine架构做详细说明。
- 每个接入层交换机与其管理的Node二层联通,共同构成一个AS。每个节点上跑BGP服务,用于宣告本节点路由信息。
- 核心层交换机和接入层交换机之间的每个路由器单独占用一个AS,物理直连,跑BGP协议。核心层交换机可以感知到全网的路由信息,接入层交换机可以感知与自己直连的Node上的路由信息。
- 每个Node上只有一条默认路由,直接指向TOR。同一个接入层交换机下的Node通信下一跳指向对端。
03 具体实现
邻居发现
在BGP实现的集群网络中,经常存在节点新增和删除的情形,如果采用静态配置对等体的方式,需要频繁的操作交换机进行对等体增删的操作,维护工作量很大,不利于集群的横向扩展。为了降低工具人属性,基于交换机动态邻居发现功能或者软件层面实现的路由反射器无需额外配置即可被动发现BGP邻居。具体有下面两种实现方式:
- 通过接入层交换机实现动态邻居发现:接入层交换机充当边界路由器,并开启Dynamic Neighbors功能,H3C,Cisco以及华为的路由器具体开启DN配置请参考官方文档。Node上的BGP服务主动与接入层交换机建立iBGP连接,并宣告本地路由,接入层交换机将学习到的路由宣告给整个数据机房内部。
- 通过RR实现动态邻居发现:物理交换机或者Node节点充当反射路由器RR,反射路由器与接入层交换机建立iBGP连接,Node节点上的BGP服务与反射路由器建立连接。Node上的BGP服务将本地路由宣告给RR,RR反射到接入层交换机,接入层交换机接着宣告给整个数据机房内部。
下一跳
跨TOR的节点之间通信下一跳指向TOR,同一个TOR下的节点之间通信下一跳指向对端节点。下图展示了同一个TOR下以及跨TOR下节点的路由学习情况,可以直观的根据路由表判定下一跳地址。10.2.0.2节点与10.2.0.3节点处在同一个TOR下,具备二层连通,报文经过封装后不经过TOR直接被送到对端。10.2.0.2节点与10.3.0.3节点处在不同的TOR下,报文需要经过接入层交换机TOR和核心交换机Spine路由后才能到达对端。
IP地址拓扑感知
Underlay场景下IP地址分配与机房强关联,接入层交换机及核心层交换机往往会针对预分配的IP地址进行策略控制,TCS集群实现IP地址拓扑感知能力,根据节点所处的物理位置分配可路由的IP地址段。因为可路由的IP地址比较稀缺,TCS可根据节点上Pod规模动态扩缩容IP地址段,以实现对IP地址的高效利用。
自定义IPPool资源对象,ippool-controller启动后通过watch IPPool资源对象获取可用的IP地址池,同时需要监听Node事件,当Node上IP地址短缺时,ippool-controller根据Node所处的物理拓扑以及期望的IP地址个数扩容Pod CIDR更新到Node实例中,Node上的IPAM根据具体分配的Pod CIDR申请释放IP。
BMP监控
基于BMP(BGP Monitoring Protocol[rfc7854],BGP监控协议)开发BMP Server,用于对BGP会话的运行状态进行实时监控,包括对等体关系的建立与关闭、路由信息等。利用收集到的BMP Message直接定位故障。
Graceful Restart
BGP是基于TCP实现的路由协议,TCP连接异常断开后,开启Graceful Restart功能的交换机不会删除RIB和FIB,仍然按照原有的转发表项转发报文,并启动RIB路由老化定时器。BGP Peer需要两端同时开启Graceful Restart功能才能生效,Graceful Restart可以有效防止BGP链路震荡,提升底层网络的可用性。
结语
相较于OSPF、RIP这些内部网关协议,BGP着眼于控制路由的传播以及选择最佳路径。BGP最大的优势在于具有较强的可扩展性,能够满足大规模集群横向扩展的需求,同时BGP足够简单稳定,是云原生网络方案实现中必不可少的一环。TCS团队践行云原生理念,利用BGP协议打造稳定可靠的底层Underlay网络环境,为TCE客户提供更高的数据面转发性能。
-END-