海量规模下DCI网络的设计与实现

2021-08-04 10:10:14 浏览数 (1)

前言

        随着云计算业务的蓬勃发展,全球资源的持续布局,对基础网络带来了极大的挑战。腾讯DCI超过千级节点中有数百台核心设备,庞大的骨干域带来的软硬件资源压力,网络质量无法很好的保障,多厂商互通、分布式协议严重影响了运营效率。

        在这个背景下,我们结合腾讯“海量之道”的设计理念,在2018年上线了基于SDN集中控制和SR-TE技术实现的新一代DCI网络——B2,网络系统由自研SDN控制器和商用交换机搭建而成。随着不断的运营优化和资源布局,B2网络今天已经具备了集中控制、多平面、自动化运营、代码化架构设计等特点,实现了弹性扩展、高可用、自动化变更等能力,当前B2网络已承载了腾讯绝大部分骨干网流量。本文将重点阐述B2网络的设计理念、关键实现以及后续演进方向。

01

外练身法,网络简化

在做网络系统架构设计时并不是一味地将网络复杂化,而是让网络保持足够的简洁,具备海量规模的平滑扩展能力,保证系统最优,大道至简。

1.1 转控分离,协议简化

控制面。融软件集中控制之所擅,我们选用了SDN集中控制模式,将复杂的控制面交由自主研发的SDN控制器来完成,并根据实时网络状态和业务需求,实现流量智能调度。

转发面。汇设备高速转发之所长,网络设备只需最简单、稳定、成熟的基础特性,在提升网络能力的同时,最大限度降低网络设备的实现复杂性,网络协议做减法,去掉了相对复杂的L3VPN/LDP/RSVP-TE等协议,让设备做自己更擅长的事情(高速转发)。也基于此,该方案通过基于ASIC芯片的通用交换机来实现,通过横向可扩展的方式替换掉价格昂贵的大型路由器,DCI网络设备每100G端口建设成本得到大幅度的下降。

1.2 网络分域,多平面设计

B2采用了网络分域设计,每一个网络域都是独立的自治域,采用相同的设计理念和技术架构,减少了单域的设备数量,极大降低了设备资源表项(LSP FEC ECMP)压力。

同时遵循大系统小做原则,完成网络多平面、SET化的设计和部署,不同平面之间没有任何的协议与状态信息同步,每个平面采用不同的技术方案,相互独立性很强,保证网络高可用之外同时支持平滑扩展和快速迭代。

02

内修心性,融会贯通

身法的修炼赋予了网络强健的体魄,但网络的快速发展同样离不开心性的陶冶。随着自研SDN控制器的持续迭代升级、架构设计代码化的全面铺开,B2网络也逐步走向成熟。

 2.1 SDN 集中控制

最初,我们的选择跟大多数厂商一样,把ODL做为SDN控制器的首选。随着网络规模的扩大、业务流量的“暴涨”,ODL过于“笨重”、主备模型、数据强一致性等缺点愈发凸显。

随着docker容器化技术、微服务架构的快速发展,我们的SDN控制器也不断地向前迭代和持续演进,去年,我们重新定义了B2网络,并称之为“SDN ”。

腾讯SDN 的设计精髓包括以下几点:

  • 微服务化。通过腾讯自研tRPC框架解耦控制器内部服务,每个服务模块均支持docker容器化发布和部署,从架构上保证了软件的可扩展性和迭代效率;
  • 统一资源信息管理和丰富的北向API。网络资源信息均保存到腾讯云数据库,控制器通过tRPC跟管理平台、运营平台和变更平台进行交互。丰富的北向API给网络的日常运维和故障复盘分析带来了极大的便利;
  • 南向标准协议。考虑到DCI网络仍在大量使用商用框式交换机,控制器采用RFC规定的标准协议跟设备进行交互,减少了异构厂商带来的管控复杂度;
  • 软件的高可用性。各服务模块均支持双活,软件的升级维护业务完全不感知。

 2.2 架构设计代码化

网络设计及网络运营中,配置完全一致化管理十分困难,网络规模越大,配置更容易出现差错,犹如黑盒。在配置设计时,结合应用场景使用业界统一的Yang Model加上自研的Tencent Yang构建了抽象的配置模型,使用模块化、抽象化的逻辑屏蔽底层厂商的差异,通过将配置代码化,实现线上的配置管理;对于动态的参数,创造性的使用了嵌入式的Python代码实现函数规则,实时地生成每台设备的规划实例,实现设计代码化、配置线上模型化。

03

内外兼修,打造弹性智能骨干网

通过内外兼修的方式,B2具备了弹性扩展、高可用、自动化等特点,把腾讯基础网络带入了一个全新的高度。

 3.1 弹性灵活,支持大规模扩展

网络简化,灵活扩展

结合网络分域的设计原则,B2采用了骨干和城域的分域模式,实现了网络简化,每个域采用相同的技术方案可实现架构快速复制。每个网络域通过多平面、SET化的理念完成设计和部署,同时结合现网的运营经验,可以带来显而易见的好处:

  • 更小的故障域。将业务分布到越多的网络平面上,单一平面或设备发生故障,对于业务的影响范围越小。即网络故障域的大小跟平面数成反比;
  • 更灵活的拓展。将网络划分为不同的平面,平面间物理隔离,各个平面的建设扩容相互独立,解决工程上牵一发动全身的难题,同时支持scale out方式进行平面扩展;
  • 更稳定的质量。不同平面在网络技术、硬件选型、工程部署上可以采用不同的方案,不会因为单一特性、硬件等方面的问题引起系统性风险,整网具备更高的可靠性;
  • 更可靠的演进。随着业务多样性的发展,网络需要进行必要的更新和演进,在一个复杂的大规模网络中,变化往往带来的是运营的灾难。多平面的网络本身具备独立的冗余能力,可以将某一个平面在一段时间内进行隔离,从而零风险的进行版本更新或架构演进。

