软件定义网络概述
扫描二维码
随时随地手机看文章
软件定义网络(Software Defined Network,SDN)是由美国斯坦福大学Clean-Slate课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。
SDN起源于2006年斯坦福大学的Clean Slate研究课题。2009年,Mckeown教授正式提出了SDN概念 [1] 。软件定义网络SDN(Software Defined Network)是由美国斯坦福大学CLean Slate研究组提出的一种新型网络创新架构,可通过软件编程的形式定义和控制网络,其控制平面和转发平面分离及开放性可编程的特点,被认为是网络领域的一场革命,为新型互联网体系结构研究提供了新的实验途径,也极大地推动了下一代互联网的发展。传统网络世界是水平标准和开放的,每个网元可以和周边网元进行互联。而在计算机的世界里,不仅水平是标准和开放的,同时垂直也是标准和开放的,从下到上有硬件、驱动、操作系统、编程平台、应用软件等等,编程者可以很容易地创造各种应用。从某个角度和计算机对比,在垂直方向上,网络是“相对封闭”和“没有框架”的,在垂直方向创造应用、部署业务是相对困难的。但SDN将在整个网络(不仅仅是网元)的垂直方向变得开放、标准化、可编程,从而让人们更容易、更有效地使用网络资源。因此,SDN技术能够有效降低设备负载,协助网络运营商更好地控制基础设施,降低整体运营成本,成为了最具前途的网络技术之一。
回顾网络创新的发展历史,在20世纪90年代中期认为“推动网络的创新,需要在一个简单的硬件数据通路上编程”,即动态网络。它的问题在于隔离性、性能、复杂度。20世纪90年代后期认为,“为了推动网络创新,我们需要底层的数据通道是可编程的”,也即网络处理器。它的问题在于加剧了数据通道底层的复杂度。事实上在网络领域,我们一直以来没有分清一个简单通用的硬件底层与一个开放的上层编程环境之间的界限。之前的尝试往往犯以下错误:1. 假设当前的IP路由底层是固定的,并试图在其外部编程,包括路由协议;2. 自上而下地定义编程和控制模型。(但事实上Intel在选择x86指令集的时候,并没有定义Windows XP、Linux或者VMware)在经过多次的犯错、失败后,网络创新终于取得了突破,新一代互联网技术的代表——SDN终于诞生。SDN起源于2006年斯坦福大学的Clean State研究课题。2009年,Mckeown教授正式提出了SDN概念。2012年12月6日,北京,中国以“未来网络的演进之路”为主题的2012中国SDN与开放网络高峰会议在北京隆重召开,本次峰会获得国际组织ONF(开放网络基金会)的大力支持,Justin Joubine Dustzadeh博士代表ONF向大会致辞并发表主题演讲,指出SDN这一颠覆性的技术将对未来网络产生革命性的影响。2013年8月29日,北京,2013中国SDN与开放网络高峰会议(第二届)在京举办,众多国内外运营商、厂商及业界专家学者将云集于此,共同探讨SDN、开放网络等相关主题。
利用分层的思想,SDN将数据与控制相分离。在控制层,包括具有逻辑中心化和可编程的控制器,可掌握全局网络信息,方便运营商和科研人员管理配置网络和部署新协议等。在数据层,包括哑的交换机(与传统的二层交换机不同,专指用于转发数据的设备),仅提供简单的数据转发功能,可以快速处理匹配的数据包,适应流量日益增长的需求。两层之间采用开放的统一接口(如OpenFlow等)进行交互。控制器通过标准接口向交换机下发统一标准规则,交换机仅需按照这些规则执行相应的动作即可 [1] 。软件定义网络的思想是通过控制与转发分离,将网络中交换设备的控制逻辑集中到一个计算设备上,为提升网络管理配置能力带来新的思路 [3] 。SDN的本质特点是控制平面和数据平面的分离以及开放可编程性。通过分离控制平面和数据平面以及开放的通信协议,SDN打破了传统网络设备的封闭性。此外,南北向和东西向的开放接口及可编程性,也使得网络管理变得更加简单、动态和灵活。