2006年,美国斯坦福大学启动了一个名叫Clean Slate的研究课题。
该课题由美国GENI项目资助,目的非常明确且宏大,就是——“重塑互联网”。
Global Environment for Network Innovations
当时的互联网,已经历经了30多年的高速发展,从最初的小型专用局域网络,变成了空前庞大和复杂的世界级网络。
网络规模的持续扩张,网络设备的不断增加,超过了早期设计的承受能力,也使得网络维护变得举步维艰。
于是,专家们开始探讨未来网络的可能性架构,希望在互联网崩溃之前,将它拉回正轨。而GENI项目和Clean Slate课题,就是这些尝试之一。
2007年,斯坦福大学博士生Martin Casado等人提出了关于网络安全与管理的项目——Ethane。
该项目试图通过一个集中式的控制器,将网络管理人员制定的安全控制策略,下发到各个网络设备中,从而实现对整个网络的安全控制。
2008年,Clean Slate课题的项目负责人,斯坦福大学教授Nick McKeown及其团队,受到Ethane项目的启发,提出了OpenFlow的概念,并发布了那篇经典的文章——《OpenFlow : Enabling Innovation in Campus Networks(OpenFlow:校园网的创新使能)》。
Nick McKeown和他的文章
OpenFlow,字面意思就是“开放的流”。
2009年,基于OpenFlow,Nick Mckeown教授正式提出了SDN(Software Defined Network,软件定义网络)。
同年,SDN概念成功入围Technology Review年度十大前沿技术,获得了行业的广泛关注和重视。
12月份,OpenFlow规范的1.0版本正式发布。这是首个可用于商业化产品的版本,具有里程碑意义。
在继续介绍SDN发展历程之前,我们还是要稍微介绍一下SDN的工作原理。
SDN的核心思想真的很简单,就是控制和转发分离。
我们知道,网络的作用就是连接。通过无数的节点(例如路由器、交换机),将数据从起点传送到终点,这就是网络的基本功能。
数据传输过程中,各节点不断接收和转发数据包。
控制负责下命令,转发负责干活。
然而,考虑到安全冗余等因素,现实中的网络绝对不会是一条直线那么简单。它会是一个复杂的拓扑结构。
于是,命令该怎么下,直接决定了网络的效率。
传统网络中,各个转发节点都是独立工作的,内部管理命令和接口也是厂商私有的,不对外开放。
每个节点,都在说各自的“方言”
所以,我们可以把它理解为“各自为战”的模式。虽然“战略层面”的规划和设计可能是统一的,但“战术层面”的执行却是复杂且低效的。
而SDN网络,就是在网络之上建立了一个SDN控制器节点,统一管理和控制下层设备的数据转发。所有的下级节点,管理功能被剥离(交给了SDN控制器),只剩下转发功能。
SDN控制下的网络,变得更加简单。管理者只需要像配置软件一样,进行简单部署,就可以让网络实现新的路由转发策略。(如果是传统网络,每个网络设备都需要单独配置。)
除了简化部署之外,SDN更深层次的意义,是赋予了网络的“可编程性”。
也就是说,控制和转发分离之后,借助规范化的API接口,用户可以通过编写软件的方式,对网络进行管理。整个网络,就像个完整的机器人一样可供驱使。
我们具体来看看SDN的架构。
SDN网络的整体架构,分为三层,从上到下分别是应用平面、控制平面和转发平面。
整个架构的核心,就是SDN控制器。
上北下南,SDN控制器向上与应用平面进行通信的接口,叫做北向接口,也叫NBI接口(northbound interface)。SDN控制器向下与数据平面进行通信的接口,叫做南向接口,也叫CDPI接口(control-data-plane interface,控制数据平面接口)。
北向接口相对来说比较好搞,麻烦的是南向接口及其协议。因为它直接影响到SDN控制器的命令能否准确下达到无数的底层网络设备。
因此,SDN技术的发展史,简而言之,就是围绕SDN控制器和南向接口的“王位争夺史”。
在SDN被提出之后,第一个控制器平台是NOX。它是一种单一集中式结构的控制器,南向接口采用的是OpenFlow协议。
2011年,由Google、Facebook、微软等公司共同发起成立了一个对SDN影响深远的组织,那就是ONF(Open Networking Foundation,开放网络基金会)。
ONF的主要发起成员是德国电信、Facebook、Google、微软、雅虎等公司。
这些公司要么是网络服务提供商,要么是运营商,没有一个是来自设备商的。他们成立ONF的目的,是为了推动SDN和OpenFlow协议的发展。他们不希望SDN这个网络新技术又被设备商控制,成为设备商的赚钱工具。
上述发起人里面,最值得一提的是Google。
如果说Nick Mckeown教授是点燃SDN星星之火的人,那么,Google显然是将星星之火烧遍全球的关键角色。
早在SDN被提出之外,Google就在寻找提升自身网络效率的方法。当看到SDN之后,Google确认,这就是他们想要的。于是,他们果断决定将SDN应用于自己的数据网络。
2010年,Google开始将数据中心与数据中心之间的网路连线(G-scale),转换成SDN架构。整个改造分为三个阶段。到了2012年,整个Google B4网络完全切换到了OpenFlow网络。
Google B4是一种横跨整个地球的连接到谷歌数据中心私有广域网。
改造之后,Google B4网络的链路带宽利用率提高了3倍以上,接近100%。
这样的结果毫无疑问是令人震撼的,也坚定了行业对SDN的信心。
2013年,Google在SIGCOMM上发表了论文《B4: Experience with a Globally-Deployed Software Defined WAN》,详细介绍了Google的WAN加速SDN方案。论文中提及,Google使用的控制器名叫ONIX。
面对SDN和ONF,设备商当然也不能无动于衷。
2013年4月8日,在Linux基金会的支持下,作为网络设备商中的领导者,Cisco与IBM、微软等公司一起,发起成立了开源组织OpenDaylight,共同开发SDN控制器。
ODL的发起公司有:IBM、微软、Big Switch、博科、思杰、戴尔、爱立信、富士通、英特尔、Juniper、NEC、惠普、红帽和VMware……基本都是厂商
OpenDaylight提出,SDN不等于OpenFlow,人们需要对SDN进行“重新定义”。
也就是说,OpenDaylight强调SDN控制器不仅仅局限于OpenFlow,而是应该支持多种南向协议。
同时,OpenDaylight还强调,应该用分布式的控制平台,取代单实例的控制器。这样可以管理更大的网络,提供更强劲的性能,还能增强系统的安全性和可靠性。
OpenDaylight成立之后,成员数量增长迅速。但实际上,各个成员都有自己的小算盘。
Cisco就不用说了,作为OpenDaylight项目的牵头人,它主导了其中大部分项目的开发。Cisco也一直想推自家的OpFlex上位。
除了Cisco之外,Big Switch推出Big Network Controller以及对应的开源版本Floodlight。Juniper推出的是Contrial以及对应的开源版本OpenContrial。
总而言之,这一时期各种各样的SDN控制器处于百家争鸣的状态,发展势头一片大好。
当时比较主流的几种SDN控制器
仗着人多势众,OpenDaylight也成了行业里最具影响力的技术组织之一。
就在OpenDaylight风光无限的时候,又杀出了一个搅局者。
2014年12月5日,ON.Lab推出了一款创新性的网络操作系统——ONOS(Open Network Operating System),对OpenDaylight发起了强有力的挑战。
ONOS直接将自身定位提升到网络操作系统层面。
ON.Lab是哪里冒出来的呢?ON.Lab全名是Open Networking Lab(开放网络实验室),最初是由Parulkar和Nick McKeown共同成立的。没错,就是提出SDN的那个Nick McKeown教授。
On.Lab的某些职能和ONF很类似。2016年10月19日,两个组织宣布正式合并,组成了新的ONF。
就这样,围绕SDN控制器和协议,各大流派及厂商进行了十多年的明争暗斗,并最终形成了现在的局面。
从趋势来看,网络操作系统的概念深入人心,是大势所趋。SDN控制器作为网络操作系统的核心,重要性不言而喻。
未来,随着网络规模的扩大,SDN控制器肯定会继续往分布式的方向发展。控制器之间的分工协作会更加深入,甚至可能出现集群。控制器也会引入NFV虚拟化技术,与OpenStack等云平台进行整合。
好啦,关于SDN的大致发展过程,就介绍到这里。SDN的演进并没有结束,围绕SDN“正主”地位的争夺也没有结束。最终谁将主导未来网络?让我们拭目以待!