标准互联,精细调度

这里可能会有几个疑问,多域之间如何互联,流量如何调度,拥塞问题如何解决?不同域之间我们采用了平面级full mesh、设备级partial mesh的互联方式,既保证了架构规范的标准和对称性,又做到了以灵活平滑的大规模scale out扩展。流量调度方面,控制器基于流量分析平台的数据输入,可实现域间的流量精细化调度以及平面间的流量非等价负载分担,满足不同类型业务需求的同时,有效提升全网的链路利用率。

3.2 智能化,保证网络高可用

集中调度

基于腾讯自主研发的CSPF算法,以集中控制的模式进行全网流量调度,已经做到实时的流量调度以及分钟级的流量拥塞控制,比过去完全依赖设备TE的效率提升5倍以上,骨干网链路的带宽利用率提升25%以上。

差异化服务

根据业务对网络质量的不同诉求,控制器定义不同的SLA等级,并在设备上创建与之对应的隧道;转发流量时联动各业务的服务标识,轻松将业务报文“装”到不同等级的隧道里,进而实现业务流量的差异化服务。在网络出现拥塞时,可保证核心业务优先转发,做到核心业务不绕路,低优先业务不丢包。

柔性可用

网络故障具有一定的突发性和不确定性,尤其现网承载流量的设备或链路出现突发性故障时,结果很可能是灾难级的;为最大化保证业务的高可用,B2网络提供了几个关键能力:

  • 控制系统的冗余性:控制器跨可用区多活且SET化部署,做到网络控制平面的高可靠;
  • 转发路径的冗余性:控制器预先为隧道计算和下发备份路径,当主路径出现故障时流量可在百毫秒自动切换至备路径继续转发,整个过程业务不感知;
  • 逃生通道:具备平面级和设备级的TE隧道一键逃生能力,当网络出现大量TE隧道故障或系统级故障时,能够在秒级让业务回到IP转发。

 3.3  自动化,告别人工变更

配置线上化,配置自动审计

底层配置通过转译层实现了CLI命令的原子化,而上层的配置设计实现了标准化、模型化、代码化,两者一拍即合。通过代码化的配置模型,加上转译层的鲁班模版,实时生成运营变更所需的动态变化配置,保证设备上的配置由配置模型直接生成;同时直接通过设备上的反译,将现网配置转义成代码化实例并在软件层实现配置的审计对账,双重保障确保了每一行配置与规划定义的一致,实现配置自动审计,解决了大规模网络中配置一致化的难题。

变更离线化 自动化,实现安全高效操作

控制器通过精准控制路由的撤销并逐步将业务流量“排干”的方式实现优雅隔离,确保业务对网络变更零感知;同时精准控制路由的灰度发布过程,逐步把业务流量“引回来”,大大减小了变更异常可能带来的影响。

在SDN 精细化控制能力、多平面的基础上,网络变更平台将多个系统平台串联起来,实现了从优雅隔离、灰度启用、业务恢复、状态检查、自动回滚等全流程自动化变更,可以做到一个变更窗口内安全的完成平面内所有设备升级,全网升级周期由原来的年记缩短至周记,架构迭代效率大幅提升。

故障自愈,实现极简运维

立体监控。基于管理面的fullmesh监控,通过控制器实现软件定义探测流、编排探测路由的方式覆盖到每一个网络平面、每一台设备甚至每一条链路,实现了端到端全方位的立体监控,当网络出现丢包或时延变大等异常时,立体监控会立刻感知并上报告警,实现秒级的故障发现与精准的故障定位;

故障自愈。控制器根据告警上报自动定位故障点,触发故障自愈操作,自动且优雅地隔离掉某个平面、某台设备或某条链路,实现故障自愈。为确保隔离动作安全有效,控制器通过自定义的逻辑判断,如判断剩余带宽容量、路由一致性、多点故障等,保证隔离不会带来其他影响或恶化。待立体监控判断故障彻底解除后,可自动解除隔离,恢复流量。

结语

        B2网络通过弹性灵活的扩展能力满足海量的业务需求,并构建了完善的自动化运营能力,但是在不断的迭代优化过程中,我们意识到商用交换机系统逐渐成了“阻碍”B2网络快速演进的瓶颈。

        过去几年腾讯在骨干网领域通过深度自研和架构的不断迭代,已经实现了网络控制面和管理面的全面自研。后续将逐步把自研交换机在骨干网上进行试点,构建管理面、控制面、转发面的端到端全系统自研。

欢迎关注公众帐号“鹅厂网事”,我们给你提供最新的行业动态信息、腾讯网络最接地气的干货分享。

注1:凡注明来自“鹅厂网事”的文字和图片等作品,版权均属于“深圳市腾讯计算机系统有限公司”所有,未经官方授权,不得使用,如有违反,一经查实,将保留追究权利;

注2:本文图片部分来自互联网,如涉及相关版权问题,请联系sandyshuang@tencent.com;

/

/

鹅厂网事/

分享鹅厂网络的那些事

0 人点赞