图片 3

腾讯DCI上线基于集中控制的SR

腾讯DCI上线基于集中控制的SR-TE方案,腾讯dci上线sr-te

交通拥堵已经成为当今时代与每个人息息相关的问题,它直接影响了我们在现代社会的生活体验。传统的分布式交警管控方式,已无法解决急速扩张的汽车保有量与紧张的公路资源之间的矛盾,这显然也不是互联网时代解决问题的一贯思路。所以我们有了品类繁多的互联网导航系统,它可以在出发前就根据全城的实时路况为驾驶者推荐最优路线,甚至当途中突遇堵车时,可以快速调整路线。这是一个看上去很棒的方法,前提是所有的驾驶者都会听从电子导航的指挥,但看看路上的漫漫长龙,就能感受到现实的骨感。假如能有一个超级警察,可以让所有的车辆都按照规定线路行驶;并且摩托车、小汽车、大货车的通行情况可以根据当前的路况随时调整;当发生拥堵时,可以让救护车、消防车、公交车等具有畅通无阻的特殊通道,相信城市交通问题将大大缓解。那么问题来了,这个超级警察什么时候才能降临呢,5年后,10年后,也许更久。但这科幻般的场景,在腾讯的网络世界里已然来临。

2017年12月,腾讯DCI网络深圳Region成功上线了全球首个基于交换机实现的SDN集中控制的Segment
Routing Traffic
Engineering方案。
该方案经过三年多的研究探索及15个月的开发测试,基于Segment
Routing技术和SDN思想,率先实现了对10w服务器级别的IDC园区间通讯,进行全局视角的、带宽利用率和链路质量等多维度、可定义约束条件的智能调度。腾讯DCI网络向着打造软件定义的、开放的高度智能化网络的目标又迈出了重要一步。

图1 网络拓扑展示示意图

背景介绍

腾讯DCI网络自创建之初,至今已经历过数次技术演进,其中2011年的IP向MPLS技术的演进,是腾讯DCI网络发展的重要里程碑之一。随着腾讯在各领域业务的极速增长以及开放生态的需求,DCI网络需要提供多业务承载的、灵活性和扩展性更强的QoS能力;另一方面,传统的基于IP路由技术的网络,在流量调度方面的能力显得捉襟见肘。

MPLS技术在运营商网络中已有超过十年的成熟应用,基于MPLS技术实现的RSVP-TE协议,提供了完整的流量工程方案,网络设备可以基于不同的服务等级进行隧道带宽预留和路径计算。但是RSVT-TE由于协议设计和实现的复杂性,在实际应用中遇到了很多问题。比如其复杂的协议交互流程,对设备的软件实现带来了很大的挑战,并且当网络规模不断扩大,TE
Tunnel数量逐渐增多,所有隧道路径的首节点、传输节点、尾端节点都需要维护大量的LSP信息,这对于设备性能的消耗十分显著。

如今腾讯在全球已拥有百万级服务器规模,面对如此庞大的网络,以及在云上用户业务对网络性能提出的更加严苛的要求下,我们必须选择一个更加有效的流量工程方案。也正是在这样的背景下,腾讯DCI网络在刚刚过去的几周,完成了再一次的重大技术演进,基于SDN集中控制的SR-TE流量调度方案成功上线。

Tencent Defined SR TE

Segment
Routing技术自提出以来就在行业内引发了广泛的关注和讨论,作为以太网领域“继MPLS之后最具革新意义的网络协议”,现在已经具备了多个RFC
draft,同时业界主流网络设备供应商也纷纷在软硬件方面提供了全面支持。但是至少到目前为止,还没有形成一个统一的、标准的应用方案。腾讯作为全球互联网行业的领导者和先行者,结合自身网络场景特点和需求,借助SR和SDN技术自主设计了完整的SR
TE集中控制流量调度方案。
该方案无需网络设备供应商对现有IGP协议进行拓展开发,SR相关控制层面完全由控制器实现,为方案的快速落地和稳定运行奠定了基础。之所以选择了SR技术,除了其在设计理念上利用了源路由技术天然避免了LSP对传输节点和尾节点的压力,更是看重了其与SDN思想完美结合的能力。传统的分布式流量工程方案只能基于单一节点进行流量调度,引入了SDN控制器,就可以实现基于全局信息对Tunnel进行路径计算,从而达到提高整网利用率的效果;同时,将路径计算的控制层转移到控制器,为用户自定义、可编程的实现流量调度提供了极大的便利。

