SDN数据层和控制层关键技术研究
2017-09-29钟文清陈凯渝王祖仙董裕艺
钟文清++陈凯渝++王祖仙++董裕艺
【摘 要】为了对SDN数据层和控制层关键技术进行研究,首先,阐述了SDN的概念及其体系结构;其次,在分析交换机设计、转发策略设计、控制器设计、和控制器性能设计面临关键挑战的基础上,提出数据层和控制层的关键技术;最后,面向大学信息服务多样化业务需求,提出一个基于SDN应用的部署案例,证明该方案能够有效地提高网络资源利用率、增強业务部署效率、满足用户业务差异化需求。
【关键词】5G SDN NFV
1 引言
传统网络具有协议固化、结构封闭的缺点,随着网络规模的持续扩大,路由器负荷增加、工作效率变低,网络性能优化难度不断加大。同时,通过手动对网络设备进行配置的方式,出错率高,运行维护成本高。此外,固化的业务管理模式限制了万物互联时代多样化服务的定制与扩展,传统网络面临的问题已经难以通过对现有协议及模式的简单优化得到有效解决。第5代移动通信系统将采用SDN(Software Defined Network,软件定义网络)网络架构已成为业界共识。SDN通过将传统数据转发设备的数据层与控制层进行分离,提供一个开放的网络结构,有效地提高网络资源利用率、增强业务部署效率、满足用户业务差异化需求。本文首先阐述SDN概念、体系结构,以及给运营商带来的机遇,进而围绕数据层和控制层关键技术展开研究。具体地,在分析数据层交换机设计、转发策略设计,控制层控制器设计、控制层特性设计所面临的关键挑战的基础上,提出相应的解决方法。最后,面向大学数据中心多样化业务需求,提出一个基于SDN架构的部署方案,证明了SDN方案所具有的技术优势。
2 SDN及其体系结构
可编程网络的相关工作提供了SDN发展的前期理论基础[1]。主动网络[2]使得用户可以基于编程的方式动态地对网络进行配置,方便了对网络进行运维管理网,但是因为系统兼容性差等问题,并未获得在产业界的实际部署。4D网络架构[3]从数据平面分离出可编程的控制平面,使控制逻辑中心化、自动化,其思想进一步推动了SDN控制器的产生。2006年,斯坦福大学正式提出SDN的概念[4]:SDN通过集中控制的体系结构,在不对传统网络数据包转发行为进行改变的基础上,对包括路由器、交换机等网络设备的数据包转发和逻辑控制功能进行分离,从而实现数据层与控制层的解耦。
SDN架构[5]最先由开放网络基金会提出,并已经得到学术界和产业界的普遍认可。除此之外,针对电信运营商网络,ETSI(European Telecommunications Standards Institute,欧洲电信标准化协会)提出的NFV(Netwrko Function Virtualization,网络功能虚拟化)架构[6]也已得到产业界的支持。开放网络基金会发布的SDN架构如图1所示,从下到上包括三个平面,即数据平面(层)、控制平面(层)和应用平面(层)。控制平面和数据平面之间利用CDPI(Control-Data-Plane Interface,控制数据平面接口)进行通信。Open Flow协议[7]当前被作为控制数据平面接口统一的标准接口。控制平面和应用平面之间的利用NBI(NorthBound Interface,北向接口)进行通信。数据平面主要由交换机等网络单元构成,这些网络单元通过基于不同策略构建的网络数据通路进行连接。在数据平面,仅基于控制器分发的策略对数据包进行快速转发,以适应用户日益增长的流量需求。控制平面主要由涵盖控制器逻辑的SDN控制器组成,负责控制逻辑规则制定和管理全网视图,使得运营商能够方便地进行网络配置和新协议的部署。控制器能够为运营商等第三方提供便于使用的北向接口,该接口能够根据租户的具体需求进行定制开发,以使租户能够较为方便地定制特色私有化应用。应用平面的组成为各种各样基于SDN实现的网络应用,通过简单的编程,租户即可实现新应用的快速部署,而不需要去关注底层硬件设备的技术细节。控制数据平面接口主要负责将转发策略从网络操作系统分发到各个网络设备,同时可以进行不同厂商和型号的匹配。
SDN给运营商的发展带来诸多机遇。首先,运营商网络带宽利用率将大幅度提高。例如,传统企业的广域网平均利用率只有40%,而谷歌公司将SDN技术运用到其内部广域网后,带宽利用率提高到了90%以上,带宽利用率的提高将降低运营商的服务成本。其次,SDN新网络服务的部署周期将大大缩短。SDN通过将传统网络设备的硬件和软件分离,从而实现了网络功能的更新独立于硬件外。通过使用软件和通用交换机等设备去替换原有管道设备,可以更方便地进行设备的升级和相对独立地进行网络应用的拓展。同时,SDN技术方便运营商对基础设施进行管理。资源虚拟化的策略使得运营商只需要通过软件就可以实现对这些虚拟资源进行管理。此外,可针对特定行业进行定制,SDN协议基于开放标准,可以在基础设施、转发和网络管理系统、应用编程接口等层面进行定制,以满足针对特定行业技术厂商的需求。
3 SDN数据层和控制层关键技术研究
下文围绕SDN数据层和控制层关键技术展开研究。具体地,在分析数据层交换机设计、转发策略设计、控制层控制器设计、控制层特性取舍所面临关键挑战的基础上,提出相应的解决方法。
3.1 数据层关键技术研究
数据层的研究主要围绕交换机设计和转发策略设计两个方面展开。交换机设计时应考虑可扩展、快速转发两个原则,确保灵活、快速地进行数据流的转发。转发策略设计的目的在于确保策略更新时的一致性。
(1)交换机设计
在SDN架构中,交换机位于数据层,作用主要是完成对数据流的转发。在交换机设计时,基于硬实现的方式转发速率快,但是存在进行转发策略匹配时过于严格、动作集元素体量太少等问题。因此,如何使交换机在达到一定转发速率的同时能够保持一定的灵活性,是交换机设计的关键挑战之一。endprint
针对上述挑战,提出两种改进方法:
1)可重配匹配表的方法。为了根据需要重置数据层,需要满足四方面的要求:第一,能够根据需要变化或者新添域定义;第二,在硬件资源允许的条件下,能够指定流表的宽度、深度等特性;第三,支付新行为创建;第四,在对数据包的处理过程中,支持任意放置数据包的位置及指定传输端口。理想的模型如图2所示。
圖2中输出队列可以通过软件的方式进行定义,这种可定义的特性主要是:由解析器来完成添加域的操作,之后由逻辑匹配部件来对解析器添加的域进行匹配工作以及新的动作的完成。以上操作实现了路由的过程,这种通过软件模拟路由过程的方式,能够弥补硬件无法根据数据自助选择策略的缺陷,可以在不是规定协议、不变更硬件前提下,进行自主策略选择以及数据处理。
2)基于硬件分层的方法。基本思想是通过对交换机进行分层,提供高效、灵活的多表流水线业务。该方法将交换机分解为三层,最上面一层为软数据层,通过策略更新来实现对任何新协议的部署;最下面一层为硬数据层,具有相对固定、转发效率较高的特点;中部的一层为流适配层,主要承担软数据层和硬数据层之间的数据通信。具体工作过程如下:
若控制器进行策略下发,软数据层将这些策略进行存储,进而形成具有N个阶段的流表。硬数据层通过策略的高速匹配完成对应的转发行为。中间层充当中介,将软件和硬件两个层次中的策略进行无缝的映射,也就是把相对灵活的N阶流表映射成为硬件可以识别的N阶段流表。为了完成该映射过程,首先,流适配层需要对软件数据层的全部策略进行核查;其次,通过该完整的策略将N阶段的流表映射成为1阶段的流表;最后,把该1阶段流表映射成为M阶段流表,并进一步将其分发给硬件数据层。基于这种无缝映射,可以较完整地解决交换机的硬件与控制器两者之间多表流水线技术不兼容的问题。
(2)转发策略设计
SDN支持较低抽象水平的方式对策略进行更新,例如,由管理人员手动进行更新,该方式容易造成失误,导致转发策略的不一致。即使没有失误,若网络中部分交换机的转发策略已更新,而部分交换机的转发策略尚未更新,也会导致转发策略的不一致。此外,网络节点失效也会造成转发策略的不一致。
将较低层次的配置抽象为较高层次的管理方式是解决这个问题的方式之一。该方式具有两个步骤:第一步,在有更新策略需求时,控制器首先处理已完成旧策略下数据流处理任务对应交换机的更新;第二步,若所有交换机策略更新都已完成,则视为更新策略成功,否则更新策略失败。基于这种处理的方式,新策略对应数据的处理要等到旧策略数据处理完毕再进行。该处理方式的使用前提是,支持以标签化的方式对要转发的数据进行预处理,以此来标识新策略、旧策略的版本号。更新策略时,交换机首先通过检查数据的标签来确认策略的版本号,当把数据转发出去时,需要将数据的标签去掉。
3.2 控制层关键技术研究
随着网络的规模不断扩展,现有的SDN方案中,单一结构集中式控制方式的处理能力将无法满足系统需求。本节研究了基于集中式控制器的两种改进方法:1)基于分布式控制器的扁平式控制模式;2)基于分布式控制器的层次控制模式。其次,对控制器三个重要特性“一致性、可用性和容错性”进行了详细的分析。
(1)控制器设计
对于大规模网络而言,通常会将其划分为多个组成域的形式,如图3所示。当仅使用单一集中式控制器来处理交换机请求时,其他域的交换请求就会有较大延迟,从而影响其他域的网络处理性能,当网络规模进一步扩大时,这种延迟将变得无法忍受。此外,这种控制模式还有单点失效问题。如果在整个网络中分布多个控制器,并保持逻辑中心控制特性,这样每个交换机与自己毗邻的控制器进行交互,减小了延迟,避开了单点失效问题,从而整个网络的性能得以提升。
分布式控制器一般可用扁平控制模式(如图4所示)和层次控制模式(如图5所示)进行扩展。扁平控制模式是将多个控制器放置在不相交的区域里,它们管理各自所在的网络区域。控制器之间地位对等,利用东西向接口可实现相互通信。层次控制方式中的控制器之间具有垂直管理的功能,即全局控制器控制局部控制器,局部控制器控制各自所在网络区域,局部控制器之间的通信需要通过全局控制器来实现。
在扁平控制方式中,控制器地位对等,逻辑上都能监管整个网络的状态,相当于都是全局控制器。当网络拓扑变化时,所有控制器可同步更新,仅需重新配置交换机和控制器之间的地址映射,因此,该方式对数据层的影响较小。分布式控制器Onix[8]基于网络信息库来实现管理,支持扁平式控制架构。每个控制器都有自己的网络信息库,保持网络信息库的一致性即能实现控制器的同步更新。在扁平控制方式中,所有控制器掌握着全部的网络状态,却只控制其所在的局部网络,这就存在着资源浪费。此外,在进行网络更新时,这种控制方式会导致控制器的整体负载增大。
在层次控制方式中,控制器分为局部控制器与全局控制器。局部控制器在地理上较靠近交换机,负责管理本区域节点以及掌握本区域的网络状态。全局控制器提供全网信息的路由,进行全网信息维护。在这种控制方式下,控制器之间的交互包括两种,局部控制器与全局控制器之间的交互,以及全局控制器与全局控制器之间的交互。局部控制器如果收到来自交换机的询问请求,首先判断所转发的报文是否属于其局部信息,若属于,则对这些信息进行处理;否则,该局部控制器将该询问请求转发给全局控制器,全局控制器将相应信息返回给局部控制器,局部控制器再将信息返回给交换机。该方式的优势在于降低了全局控制器的交互频率,并减轻了流量负载。
(2)控制层特性研究
控制层具有三个关键的特性:一致性、可用性和容错性,这三者之间存在着一定的耦合性,同时满足这三种特性需求十分困难,在设计中需要根据实际需要进行取舍。
1)一致性
SDN的核心优势之一就是能够通过集中控制来解决网络配置的一致性问题。用户能够通过集中控制来获取全局网络视图,并根据全网信息对网络进行统一部署与设计,从而保证了网络的一致性。然而,不同的控制器对一致性的要求不一样:在分布式的控制器中,如果要保证全局状态的一致性,网络性能就会下降;如果要提升网络的性能,减少下发策略的时间,全局状态就很难统一。因此,需要根据实际需要对性能进行取舍。endprint
2)可用性
由于控制器需要处理大量来自交换机的请求,有可能造成控制器的负载过重,从而降低可用性。分布式控制器能够一定程度上解决SDN的可用性问题。分布式控制器通过对交换机请求进行分布式处理,平衡分配负载,从而提升整体的可用性。特别地,在层次控制方式中,由于局部控制器承担了大部分交换机请求,全局控制器能够更好地保证服务品质。然而,由于每个控制器分别处理不同的交换机请求,如果网络流量分布不均匀,就会导致一些控制器的可用性下降。因此,在分布式控制器架构中,仍然存在着可用性问题。采用负载窗口的方法能够对可用用性作进一步优化,该方法通过不断地检查负载窗口的总负荷,并基于实际需求对控制器之间的流量进行动态地调整。此外,通过减少交换机的请求次数也可以对可用性进行优化。该方法将数据流划分成短流和长流,短流由数据层来处理,长流则由控制层处理。由于长流数量非常少,因此该方法能够降低控制器的负载,从而增强系统可用性。
3)容错性
SDN网络中仍然存在节点失效或链路失效的问题,不同于传统网络的是,SDN控制器具有较强的容错能力,能够根据全网信息快速地恢复失效节点。图6展示了网络中的节点或链路失效恢复收敛的过程:①若网络中有一台交换机发生失效,那么在网络中的其他交换机则能够感知该变化;②交换机将该变化传递给控制器;③控制器计算出使节点或链路恢复的策略;④控制器进行策略更新后,在受到失效影响的网络元素中扩散该更新策略;⑤这些网络元素对各自的流表中的信息进行相应的更改。
图6 失效节点或链路的收敛
4 SDN应用案例
基于上述讨论,面向大学信息服务多样化业务需求,本节提出一个基于SDN的应用部署案例。
某大学数据中心的主要业务包括办公自动化系统、校园网系统、校园一卡通系统、考试系统、选课系统等,IT资源部署依照应用进行简单的物理划分。这种方式存在以下问题:业务部署速度慢;资源利用率较低;运行维护成本高;管理不集中。为解决这些问题,提出基于SDN的实现方案。
如图7所示,KVM平台作为计算虚拟化底层,基于NFV的SDN方案实现网络架构,通过采用OpenStack架构[9]、中兴iROS系统[10]实现云管理平台。具体地:1)组网基于SDN架构,通过控制器进行集中的网络控制;2)采用虚拟可扩展局域网的实现用户网络;3)M6000作为虚拟可扩展局域网网关,完成虚拟路由和网络地址转换功能;部署在计算服务器上的ZXDVS交换机实现虚拟通道终端功能;4)基于软硬结合的方式实现NFV方案,采用A10硬件负载均衡设备实现负载均衡;5)iROS作为集中的云运营管理平台,进行统一的资源管理、统一的生产调度,“一点受理,全网服务”,实现集约化服务。
该方案的优势有:1)基于OpenStack的开放架构,易于集成业界领先NFV产品,减少了之前封闭系统存在的各种技术和成本问题;2)效率更高。分布式路由策略减少了用户内部路由迂回,极大地提升网络效率;SDN控制器自动引流,不需要手工进行路由配置;3)安全可靠。基于虚拟机的云平台提供高可靠性、高性能保障;4)更加灵活。地址重叠和NAT功能使得用户可以自定义网络,并根据业务规模对调整虚拟负载均衡器规格进行灵活调整;5)iROS云管理平台对网元进行统一的管理和配置。
5 结束语
本文系统阐述了现有的SDN架构标准及关键技术,主要涉及数据层关键技术、控制层关键技术,具体包括交换机设计、转发策略设计、控制器设计、控制层特性分析。最后,基于上述方法论,尝试设计了一个具备管理方便、配置灵活、安全高效等优势的面向校园多业务应用SDN部署方案。
参考文献:
[1] Nunes B A A, Mendonca M, Nguyen X N, et al. A survey of software-defined networking: Past, present, and future of programmable networks[J]. IEEE Communications Surveys and Tutorials, 2014,16(3): 1617-1634.
[2] Tennenhouse D L, Smith J M, Sincoskie W D, et al. A survey of active network research[J]. IEEE Communications Magazine, 1997,35(1): 80-86.
[3] Yan H, Maltz D A, Ng T S E, et al. Tesseract: A 4D network control plane[EB/OL]. (2007-02-18)[2017-06-12]. https://www.usenix.org/legacy/event/nsdi07/tech/full_papers/yan/yan_html/.
[4] Stanford University. Clean slate program[EB/OL]. [2017-06-12]. http://cleanslate.stanford.edu/.
[5] Open Networking Foundation ONF White Paper. Software-Defined networking: The new norm for networks[Z]. 2012.
[6] ETSI NFV White Paper. Network functions virtualisation[Z]. 2012.
[7] McKeown N, Anderson T, Balakrishnan H, et al. OpenFlow: Enabling innovation in campus networks[J]. Acm Sigcomm Computer Communication Review, 2008,38(2): 69-74.
[8] Koponen T, Casado M, Gude N, et al. Onix: A distributed control platform for large-scale production networks[Z]. 2010.
[9] OpenStack. OpenStack Docs: Ocata[EB/OL]. [2017-06-12]. http://docs.openstack.org/.
[10] 中興通信. 云平台解决方案[EB/OL]. [2017-06-12]. http:
//www.zte.com.cn/cn/solutions/cocloud/201310/t20131010_407746.html. ★endprint