有人认为, SDN就是数控分离:有人认为, SDN就是OpenFlow;还有人认为只要 支持软件编程控制的网络就是SDN.不同的人对SDN有着不一样的理解,正如一千个 人眼中有一千个哈姆雷特。为探究SDN的准确定义,我们将以ONRC (OpenFlow Network Research Center,开放网络研究中心)和ONF2] (Open Networking Foundation 开放网络基金会)对SDN的定义为切入点,深入探讨SDN的本质,一层一层揭开SDN 的神秘面纱,直到看清SDN的庐山真面目。
ONRC是SDN创始人斯坦福大学教授Nick McKeown[3和加州大学伯克利分校教授 Scott Shenker,以及大名鼎鼎的Larry Peterson教授1共同创建的研究架构。ONRC对定义中, SDN的特征表现为数据平面和控制平面分离,拥有逻辑集中式的控制平面,并通过统一而开放的南向接口来实现对网络的控制。ONRC强调了“数控分离”,逻辑集中式控制和统一、开放的接口。
相比ONRC对SDN的定义,另一个重要的组织ONF对SDN定义做出了不同的描述。ONF是Nick McKeown教授和Scott Shenker教授联合多家业界厂商发起的非营利性开放组织,其工作的主要内容是推动SDN的标准化和商业化进程,ONF认为: "SDN是一种支持动态、弹性管理的新型网络体系结构,是实现高带宽、动态网络的理想架构。SDN将网络的控制平面和数据平面解耦分离,抽象了数据平面网络资源,并支持通过统一的接口对网络直接进行编程控制”。相比之下, ONF强调了SDN对网络资源的抽象能力和可编程能力。
本质上,这两个组织给出的SDN定义并没有太大的差别,都强调了SDN拥有数据平面和控制平面解耦分离的特点,也都强调了SDN支持通过软件编程对网络进行控制的能力。但是ONRC更强调数控分离和集中控制等表现形式,而ONF则强调抽象和可编程等功能。
从ONRC和ONF对SDN的定义中可以了解到:SDN不仅重构了网络的系统功能,实现了数控分离,也对网络资源进行了抽象,建立了新的网络抽象模型.SDN主要有如下三个特征。
(1)网络开放可编程: SDN建立了新的网络抽象模型,为用户提供了一套完整的通用API,使用户可以在控制器上编程实现对网络的配置、控制和管理,从而加快网络业务部署的进程。
(2)控制平面与数据平面的分离:此处的分离是指控制平面与数据平面的解耦合控制平面和数据平面之间不再相互依赖,两者可以独立完成体系结构的演进,类似于计算机工业的Wintel模式,双方只需要遵循统一的开放接口进行通信即可。控制平面与数据平面的分离是SDN架构区别于传统网络体系结构的重要标志,是网络获得更多可编程能力的架构基础。
(3)逻辑上的集中控制:主要是指对分布式网络状态的集中统一管理。在SDN架构中,控制器会担负起收集和管理所有网络状态信息的重任。逻辑集中控制为软件编程定义网络功能提供了架构基础,也为网络自动化管理提供了可能。
因此,只要符合以上三个特征的网络都可以称之为软件定义网络。在这三个特征中,控制平面和数据平面分离为逻辑集中控制创造了条件,逻辑集中控制为开放可编程控制提供了架构基础,而网络开放可编程才是SDN的核心特征。
一般来说, SDN网络体系结构主要包括SDN网络应用、北向接口、SDN控制器、南向接口和SDN数据平面共五部分,如图1—1所示。
SDN网络应用层实现了对应的网络功能应用。这些应用程序通过调用SDN控制器的北向接口,实现对网络数据平面设备的配置、管理和控制。
北向接口是SDN控制器与网络应用之间的开放接口,它将数据平面资源和状态信息抽象成统一的开放编程接口。
SDN控制器是SDN的大脑,也称作网络操作系统。控制器不仅要通过北向接口给上层网络应用提供不同层次的可编程能力,还要通过南向接口对SDN数据平面进行统一配置、管理和控制。
南向接口是SDN控制器与数据平面之间的开放接口。SDN控制器通过南向接口对数据平面进行编程控制,实现数据平面的转发等网络行为。
SDN数据平面包括基于软件实现的和基于硬件实现的数据平面设备。数据平面设备通过南向接口接收来自控制器的指令,并按照这些指令完成特定的网络数据处理。同时,SDN数据平面设备也可以通过南向接口给控制器反馈网络配置和运行时的状态信息。
本文来自重构网络-SDN架构与实现。