广域网出口流量调度SDN部署研究
2020-10-21李国春马睿马季春李伯中刘惠明张桂玉
李国春,马睿,马季春,李伯中,刘惠明,张桂玉
(1.国家电网有限公司信息通信分公司,北京 100761;2.中讯邮电咨询设计院有限公司,北京 100048)
1 引言
云计算、虚拟化、软件定义等技术在运营商网络逐步应用的实践表明,新型网络技术只有互相结合才能产生更多正反馈。随着数据和应用向云端迁移的节奏不断加快,混合IT或混合云的架构将成为业界主流[1]。云服务商提供IT应用服务并依据用户需求调用运营商优质网络资源,运营商按照“云服务”的要求提供可配置按需调用的网络资源,用户获得良好的使用体验,三方形成稳固的合作关系。
从2009年Martin Casado项目组创建Openflow协议[2]开始,业界掀起软件定义网络(SDN,software defined network)的浪潮。网络架构转控分离的思想已深入人心,OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。随着相关技术的不断演进,SDN超越原有Openflow协议本身,向着网络架构精简化、网元设备虚拟化、产品形态白盒化、底层传送可编程化、运维管理自动化等多方向同时演进。
运营商目前构建虚拟专网(VPN,virtual private network)基本是以多协议标签交换[4](MPLS,multi-protocol label switching)、分段路由[5](SR,segment routing)技术为基础,从某种意义上可看作一种Overlay虚拟网络形态。当前主流Overlay网络底层封装技术主要有虚拟拓展局域网[6](VXLAN,virtual extensible local area network)、MPLS/SR等。MPLS/SR在运营商网络接受程度较高,以太网虚拟专用网络(EVPN,Ethernet virtual private network)可提供L2、L3VPN服务,底层支持VXLAN、MPLS/SR封装。未来,随着SR在数据中心接受度进一步提高,运营商可统一使用EVPN/SR方案。SR能简化网络层次,实现底层数据传送可编程性,具体简化网络架构如图1所示。和MPLS网络类似,SR以标签交换为基础,通过一组有序的标签栈来标识网络路径,改变标签栈的内容即可改变业务的路径,这种灵活的可编程特性与SDN架构无缝融合。相比传统MPLS网络需依靠外部协议实现标签的动态分发、流量工程等功能,SR只对现有内部网关协议(IGP,internal gateway protocol)/边界网关协议(BGP,border gateway protocol)[7]进行扩展,转发表也更简洁。在流量调度管理方面,在分段路由流量工程[8](SR-TE,segment routing traffic engineering)中,不用维护资源预留协议(RSVP,resource reservation protocol)的复杂信令,网络状态减少很多。新一代分段路由策略[9](SR Policy,segment routing policy)架构相比传统的SR-TE占用更少的设备资源,能够提供更灵活的流量牵引方案。
图1 SR简化网络架构示意Figure 1 Simplified network architecture of SR
2 网络流量调度需求分析
高清视频、云计算的蓬勃发展带来流量持续增长,广域网出口经常发生拥塞,这部分的网络流量调度设计将直接影响终端客户的上网体验。传统网络工程师主要通过BGP策略调整解决这一问题,这种方式实现起来不够灵活。BGP设计的初衷是提供稳定的网络连通性,没有考虑网络资源状况是随时变化的。理想的路由策略除了考虑网络拓扑,还需要综合考虑带宽、时延、丢包需求、设备端口容量、性能及拥塞等因素。
通常企业用户的网络可以看作悬浮在运营商骨干互联网之上的信息岛[10],用户通过运营商宽带或移动互联网访问其资源。另外,部分大型企业自建骨干网直接提供高品质私有网络服务,削弱对传统转接通信(transit)和多方互联(public peering)流量中转模式[11]的依赖性。而采用与运营商Internet Access网络高效直通方式实现IP洪流卸载,企业网络与运营商网络的联系从点到点互联变成多点到多点、面到面的多出口互联模式。同时,企业可借助自身的优势,使用重定向、新型传输控制协议(TCP,transmission control protocol)的拥塞控制算法、超文本传输协议(HTTP,hyper text transfer protocol)的自适应码流控制技术等,配合BGP路由策略及新型SDN架构,实现理想中的应用/性能感知路由调配模式,把网间互联出口变成随需使用的资源池。
广域网出口面向主要企业用户、数据中心,与其他运营商建立了大量网间外部边界网关协议[12](EBGP,external border gateway protocol)通路。相比而言,在出口带宽调配方面是有不同侧重点的,但同时面临更多挑战,主要如下。
(1)应用感知
企业用户希望通过流量调度保证用户体验持续改善,同时提高端口利用率。一方面,可以通过调整路由策略;另一方面,利用其他技术手段,如HTTP 码流、TCP协议栈改善、次优链路非平衡复杂等实现其业务目的。运营商的解决方案更关注整网流量模型优化,保证资源均衡使用、避免出现热点区域,故障发生时能保证有足够备份容量支撑业务,采用大颗粒流量调度而不关注应用细节体验。
(2)设备松耦合、混合场景部署
广域网由于规模巨大,设备类型、出厂年代、软件版本参差不齐,对SDN的支持不一致。诸多新型网络协议栈如Openflow、MPLS/SR、SR-TE/SR Policy[13]等需对现网进行适当软硬件升级才能实现,因此在多厂家异构场景下保证方案的可实施性、兼容性、互操作性将是重点考虑之处。
(3)可靠性、扩展性要求高
广域网拥有大量网间互联出口,EBGP peer session数量巨大,路由表容量在不断增长,出口设备容量、链路带宽、时延参差不齐,很难通过单一策略寻找流量调配的最优或次优路径,大多时候错误参数调整反而使整个网络更加不稳定,因此,需要通过大量网络仿真才能制定相对理想的决策。
3 国内外相关工作
Google于2017年对外发布了两种不同的Peering Fabric设计理念[14],依此成功部署业界第一个SDN B4数据中心互通网络[15]。Google的全新Espresso Peering Fabric架构如图2所示,采用SDN技术动态调整应用出口带宽,在全局及本地控制器配合下,Espresso可比传统BGP路由传送更多的客户流量,同时显著提高每条链路利用率和端到端用户体验。
Espresso要求动态感知每用户或每应用流量状况并据此进行全局出口资源调配,在提高Peer路由器出口链路利用率的同时,尽量避免高优先级业务拥塞。特别地,引入了全局和本地控制器实现Peer路由器转控分离,不仅将传统Peer路由器控制面(CP)集中交由自研BGP Agent集中处理,同时将Peer路由器部分转发面(DP)功能、访问控制列表/转发信息库(ACL/FIB,access control list/forward information base)功能卸载到主机Host实现。主机直接引导出口流量选择最优Peer路由器及其外部链路,实现从Host到Peer出口的精细化应用流量控制。借助SDN“转控”分离的想法,Google工程师解耦传统Peer路由器,并将其演进为Peering Fabric(数据转发面)和服务器集群(控制面+反向代理/缓存功能)相结合的新型网络架构。
图2 Google Espresso Peering Fabric架构Figure 2 Architecture of Google Espresso Peering Fabric
相比而言,Facebook Edge Fabric架构[16]采用SDN Controller集中控制方式,大量使用现有成熟或可实现技术。限制流量调度在单个入网点(PoP,point of presence)实现,基于实时流量、拓扑、路由、策略等信息,无状态设计的SDN控制器每隔30 s生成针对应用流量的最优及次优出口,并通过调整BGP local preference参数来改变Prefix的下一跳,使用BGP route insertion方式指导不同流量(Prefix)在多个自治系统边界路由器(ASBR,autonomous system boundary router)之间的均衡负载。
Facebook Edge Fabric架构如图3所示,SDN控制器的多个功能组件负责采集各种网络资源信息。BMP Collector和多个Peer路由器之间建立BMP session搜集Prefix/Peer信息,Traffic Collector利用网络数据包交换技术或简单网络管理协议(SNMP,simple network management protocol)搜集接口/Prefix流量,同时SDN控制器会搜集PoP网络拓扑及策略信息。因BGP不能感知应用服务质量,Edge Server动态随机选一小部分流量做标记,并用来测量使用最优及次优BGP路径的性能,以评估主BGP路径拥塞或未达理想目标时是否可调配部分流量通过次优出口。当调度仍然发生在主用Peer路由器上,借助SDN控制器,出向拥塞的主用Peer路由器可以借助策略路由将部分流量重定向到非拥塞的Peer路由器出口上。
从图3可以看出, Facebook采用业界厂商支持的主流网络协议。最早尝试Google的Host Routing方式直接选路到Peer路由器,从Host建立到Peer路由器出口的通道,Host 负责标识DCSP值,Peer路由器根据DSCP值转发到不同端口。在技术实施方面,需考虑如合适的路由及转发软件、大量主机状态及时同步等各项问题,最终Facebook选择了相对成熟的BGP Inject@PR方案,这是现阶段比较适合Facebook的Edge Fabric架构方案,未来会考虑转向BGP 出口流量工程(EPE,egress peering engineering)和SR。
图3 Facebook Edge Fabric架构Figure 3 Architecture components of Facebook Edge Fabric
4 基于SR Policy/EPE方式的流量调度优化方案
本节提出广域网出口流量调度的SDN部署方案,首先总结了广域网出口流量调度目标;然后针对基于SR Policy/EPE方式的流量调度优化方法进行详细介绍;最后对仿真验证进行说明。
4.1 广域网出口流量调度目标
广域网之间流量调度需求非常普遍。通常采用BGP路由策略实现,难以有效利用次优线路资源实现多出口等价或非等价负载均衡、实现远端非直连自动引流(AS,auto steering)流量调度、故障情况流量切换。企业客户出于投资成本考虑,会将自己服务器托管在运营商数据中心,同时希望运营商提供相关网内(省际出口)、网间(国内三大运营商网间互联出口)甚至网际(国际互联网出口)多点均衡流量调度方案。
4.2 基于SR Policy/EPE方式的流量调度方法及仿真验证
下面介绍利用SR Policy/ EPE方式实现互联网出口流量调度优化方法。图4是一个典型广域网多出口调度场景。
网络AS100分别与其托管数据中心AS300及其他运营商AS200建立多条互联互通EBGP Peer连接通路,每个方向通路包括多台Peer路由器及出口链路。正常情况下,为保证服务质量,会预留较多带宽,所有方向链路聚合带宽足够满足网内及网间流量需求,但由于BGP路由参数配置、设备支持能力等,网络存在热点区域,峰值情况下部分EBGP链路利用率会接近100%,而有些其他区域链路利用率不到50%。因此,优化流量调度的目的为确保在拥塞情况下运营商有足够的能力分析、调配部分流量分流去次优方向或将关键流量调往专门链路。
在该场景中,网内客户(AS100)要求提供国际互联网和数据中心云访问服务。不同业务对网络的需求不同,互联网访问提供尽力而为的服务,数据中心AS300云服务访问则要求保证低时延、低丢包率、高可靠,但应用对带宽要求不高。因出口方向流量可选择去往路径较多,各流量方向会经过不同厂家设备类型,表项容量、链路带宽及使用率、软件支持能力不尽相同,仅依靠调整BGP路由参数,配置复杂,可能效果不明显。
图4 典型广域网多出口调度场景Figure 4 Multi-interface scheduling scenario of WAN
网络设计通常建议将用户策略(flow-tag/DSCP标识)及路由策略(forwarding class/color标识/简单下一跳)分离,前者负责标识应用流量,后者定义路径策略。客户入向设备实施应用分类,确定流量去往互联网出口或云服务数据中心。最简单的方法是使用Destination Prefix Set,如果认为颗粒度太细,可以使用BGP Community或AS-Path属性进行限制,部分用户会增加Source Prefix Set、应用优先级的诉求。流量调度通常只需要建立用户策略与路由策略之间的动态映射关系即可方便实现流量全向灵活调度,具体需要依据厂家及设备支持能力。
针对路径策略分类采用全新SR Policy架构解决,其封装部署模型如图5所示。从架构上来说,SR Policy遵从国际互联网工程任务组(IETF,The Internet Engineering Task Force)架构草案,由一个
color字段还提供一个Flag选项,缺省00代表完全匹配,当flag设置成01时,如果不能找到完全匹配,可以只依据color,endpoint 0.0.0.0/0任意匹配,不关注流量是IPv4还是IPv6,由此实现一种Color-only AF-agnostic Automated Steering流量调度牵引模式,如图6所示。
在图4的典型广域网多出口调度场景中,由于最初路由器硬件并不支持SR和SR Policy功能,只能实现MPLS标签转发。为达到用户流量调度要求,利用BGP EPE方式为Peer路由器出口链路分配标签标识,通过BGP多标签(BGP-LU,border gateway protocol labeled unicast)强行为Destination Prefix压入一层EPE标签,基于BGP LU下一跳地址,ingress设备自动递归解析出相应Peer路由器的MPLS路径。这种方法能够在一定程度上解决边界 Peer出口链路流量调度问题,但存在局限性,即只能基于Prefix-set细颗粒度下发流量,入口流量设备到Peer路由器只能实现尽力而为的转发,BGP LU压标签栈方式无法提供路径检测机制,易出现黑洞。通过适当软/硬件升级,使设备及网络支持SR和SR Policy功能。
图5 SR Policy封装部署模型Figure 5 Packaging and deployment model of SR policy
图6 Color-only AF-agnostic Automated Steering流量调度牵引模式Figure 6 Traffic scheduling mode of Color-only AF-agnostic Automated Steering
为仿真和验证改进后的基于SR Policy/EPE方式的流量调度优化方案的可行性,采用Mininet+OpenDayLight网络仿真平台来搭建拓扑,Mininet网络仿真工具版本为2.1.0,控制平面利用开源的OpenDayLight SDN控制器0.8.0版本,并在其上安装BMP服务功能,仿真流量调度数据流如图7所示。
在图7中,黑、黄、橙3种颜色箭头分别对应不同方案(Best Effort/ SR Policy / SR Policy +BGP EPE)下用户流量(1.1.1.1 color 99和2.2.2.2)所要经过的完整路径。黑色箭头代表系统缺省选择的最短路径方案,即根据BGP 1.1.1.1/2.2.2.2从AS 100 R1经R4到达AS 200 R8。因所有流量缺省都经由这条线路到达R8,若某一阶段R3到R5中间链路出现拥塞,则需要网络告警通知运维人工干预。
图7 仿真流量调度数据流Figure 7 Data flow of simulated traffic scheduling
黄色箭头代表只使用SR Rolicy方案对用户流量进行调度,借助控制器(XTC)北向Restconf API开放接口向网络发送SR Policy流量调整策略。本文方案采用最短时延或TE最短路径到达出口路由器R5,此时数据流流向如图8所示。和系统缺省方案不同,此时R5向域内(AS100)发布路由时,对于1.1.1.1/32标记color 99,对于2.2.2.2/32不使用color标记。当R3收到color标记为99的路由时(1.1.1.1/32),R3向R10(XTC)请求并获取SR Policy,在R3上配置针对color标记99的动态SR Policy并将其放在转发表后,实现流量的引流,按照TE最短路径或最低时延去往R5。数据流验证结果表明,从R1到1.1.1.1的流量,在R3上根据SR Policy指定的SRTE路径经过R3-R2-R7到达R5,并经过R8(AS300)达到R9(AS400)。此时,部分流量(1.1.1.1 color 99 黄色)经由R3-R4-R5调整至R3-R2-R7-R5。若不希望所有(1.1.1.1 color 99 黄色)流量都通过新的路径,则定义这条SR Policy包含两条加权路径,一条走原来的R3-R4-R5,一条走R3-R2-R7-R5,将(1.1.1.1 color 99 黄色)流量按一定比例在这两条路径非平衡负载。经处理之后,原有R3-R4-R5拥塞链路告警消失,所有AS 100访问流量(1.1.1.1/2.2.2.2)均通过到AS 300的跨域连接到达R8,R5-R8之间跨域链路相对使用率较高。
图8 基于SR Policy方式的数据流Figure 8 Data flow based on SR policy
改进后的基于SR Policy/EPE方式的流量调度优化方案对应图7中的橙色箭头指向,在AS100域内通过XTC控制器计算路径并下发SR Policy之后,在出口路由器R5上应用EPE功能引导跨域出口流量调度,从而合理选择下一跳经由R6(AS200)去往R9(AS400)。利用OpenDayLight控制器从出口路由器R5收集pre-policy and post-policy RIB路由信息,经分析发现目标网段(1.1.1.1 color 99)经由AS200也可以到达,因为是非最优路由,在传给R3的BGP update这一部分次优路由信息被丢失。为持续改善用户体验,可尝试将部分流量经由次优路径传送并评估效果,如效果不好则回撤。具体可通过修改(PUT)之前下发的SR Policy,增加下一跳AS 200 Link EBGP EPE标签将流量调整经由AS 200转发。业务低谷期间,可通过Netflow/SNMP等手段获取(1.1.1.1/2.2.2.2)Flow流量信息,如发现业务流量持续下降可通过删除SR Policy,恢复初期最短路径路由方案,将占用的R2-R7的链路资源让出来。
SR Policy提供基于流量和时延的链路优化策略,加上EPE对多路径负载均衡的支持后变为更加灵活的流量调配方式。该调度方式对图4的典型广域网多出口调度场景中托管数据中心DC流量(AS 300)调度尤为重要。DC出互联网方向可以有两条路径(绿色箭头指向):直连“AS 200”和经由“AS100,AS200”,前者从BGP路由策略的角度看为最优路径,如果此时部分流量分流绕道至相对较远的路径(即AS-Path较长),则需通过BGP放明细路由方法,但此时负载分担比例无法精细化调整,在应用基于SR Policy/EPE方式的流量调度方法后,以SR Policy策略加上出口流量的多路径加权负载均衡流量调度优化可提供次优路径的分析选择,以优化广域网的链路拥塞问题。
5 总结与展望
本节对基于SR Policy/EPE方式的流量调度优化方法的技术优势、方案创新点及后期改进方向进行总结。
5.1 方案创新点
SR Policy将运营商最擅长的BGP路由置于整个体系的核心。在运营商网络的流量调度方面有以下的创新。
(1)SR Policy以ODN的方式动态指定候选路径,此时所有边缘节点只需要配置少量相同的模板,不再需要预先手动配置任何全网状的互联隧道。与原先的RSVP预置于网络中的大量的全网状隧道相比,SR Policy ODN模式极大地简化了运营商网络,同时提升了网络的可扩展性。
图9 基于SR Policy/EPE方式的数据流Figure 9 Data flow based on SR Policy/EPE
(2)本文提出的基于SR Policy/EPE方式的流量调度方法通过BGP直接将SR Policy中的各条候选路径和路由装载到路由器的转发表上,避免了以往运营商网络实现引流的各种复杂方式,实现每条流的自动引流,进一步实现运营商对网络流量的精细化控制。
(3)SR Policy利用
5.2 工作展望
总体而言,采用SR Policy方式实施SDN部署相比传统方案具备不少后发优势。初期SR技术通常利用标签交换,与MPLS LDP/RSVP-TE有完善互操作方案,适合运营商混合组网分阶段引入。与传统SR架构相比,本文所提SR Policy/EPE方法旨在为运营商提供更为高效的流量调控方案。其中,网络数据采集、遥测、基于大数据的智能流量调度等没太多涉及,这是下一阶段需要持续创新改进的地方。
受SR设计理念影响,初期SR Policy设计没有太多考虑带宽、时延及流量优先级需求。利用BGP-LS采集拓扑并没有完整收集时延、端口速率、带宽等信息,这使当前版本仅能依赖XTC控制器计算路径方案,解决这一问题需借助网优建模规划软件及一些其他技术手段,如SR转发计数(SR forwarding counter)、链路时延检测及相关路径计算(link delay performance measurement)等。
后续改进方案会考虑引入网络流量规划设计、业务部署及中心调度方案,同时更新升级PCE控制器进行路径计算优化、扩展BGP-LS拓扑采集信息,实现与SR网络更紧密的整合。通用路径计算交由XTC控制器完成,与带宽相关的应用交由网络流量规划设计工具提供类似的服务,如带宽随需申请(service-driven BW on demand)、网络带宽模型优化(network tactical BW optimization)、带宽分时共享(bandwidth calendaring)等创新服务类型,业务调度平台负责业务下发及整个网络方案的自动化流程管理。
6 结束语
本文介绍的广域网出口流量调度优化部署方案在SDN架构基础上,将新型技术架构SR Policy和传统BGP协议相结合,在尽量保护原有设备投资及运维体系基础上成功实现了广域网出口流量操控。随着SDN相关产品技术的不断完善,流量调度方案进一步完善,可以预见,未来更多符合中国运营商以及企业广域网应用场景的新方案、新技术将不断涌现。