付志英 李鹏
摘要:软件定义网络(SDN)是现代备受关注的新型网络体系结构之一,正逐步革新现存的传统网络体系结构。数据平面和控制平面的解耦和、网络控制的逻辑集中、用于数据转发策略的流抽象以及网络的编程能力是SDN的4个主要基本概念。介绍了SDN的发展背景及其缘起;描述了SDN体系结构,并从SDN三层架构出发分析SDN的3个平面、OpenFlow接口以及工作原理,贯穿了SDN的4个主要基本概念,展望了SDN的发展趋势。
关键词:SDN网络体系架构;OpenFlow;平面解耦合
中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2019)17-65-4
0引言
自美国斯坦福大学研究团队提出Openflow概念以来,SDN体系架构不断发展与完善。2012年4月,谷歌宣布其骨干网络整体运行在Openflow上,已经证明SDN逐步从学术概念走向实际应用。伴随Openflow技术商业化的实现与不断深入,SDN也引起了人们的极大关注。
自21世纪以来,移动数据、物联网、大数据和云计算4个领域的兴起与发展,使得现代网络应用类型急剧丰富,网络规模迅速膨胀,网络需求不断增加。而作为现代计算机网络主体的互联网,其管控能力日益减弱,功能与结构日渐复杂。特别是路由器作为网络核心,如分组加密、流量管理等需承载的功能迅速扩展,使其作为网络转发设备变得十分累赘,这说明现存的传统网络体系结构需要革新,SDN应运而生。
1 SDN
SDN体系架构的本质源于对计算机模式的模仿[1],如图1所示,将集成在底层转发设备中的数据转发功能与网络控制功能解耦和,使之重新变成“简单的、哑的”转发设备,执行数据转发功能且提供对外开放的通用接口;而将网络控制功能上移到专门的网络控制器,从物理上的分布式控制转化为逻辑上的集中式控制。该控制器通过接口实现与底层转发设备通信和控制。网络管理员和开发者可以直接在专门的网络控制器上进行网络配置、控制和编程。
2 SDN体系结构
2.1 SDN体系结构概述
计算机网络领域中的所有功能最终都可以归纳为数据、控制和管理3个独立的类[2]。因为每个类的功能不仅需要与同一类相邻实体的对等元素进行水平通信的能力,而且又有与其他类进行垂直通信的能力,所以通常使用“平面”或“层”来分别表示每一类的功能。对等通信发生在同一层内,而跨类消息传递则发生在层与层之间。
Scott Shenker提出的SDN转发、分发和规范3个基本抽象与以上这3个类的功能一一对应:①转发抽象应该允许网络控制程序所需的转发行为,同时隐藏底层转发设备的细节;②分发抽象应该让SDN应用程序避免受到物理上分布式状态的影响;③规范抽象应该允许网络应用程序表达所需的网络行为,而无需负责实现该网络行为本身[3]。
对应地,SDN典型体系架构分3个平面,顶层为应用平面,包括各种网络应用和服务;中间层为控制平面,是可编程的控制器,掌控全网信息、负责设计路由、维护网络状态信息与拓扑结构、下发数据转发表、处理下层网络转发设备资源编排、设置优先级与路由策略参数来满足服务质量和体验质量要求;最下层为数据平面,负责数据转发、操作处理和网络状态收集。这3层平面通过基于特定网络抽象协议实现的通用接口,即应用程序编程接口(Application Programming Interface,API)進行连接与通信。
SDN比较常见的一种体系结构如图2所示[1],自底向上主要包括数据平面、南向接口(OpenFlow)、控制平面、北向接口(REST API)和应用平面这5部分。
2.2 SDN数据平面与南向接口OpenFlow
2.2.1 SDN数据平面
SDN数据平面由一组交换机、路由器和中间件等网络设备组成。与传统网络设备的根本区别在于,SDN设备是简单的网络转发设备,没有嵌入式控制或软件来进行自主决策。数据平面中一个简单的网络设备如图3所示[1]。该网络设备有3个输入/输出端口:垂直向上的接口用于实现与SDN控制器通信,水平方向左右2个分别是数据分组的输入与输出。网络设备通过转发表转发数据分组流,转发表中包含特定类别分组的下一跳路由。除了简单地转发分组以外,网络设备还可以对分组的首部进行修改,或者直接丢弃该分组。到达的数据分组流被放置在输出队伍中,等待网络设备的处理,而分组在完成转发之后通常会放置在输出队伍中,等待传输。
数据平面网络设备所需完成的功能包括:①控制支撑功能(垂直通信):与SDN控制平面进行交互,依赖资源-控制接口支持数据平面可编程特性,交换机与控制器之间的通信以及控制器对网络设备的管理都是通过OpenFlow协议进行;②数据转发功能(水平通信):从端系统接收到达的数据流,并将它们沿计算和建立好的数据转发路径转发出去,转发路径主要根据SDN应用程序定义的规则决定。
2.2.2 OpenFlow定义的逻辑交换机体系结构
基于OpenFlow的SDN是SDN最早商业化的实例。OpenFlow不仅是数据平面功能的逻辑规范,而且是网络设备与SDN控制器之间的通信协议。流表、端口、通信信道和数据结构是构成OpenFlow规范主要4个部分。OpenFlow工作原理如图4所示,主要体现了OpenFlow转发数据分组流的处理机制。逻辑交换机体系结构的基本组成块是流表,每个进入交换机的组成分组都会经过一个或者多个流表,而每个流表都包含若干行,即表项。每个表项都包括3部分:①匹配:匹配规则,根据数据包报头字段、输入端口号以及前一个流表所传递的信息等进行匹配流表项;②计数:对成功匹配的数据包进行计数,同时保存技术信息;③操作:对已匹配的数据包执行的操作,包括将匹配成功的数据分组转发到输出端口、失配的数据包封装后上传给SDN控制器或直接丢弃等操作[4]。
当一个新数据包到达时,查找过程从第一个流表开始,以一个流表中的匹配结束,或者当没有为该数据包找到默认规则时以失配结束。可以通过组合不同的匹配字段来定义流规则。如果没有默认规则,数据包失配后将会被丢弃。但是,常见的情况是默认一个规则,告诉交换机将包发送到控制器。
2.3 SDN控制平面
SDN控制平面也称为NOS,位于SDN三层架构的中间层,作为应用平面与数据平面相互联系、通信的桥梁。它向上可以通过北向接口为网络应用层软件提供底层硬件的操作抽象;向下可以通过南向接口支配和管理底层硬件。顶层应用平面的网络应用软件需要根据SDN控制器提供的网络信息执行特定的网络控制算法,并通过控制器将执行结果转化为控制命令向下转发给网络转发设备[5]。
SDN控制平面整体设计存在的主要问题是:单一控制器的处理能力有限,遇到了网络性能瓶颈且难以扩展。解决方法有:①采用并行技术来提高控制器自身处理能力;②采用多控制器以物理上分布而逻辑上集中的方式来提升整个控制器的处理能力。对于方法②来说,通过借助东西向接口的API实现多控制器逻辑集中的处理方式。
2.4 SDN应用平面与北向接口
应用平面包括应用和服务,主要对网络行为和资源进行定义、使用、控制和监视。这些应用和服务通过应用-控制接口与SDN控制平面进行交互,使SDN控制平面可以灵活地定制网络设备的行为和性能。SDN应用利用了SDN控制平面提供的网络资源抽象视图,该视图是通过应用-控制接口的信息和数据模型获取的。
SDN网络生态系统中2个重要抽象是南北向接口。南向接口(如OpenFlow)已得到广泛应用,然而北向接口规范尚不明确。一些厂商使用基于表述性状态转移(Representational State Transfer,REST)作为SDN控制器的北向接口。
SDN应用平面功能和接口如图5所示。网络服务抽象层处于网络应用程序与控制平面之间,该层具有以下功能:①提供底层基础网络资源的抽象视图,从而隐藏底层数据平面基础网络设备的具体细节;②提供控制平面功能的整体视图,这样上层网络应用可以运行在多种控制器上。
SDN主要实现4个方面的功能:①网络基础设备中数据转发功能与网络控制功能解耦合,将控制功能从网络转发设备中删除,使之成为简单的转发元素,便于统一支配和管理。②数据转发策略不是基于数据包目的地,而是基于数据流。数据流由一组作为匹配准则(作为过滤器)、操作分组字段(作为操作指令)、数据分组匹配计数进行定义。流抽象可以统一路由器等不同类型网络设备的行为,流编程的实现使网络配置和管理具有更大的灵活性。③将底层转发设备的控制逻辑上移到SDN控制平面上的SDN控制器,其功能类似于计算机OS。④网络开发者通过网络开发应用程序实现网络编程需求,而网络开发应用程序运行在NOS上。
3 SDN发展趋势
3.1 SDN/NFV与OPEN-O
网络功能虚拟化(Network Function Virtualization,NFV)同SDN一樣也是现代备受关注的新型网络体系结构之一。SDN/NFV结构体系各自独立却可以相互补充,如何将二者整合部署以提高网络功能、数据平面可编程性以及网络资源动态调整,成为当前网络热门研究方向。SDN网络设备的数据转发与网络控制解耦和便于网络管理,提供灵活路由;而NFV利用虚拟化技术将网络功能从特定硬件平台分离出来,以便实现更高效的网络功能。这2种技术硬件和软件上结合起来可以获得更大的利益。SDN与NFV整合部署适用于很多网络场景中,如WiFi等[6]。
为了促进二者的融合,Linux基金会于2016年2月23日巴萨罗纳移动世界大会上宣布开展OEPN-O项目工作,旨在发展网络行业第一个网络架构编排器和开源软件框架。OPEN-O项目很快受到了中国移动、Red Hat等的支持[7]。
3.2 5G与SDN
5G属于蜂窝技术之一,目前正处于4G向5G蜂窝网发展的阶段。3GPP会议在2018年6月14日美国圣地亚哥举办,通过了5G独立组网功能冻结方案,未来5G可以网络独立部署,现在5G正处于商业实现的重要阶段。与4G相比,5G将在网络可靠性、可扩展性等网络性能各方面具有更大进展[8]。面对移动网络的高需求与高负载,4G网络体系结构已经不再适用。5G需要更大弹性的网络结构、更加灵活的网络服务以及更高的网络性能,在网络中构建更多的智能。SDN将是推动5G向网络智能化、多元化、综合化和宽带化方向发展的重要网络技术。
3.3 Securing the Cloud With SDN
自云计算服务应用以来,许多组织机构开始倾向于将大部分IT操作转移到接入因特网的基础设施上,这些基础设置称为企业云计算,移动设备和个人PC用户等也开始使用云计算服务来备份数据,以及使用个人云计算同步设备和相互共享信息。大批数据存放在云上使得信息安全边界变得模糊,网络安全防御能力受到挑战。SDN提供了网络控制与数据转发解耦和的网络体系架构和灵活的调度机制来调度和编排云安全服务,并将其融入云管理中。基于SDN的云安全将是云安全服务体系结构主要发展方向[9]。
4结束语
不论是计算机模式的发展还是网络体系结构的发展,发展的基础都是将底层硬件设备的功能单一化、结构化。就好比社会发展过程中,生产分工不断精细化,学科不断专业化。与传统网络相比,SDN更易于简化网络配置、实现新型网络抽象和促进网络进化。而SDN的发展趋势,一方面是自身体系结构的不断完善与发展;另一方面是与其他网络技术相结合来优化网络性能、网络配置及其网络使用环境。
參考文献
[1] Stallings W.现代网络技术SDN、NFV、QoE、物联网和云计算[M].胡超,邢长友,陈鸣,译.北京:机械工业出版社,2018.
[2] Goransson P,Black C.软件定义网络:原理、技术与实践[M].王海,张娟,于卫波,等,译.北京:电子工业出版社,2016.
[3]郑毅,华一强,何晓峰.SDN的特征、发展现状及趋势[J].电信科学,2013,29(9):102-107.
[4]左青云,陈鸣,赵广松,等.基于OpenFlow的SDN技术研究[J].软件学报,2013,24(5):1078-1097.
[5]孔庆伟.基于SDN的高校校园网设计及应用研究[J].山东社会科学,2015(S2):280-281.
[6] Chowdhary A,Dixit V H,Tiwari N, et al.Science DMZ: SDN Based Secured Cloud Testbed[C]// IEEE Conference on Network Function Virtualization & Software Defined Networks,IEEE,2017.
[7] Munoz R,Vilalta R,Casellas R,et al. Integrated SDN/NFV Management and Orchestration Architecture for Dynamic Deployment of Virtual SDN Control Instances for Virtual Tenant Networks [J].Journal of Optical Communications and Networking 2015,7(11):62-70.
[8] Dávid S,Felician N,Balázs S, et al.Towards the 5G Revolution: A Software Defined Network Architecture Exploiting Network Coding as a Service.[C]//ACM Conference on Special Interest Group on Data Communication,ACM, 2015.
[9] Levin A, Massonet P. Enabling Federated Cloud Networking[C]//ACM International Systems & Storage Conference, ACM,2015.