图2 方案部署流程示意图

为了提高方案的可靠性,我们设计部署了TE的Hot-Standby保护、多场景的BFD保护等方案,同时结合控制器和智能网管系统开发实现了一键隔离、一键逃生等功能,确保在链路故障、网络节点故障、控制器故障等场景下业务流量可以进行优雅切换。

开放定制的控制系统

作为一个SDN集中控制方案,在设计时对转发层面进行尽量简化的同时,势必将更多的控制层功能上移到了控制器,在逻辑上增加了控制器的实现复杂度,这也是SDN控制器最有价值的部分。考虑到腾讯复杂、多厂商设备共存的网络场景,我们选择了具有丰富南向协议、平行可扩展的开源控制器平台Opendaylight作为我们底层的核心控制器平台,并结合SR-TE流量调度方案进行了定制化的开发与增强。

图3 SDN控制器架构示意图

图3为我们控制器的一个整体架构。在南向,我们使用当前成熟的BGP-LS协议动态收集网络拓扑与TE属性,并结合腾讯智能网管平台所提供的多维度网络参数(i.e流量,延时,丢包率等),使用定制化的路径计算算法进行TE
LSP路径的动态实时调整,以实现“上帝视角”的网络资源最优分配。在网络故障或拥塞场景下,算法可根据隧道优先级进行智能优化,优先将低优先级隧道绕行,解决网络拥塞问题,同时保障网络SLA。在腾讯复杂的网络场景下,存在着多厂商转发设备共存的环境。在控制器南向方面,我们使用成熟的NETCONF协议。同时,我们致力于推动基于OpenConfig
YANG的配置标准化。通过统一模型,屏蔽多厂商设备差异,实现转发设备的统一管理和配置。未来,我们会继续探索更加高效的南向通道(如:BGP
SR-TE
Policy等),以实现控制器更加快速敏捷的调整网络路径。在可靠性方面,我们增强优化了开源ODL平台的集群机制,解决了网络延时场景下数据同步效率问题,实现了控制系统的跨区域部署容灾,提供了最可靠的DCI网络控制系统。网络的开放性一直是我们在SDN探索道路上的目标之一。在SR-TE流量调度系统中,我们将智能网络路径计算能力通过控制器北向接口开放给腾讯丰富的业务场景,实现业务定制化的网络算路请求。如:流量负载均衡、延时最短、丢包率最低等。

简化的数据平面

完善的SDN控制器设计和实现,大大降低了对转发设备的复杂度要求,让整个方案在基于ASIC芯片的交换机上实现成为可能。无论交换机厂商采用商用套片还是自研芯片,只需要在现有逻辑下增加对Segment
Routing相关表项和标签栈封装的支持即可,无需对现有Pipeline进行改变;另外通过对现有ACL能力的运用,可以完整的实现CBTS(Class-Based
Tunnel
Selection)功能。这意味着我们不需要再通过购买昂贵的基于NP芯片的路由器来实现复杂的流量工程,每100G网络建设成本下降为之前的1/10甚至更低。随着ASIC芯片厂商对于用户最前沿技术需求的不断追逐,以及芯片设计上逐渐提升的可编程能力,我们看到尤其在OTT基础网络场景中,交换机和路由器在能力上的界限已逐渐模糊,相信未来成本相对较低的基于ASIC芯片的核心交换机会成为DCI网络的主流。

收益与展望

全新的流量调度方案帮助腾讯提升网络平均带宽利用率15%以上,在每年超过100T的数据中心互联带宽建设背景下大大降低了网络建设成本,并且对多点故障等极端场景下引发的流量拥塞可实现秒级自动检测和调度。未来随着骨干网IPv6技术的推进,基于Segment
Routing技术的流量调度方案也将会随之进行更具有创造性的演进,诸君敬请期待。

本文转自“鹅厂网事”公众号

