SDN网络可扩展性问题的研究
2016-02-23邓志华吕光宏
邓志华,吕光宏
(四川大学 计算机学院,四川 成都 610065)
SDN网络可扩展性问题的研究
邓志华,吕光宏
(四川大学 计算机学院,四川 成都 610065)
软定义网络(SDN)将控制平面从数据平面中解耦合,通过使用一个统一的控制平面来管理网络事件,并通过全局网络视图来同步网络状态,以此提供一个更加灵活和易于管理的网络;然而,由于数据平面和控制平面的分离增加了对OpenFlow事件处理额外的计算和网络资源消耗,随着网络流量的增加,不可避免地会使控制器和交换机以及控制器与控制器之间通信量的增大,因此单一的控制器或者设计不合理的多控制器网络拓扑都有可能使SDN网络出现可扩展性问题。为了解决SDN网络的可扩展性问题,文中从引起网络拥塞的原因以及网络转发器件性能两大方面进行分析,分别针对SDN的可扩展性问题从减轻网络负载和设计更加合理的网络器件两个角度出发,分析并综述了近两年在该领域的研究与贡献。
软定义网络;可扩展性;网络负载;网络器件
0 引 言
SDN控制与转发分离使得控制器抽身于复杂转发事务,而去专心处理上层的应用决策;交由数据平面的交换机根据控制器下发的转发规则进行数据转发。这种控制与转发分离的网络架构与传统的网络架构相比,能够很好地降低网络的复杂性,提升网络的可扩展性以及可管理性。然而,与传统网络的发展一样,SDN网络的发展同样面临着网络规模不断变大、网络流量不断攀升的挑战。因此,如何在保证甚至提升网络服务质量的前提下对不断扩充的网络实现动态管理显得尤为重要。在同一网络中各方面的性能往往不能共存[1]。譬如要实现网络的实时性,就有可能意味着要以网络的容错性和一致性等为代价;而要实现控制平面的一致性可能相应会增加网络流量的冗余度以及影响消息传递的实时性。因此,在提高SDN网络的可扩展性时需要根据实际需求对网络进行优化和改进。
在早期的单控制器网络中,网络规模受到中央控制器硬件性能及网络事件处理能力的限制导致网络的可扩展性极差,因此出现了各种多控制器的扩展方案[2]。在多控制器的SDN网络中,多个控制器之间通过交互自身的网络状态来维护一张全局网络视图,控制器依据该网络视图生成对应的流转发规则。然而,当网络事件过于频繁时,SDN网络的可扩展性、灵活性及容错性等就可能面临相应的挑战[3]。
1 减轻SDN网络负载
1.1 规则处理
为了有效减少控制器和交换机之间的流量,最直接的方式就是尽可能地减少规则请求的事件通信流量(在多控制器的SDN网络中主要体现在减少交换机和控制器之间的事件通信量[4])。
1.1.1 匹配规则缓存
规则缓存在多控制器可扩展方案中体现的是本地化策略。系统启动时,一般要对网络中的组件进行初始化操作,其中就包括了对交换机流表进行初始化。该过程包括了对交换机的一些参数设置以及将转发规则部署到相应的交换机流表中。缓存规则可以大大减少对控制器的请求和流表的设置时间,然而交换机的流表空间十分有限,为了解决这个问题,引入了通配符规则缓存机制。相比全匹配规则,通配符规则可以提升流表规则的可重用性并且减少交换机对控制器的流表设置请求,增强系统的可扩展性[5]。像DevoFlow[6]使用了通配符规则来处理小尺寸流,SwitchReduce[7]使用通配符来压缩具有相同行为的规则以及DomainFlow[8]使用通配符匹配规则用来抽取匹配好的规则。在规则缓存机制中,与传统的匹配模式相比,通配符规则匹配能更好地减少交换机与控制器的交互以及规则所占用的流表空间,从而增强网络的可扩展性。但通配符规则匹配存在规则域的重叠,可能会导致错误的匹配问题(见图1)。
图1 规则依赖问题
基于该问题,Yan Bo等提出的CAB[9](一种通配符规则匹配)通过引入桶的概念将规则的域空间划分到桶中,然后存储关联后的桶和规则,解决了区域重叠可能导致规则匹配出错的问题。
1.1.2 规则依赖
缓存规则是为了减少交换机与控制器之间的流量通信。然而,交换机的缓存空间有限,不可能预先部署所有的规则到每个交换机,并且静态部署的规则不能适应动态变化的网络状态,因此需要控制器根据上层决策制定并部署相应的转发规则[10]。研究结果显示,缺乏对规则依赖的处理是产生冗余规则的一个很重要的原因。在现存的SDN策略编译器中,并没有处理好策略更新所导致的大量冗余规则更新的问题,而许多策略的更新只是修改一下优先级。基于该问题,文献[11]提出了一种建立编译与规则之间的依赖的可扩展策略编译器和一个用来获取离散分布优先数的在线优化算法,基本上解决了因为策略优先级更新而带来的冗余规则更新的问题。另一方面,一个网络状态的更新往往由一系列相互独立的子更新组成。因此,这些子更新可以在不考虑安装顺序的情况下平行安装。像ESPRES[12]正是利用这一特性,提出了一种通过规则重排和流量控制的方式来充分地利用交换机有限资源。相比普通的规则处理,它能够加快规则的更新速度,还能减少规则占用的存储空间。
1.1.3 规则压缩
虽然很多控制器(像NOX、Pox和Ryu等)并不包含交换机流表的拷贝,但在实际的网络部署中,让控制器存储交换机的转发状态是很有必要的,尤其是在网络快速恢复、网络状态查询、一致性检查和规则空间分析等方面[13]。然而,如果按照传统的在控制器中保持每个交换机流表的一个拷贝,这样无疑将消耗巨大的控制器内存空间,致使网络的可扩展性面临挑战。
正如1.1.2节中提到的,现存的策略编译器并不能很好地处理策略更新所产生的冗余规则,而冗余规则之间存在一定的相关性,因此可以利用该特性来压缩规则、降低规则占用的存储空间。文献[13]提出了一种基于模型的压缩方法,该方法通过合并多个流表并整合流表内的action字段以及由规则推导规则的方式有效减少了流表的尺寸,从而提高了资源的利用率。
1.1.4 规则优化
按照传统SDN网络的流转发方式,当流到达不能由规则匹配转发的交换机时,交换机会请求控制器下发规则来处理该流的转发。同样地,当流转发到下游节点交换机时,交换机需要将流转发到控制器,由控制器安装规则到交换机,然后控制器将流返回到该交换机进行转发。这种情况一直持续流到达出口点进行交付。因此,在部署OpenFlow网络的过程中,合理地选择转发策略不但能减少规则对空间和链路的消耗,还能有效减少网络中的流量。为了避免交换机请求规则设置受转发路径长度的影响,ERSDN[14]通过在流的首部加入转发路径并通过特殊指令来设置下一跳交换机的流表,从而避免了规则设置请求随着转发路径的增加而增加,减少了控制器-交换机规则设置请求的流量,提高了网络的可扩展性。
除了以上提及的对转发策略规则设置请求优化外,对转发规则的资源消耗优化同样能提高网络的可扩展性。现存的优化资源消耗的方式主要有两种:第一种像Palette[15]和OneBigSwitch[16],旨在寻找最优的资源分配来满足最小化流和策略的需求。这种方式在解决规则的选择和安放问题上遵循端点策略(该策略声明了包必须严格按照路由策略生成的转发路径进行转发以到达出口位置[17])。而另一种像文献[17]提出的,不去注重包转发的具体细节而尽可能多地去转发,放宽了对路由的限制。这种方式能够提高路径的多样性,增加网络容量,因为强制路由方案限制了包的转发路径以及需要对高度复杂的规则选择和安放操作付出很大的代价。
1.2 多控制器网络架构
单控制器注定不能满足网络的要求。首先,随着网络中交换机数量的不断增加,控制器的流量也会随之增加;其次,对于大直径的网络,不管将控制器部署在哪个位置,一些较远的交换机将会出现远距离流的设置延迟;最后,单控制在硬件上存在性能瓶颈。
该节将从控制器的部署以及最优路径算法为例讨论如何通过多控制器网络结构来提升网络对事件的处理能力以及通过优化路径来减少网络通信流量。
在SDN可扩展方案(见表1)中,将HyperFlow作为分布式多控制器扩展方案的典型代表。
表1 基于OpenFlow的SDN可扩展方案对比
HyperFlow在每个控制器实例上安装WheelFS(分布式文件系统)来有选择性地向相邻的其他控制器发布能改变系统状态的事件,控制器通过交互自身状态,实现了网络中所有控制器状态的汇聚(即全局网络视图)。在HyperFlow网络中,所有的控制器拥有相同的全局网络视图,本地服务请求不用主动与远端节点交互。除此之外,并非所有的网络事件都会改变系统的状态,因此,HyperFlow对这些事件进行有选择性地发布。这样,有效减少了流的设置时间,提高了网络的可扩展性。
类似地,像Pratyaastha[18]能够通过减少控制器之间的内部通信以及控制器的资源消耗,来大大降低流的设置延迟。初步估计,Pratyaastha能够减少44%的流设置延迟以及42%的控制器操作开销。
在实施多控制器可扩展性方案中,路由方案在可扩展性方面亦起着至关重要的作用。一方面,网络拓扑在不断变化,要求路由方案能够及时发现变化了的网络结构并以此重新寻找最优的转发路径以应对路径失效问题。另一方面,路由方案关系到参与通信的控制器数量,好的路由方案应该尽可能减少转发路径上参与转发的控制器个数,尤其应该避免环路的出现。通常拓扑发现采用生成树的方法(例如在POX控制器上实现的最短路径路由算法[19])。
2 网络器件在提高可扩展性方面的作用
2.1 交换机
在传统的OpenFlow网络中,控制平面对整个网络提供了统一化的管理,所有的网络决策都必须经过控制器来下发。SDN网络的实现控制器通过维护一张全局网络视图来对网络进行配置和管理。一方面,这种方式容易导致控制器成为网络的性能瓶颈;另一方面,这种线下的事件处理方式使得控制器不能实时侦测到网络状态的变化,因此很容易受到像新流的攻击、交换机接口频变以及事件风暴等恶性网络事件的影响[20]。虽然交换机是网络数据包转发的执行者,掌握了网络动态信息的第一手资料,但这种“哑”的器件并不具备根据网络信息做出相应判决的能力,而只能根据控制器下发的流表规则进行转发或请求控制器处理,从而严重掣肘了网络的灵活性和可扩展性。Neod[21]以固件的方式在交换机中提供一种轻量级的嵌入式CPU利用率检测、接口频变检测以及事件风暴过滤的功能。像这种提供交换机对某些网络事件自行处理的能力,能够大大提升网络资源的利用率。
另外,由于缺乏资源,不能支持转发芯片与CPU间的高频通信,导致交换机转发性能低下[22]。因此,提升交换机的转发速率能消除转发平面的性能瓶颈。FAST[23]在交换机上定义了一种通过预定义包的动作的匹配规则来提升包转发速率的方法;文献[12]提供了一种通过软硬件结合方式对交换机进行抽象的方法,实现了以低消耗无限制流表缓存的功能,从而提高了包的转发效率。
2.2 控制器
在SDN网络发展过程中,出现了一系列控制器。控制器的架构从单线程到多线程,从单控制器到支持分布式的多控制器。
表2从控制器类型、是否支持多线程以及分布式实现和开发语言等方面列举了近年来的主流控制器。
表2 典型控制器平台对比
3 结束语
SDN为从数据平面中解耦合控制平面提供了一个更好的网络管理平台,成为越来越多人的选择。然而,随着网络流量的与日俱增(据思科对未来网络流量的统计,2018年网络平均流量将比2013年增长2.8倍[24]),网络的中心化控制可能会因为大的网络负载而产生控制平面的可扩展性问题。文中针对该问题,从规则处理和网络设备两方面出发,结合近年在该方面的研究进行了分析和总结。
[1] Panda A,Scott C,Ghodsi A,et al.CAP for networks[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2013:91-96.
[2] 左青云,陈 鸣,赵广松,等.基于OpenFlow的SDN技术研究[J].软件学报,2013,24(5):1078-1097.
[3] Guan Xinjie,Choi Baek-Young,Song Sejun.Reliability and scalability issues in software defined network frameworks[C]//Proc of GREE.[s.l.]:[s.n.],2013.
[4] 张朝昆,崔 勇,唐翯祎,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
[5] Tootoonchian A, Ganjali Y. HyperFlow:a distributed control plane for OpenFlow[C]//Proc of Internet network management workshop on research on enterprise networking.[s.l.]:[s.n.],2010.
[6] Curtis A R,Mogul J C,Tourrilhes J,et al.DevoFlow:scaling flow management for high-performance networks[J].SIGCOMM CCR,2011,41(4):254-265.
[7] Iyer A, Mann A, Samineni N.Switchreduce:reducing switch state and controller involvement in OpenFlow networks[C]//Proc of IFIP networking conference.[s.l.]:[s.n.],2013.
[8] Nakagawa Y,Hyoudou K,Lee C,et al.Domainflow:practical flow management method using multiple flow tables in commodity switches[C]//Proc of conference on emerging networking experiment and technologies.[s.l.]:ACM,2013.
[9] Yan Bo,Xu Yang,Xing Hongya,et al.CAB:a reactive wildcard rule caching system for software-defined networks[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[10] Katta N,Rexford J,Walker D.Infinite cacheflow in software-defined networks[R].USA:Princeton University,2013.
[11] Wen Xitao,Diao Chunxiao,Zhao Xun,et al.Compiling minimum incremental update for modular SDN language[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[12] Peresini P,Kuzniar M,Canini M,et al.ESPRES:transparent SDN update scheduling[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[13] Zhang Ying,Natarajan S,Huang Xin,et al.A compressive method for maintaining forwarding states in SDN controller[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[14] Owens H,Durresi A.Explicit routing in software-defined networking (ERSDN):addressing controller scalability[C]//Proc of international conference on network-based information systems.[s.l.]:[s.n.],2014.
[15] Kanizo Y,Hay D, Keslassy I. Palette:distributing tables in software-defined networks[C]//Proc of INFOCOM.Turin:IEEE,2013:545-549.
[16] Kang N,Liu Z,Rexford J, et al. Optimizing the ‘one big switch’ abstraction in software-defined networks[C]//Proc of conference on emerging networking experiments and technologies.[s.l.]:ACM,2013.
[17] Nguyen X,Saucez D,Barakat C,et al.Optimizing rules placement in openflow networks:trading routing for better efficiency[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[18] Krishnamurthy A,Shoban P,Chandrabose A G.Pratyaastha:an efficient elastic distributed SDN control plane[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[19] Jmal R,Fourati L C.Implementing shortest path routing mechanism using Openflow POX controller[C]//Proc of 2014 international symposium on networks,computers and communications.[s.l.]:[s.n.],2014.
[20] Zhou Shijie,Jiang Weirong,Prasanna V K.A programmable and scalable OpenFlow switch using heterogeneous SoC platforms[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[21] Song Sejun,Hong Sungmin,Guan Xinjie,et al.Neod:network embedded on-line disaster management framework for software defined networking[C]//Proc of 2013 IFIP/IEEE international symposium on integrated network management.[s.l.]:IEEE,2013.
[22] Yeganeh S H,Tootoonchian A,Ganjali Y.On scalability of software-defined networking[J].IEEE Communications Magazine,2013,51(2):136-141.
[23] Moshref M,Bhargava A,Gupta A,et al.Flow-level state transition as a new switch primitive for SDN[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[24] Cisco.Cisco visual networking index:forecast and methodology[M].[s.l.]:Cisco,2013.
Research on Scalability of SDN
DENG Zhi-hua,LÜ Guang-hong
(School of Computer,Sichuan University,Chengdu 610065,China)
Software Defined Network (SDN) provides a more flexible and a better management network,by a united control plane which decoupled from data plane to manage network event and a global network view to synchronize network status.However,as the separation between data plane and control plane increased to OpenFlow event handling additional computing and network resources consumption,with the increase of network traffic,it will inevitably make the traffic increasing between controller and switches,as well as between controller and the controller,and that may lead to scalability issues occurred in SDN network.In order to solve the problem of SDN network scalability,the analysis is conducted from the cause of network congestion and network device performance.Starting from reducing network load and designing more reasonable network device,the contribution and research in this field is analyzed and summarized in past two years.
SDN;scalability;network load;network devices
2015-06-22
2015-09-23
时间:2016-02-18
国家“863”高技术发展计划项目(2008AA01Z105)
邓志华(1989-),男,硕士研究生,研究方向为计算机网络;吕光宏,教授,研究方向为计算机网络。
http://www.cnki.net/kcms/detail/61.1450.TP.20160218.1636.062.html
TP393
A
1673-629X(2016)03-0014-04
10.3969/j.issn.1673-629X.2016.03.004