SDN是"Software Defined Network"的缩写,其中文意思是“软件定义网络”。在《SDN—软件定义网络》这本书中,作者Thomas Nadeau和Ken Gray是如此定义这个新概念的:SDN是一种优化和简化网络操作的体系结构方式,它将应用与网络服务、设备之间的交互(如服务开通配置、消息传递、警报)更加紧密地结合在一起,不论它们是物理的还是虚拟的。它通常被认为是由SDN控制器来实现,它编排、协调并促进希望与网元设备进行交互的应用程序,以及希望传送信息给应用的网元设备之间的通信。然后,控制器通过现代化的、应用友好的、双向的编程接口来展示、抽象网络功能和操作。
对于SDN,其发展动力主要来自于三方面的需求,不同的推动主体对于SDN的理解并不相同。目前推动SDN发展的专家大致可以分为三类:互联网数据中心(IDC)设计与运维人员、数据设备设计研发人员、未来网络研究与试验人员。这三类专家关注SDN的出发点并不相同,对于SDN的认识也是不一样的。SDN的商用需求最早出现在数据中心内部,用以负责二层网络内部节点间的流量调度和管理。后来,SDN商用需求也逐渐来自于路由器内部功能优化,数据平面与控制平面的分离成为了新一代路由设计的核心理论。而目前,为了解决IP网络面临的网络地址空间不足、服务质量难以保证、安全可信机制缺乏、网络管控能力差等问题,未来网络研究人员一方面积极研究新型网络体系结构和关键技术,SDN的商用成为了未来网络研究与试验的需求。
SDN中最重要的三个概念就是:可编程、控制平面与数据平面分离,以及用于网络瞬时状态管理的集中式控制模型。这些概念体现在一个理想化的SDN框架中。关于SDN的理想化框架以及SDN控制器的各种不同的框架在后面的文章中会有具体讲述。
说到SDN,这里必然会提到OpenFlow,但OpenFlow不等于SDN,就如同互联网不等于IP协议,PSTN不等于7号信令,IMS不等于SIP,WEB体系不等于HTTP协议一样。OpenFlow仅仅是SDN中控制器控制转发面设备的协议而已,控制器本身的架构、网络拓扑算法、运行环境、编程工具,以及和上层应用的集成技术都是SDN的一部分,并且是架构上更为核心的部分。对于整个SDN体系来说,OpenFlow整个SDN的南向接口,便于用户直接管理网元设备。而关于OpenFlow协议的具体内容,在后的文章中也会有一个较为清楚的讲解。
SDN控制其相关内容也会成为这一系列博客文章的重要组成部分。鉴于目前SDN控制器的种类非常多,如VMware (vCloud/vSphere)、Nicira(NVP)、BigSwitchNetworks(Floodlight/BNC)、Juniper(Contrail)、OpenDaylight等等,在此系列文章中,主要介绍OpenDaylight SDN 控制器相关方面的技术心得以及项目过程中的问题及问题解决方式。
对于本系列的博客,现介绍一下内容的组成部分:
1、SDN概述;
2、OpenFlow协议(1.0/1.2/1.3/...);
3、SDN控制器介绍(各公司的控制器);
4、OpenDaylight控制器相关学习心得;
6、SDN结合802.11无线方面的技术研究(包括802.11协议);
5、其他方面的文章,如网络协议、网络流算法等内容。
执笔于此,贴几个网站网址以供参考:
OpenFlow:archive.openflow.org
OpenDaylight:www.opendaylight.org
OpenDaylight Wiki:wiki.opendaylight.org/view/Main_Page