目前网络中的局限:
  • RSVP-TE多用于广域网流量工程,通过逐条建立路径,每个节点都需要维护大量的状态信息,会受限于规模,不支持大规模部署;同时RSVP-TE不支持等价路径分担,使网络利用率不高。

  • 网络中应用和网络离的很远,即网络中数据传送常常是不区分服务的(待深入理解)

SR可以有效解决上面两个问题,一是通过segment
list确定路径信息,中间节点完全不需要维持路径状态信息,只负责转发,适合大规模部署;二是SR是实在的应用驱动网络,应用提出需求,如带宽、时延等,控制器基于全局拓扑,如链路状态、连路利用率信息计算路径,并映射到segment
list所定义的路径上。

SR 体系结构

整个体系上,SR采用了类似于SDN架构:数据平面和控制平面相分离。数据平面定义了
如何将segment应用于数据包上,即节点如何根据segment处理一个数据包。控制平面定义了segment
标识如何在节点之间通告,一般通过内部网关协议(IGP)的链路状态信息,这就要求对现有网络路由协议(IS-IS、OSPF)进行适当修改,已经有相应的文献进行了研究。同时控制平面也处理SR路径的计算。
SR实现了源路由和隧道模式

Segment知识点:
  • Segment
    :任意类型指令的一种标识。不能局限于MPLS所说的标签,要看所承载的网络和功能,若运行于MPLS网络,segment语义上为标签;若运行于IPv6网络,语义上为IPv6地址。

  • Segment分为全局和本地,对全局segment,全局可见,全局有效,而本地segment全局可见,本地有效。
  • 另外一个概念:SRGB,预留出来的全局标签范围,默认为16000-23999,全局segment在SRGB中取值。通告全局segment,先通告SRGB,再加一个索引,如通告SRGB范围为
    16000-23999,索引为1,则生成的全局segment为16001。注意一个区域内必须保证节点通告的SRGB一致。
SR基本工作原理:

内部网关协议中使用 prefix-SID 的几种用法

1. 全局SID使用

图片 1

全局SID示例

上图为SR转发示意图,假设A点要发送数据包到Z点,会经过以下几个过程,首先,底层网络节点交换node
SID(segment
ID),控制器或者决策中心根据应用需求(带宽、时延等)结合生成一个segment
list,压入数据包。上图中,到Z的数据包压入了三个SID,首先第一个SID 16072
为active状态,说明数据先转发到SID
为16072的节点C,路由生成依赖于原有的IP路由,可以负载均衡(ECMP)。到C后发现第一个SID为自己,则弹出,置下一个SID
29003为active状态,以此类推,最终到达节点Z。
一个支持SR的节点(交换机或路由器等)必须支持以下三种操作:

  • CONTINUE:基于active SID 的转发行为
  • PUSH:添加一个segment ID 到数据包头部,并将该SID置为active 状态。
  • NEXT:将下一个SID置为active 状态。
2. 局部SID与全局SID的结合

图片 2

结合示例

上图中24045为局部SID,在本区域内有效,每个节点维持了与邻接节点之间的
邻接SID,通常用于 节点之间有多条路径时,指定路径。例如节点 4
到节点5有两条链路,则每条链路指定一个局部SID。

3. 实现负载均衡

图片 3

负载均衡

上图中 PE1和PE2拥有自己的全局SID外,还向外通告了一个共同的SID
16100,则节点A到16100可以进行多路负载均衡的同时还能相互形成冗余,提高网络的抗毁性。

SR应用

可以广泛应用于流量工程、网络冗余配置等等。

总结:

基于Openflow协议的SDN架构对现有网络改动太大,如需要交换机支持openflow协议,同时上层架构如路由协议也要进行改动以支持控制器集中控制。虽然不同于openflow在整个SDN架构中为南向接口协议这一地位,SR则提供了一种更有效的演变方式,甚至可以完成在现有网络架构中支持转发与控制平面分离而不需要openflow协议参与,具有很强大的灵活性。

参考资料:
1、Filsfils C, Nainar N K, Pignataro C, et al. The segment routing
architecture[C]//Global Communications Conference (GLOBECOM), 2015
IEEE. IEEE, 2015: 1-6.
2、http://www.jianshu.com/p/03653ef39d0d