2006年,斯坦福大学启动了一项名为CleanSlate的研究项目。该课题由美国GENI项目资助,其目的非常明确且雄心勃勃,即——“重塑互联网”。网络创新的全球环境当时的互联网经历了30多年的飞速发展,从最初的小型私有局域网发展成为空前庞大复杂的世界级网络。网络规模的不断扩大,网络设备的不断增加,已经超出了早期设计的能力,给网络维护带来了困难。于是,专家们开始探索未来网络可能的架构,希望在互联网崩溃之前让其重回正轨。GENI项目和CleanSlate项目就是这些尝试之一。2007年,斯坦福大学博士生MartinCasado等人提出了一个关于网络安全和管理的项目——Ethane。本项目试图通过集中控制器将网络管理员制定的安全控制策略下发到各个网络设备,从而实现对整个网络的安全控制。2008年,CleanSlate项目的项目负责人、斯坦福大学教授NickMcKeown及其团队在Ethane项目的启发下,提出了OpenFlow的概念,并发表了经典文章-《OpenFlow : Enabling Innovation in Campus Networks(OpenFlow:校园网的创新使能)》。NickMcKeown和他的文章OpenFlow,字面意思是“开放流”。2009年,基于OpenFlow,NickMckeown教授正式提出SDN(SoftwareDefinedNetwork,软件定义网络)。同年,SDN概念成功入围TechnologyReview年度十大前沿技术,受到业界的广泛关注和重视。12月,OpenFlow规范1.0版正式发布。这是第一个可用于商业产品的版本,这是一个里程碑。在继续介绍SDN的发展历程之前,我们还是需要简单介绍一下SDN的工作原理。SDN的核心思想真的很简单,就是控制和转发分离。我们知道网络的作用是连接。网络的基本功能是通过无数节点(如路由器、交换机)将数据从起点传输到终点。在数据传输过程中,各节点不断接收和转发数据包。控制负责发号施令,转发负责工作。但是,考虑到安全冗余等因素,实际网络肯定不是直线那么简单。这将是一个复杂的拓扑结构。因此,如何下达命令直接决定了网络的效率。在传统网络中,每个转发节点独立工作,内部管理命令和接口为厂商私有,不对外开放。每个节点都在说自己的“方言”。因此,我们可以将其理解为一种“自力更生”的模式。虽然“战略层面”的规划设计可以统一,但“战术层面”的执行却复杂且效率低下。SDN网络就是在网络上建立一个SDN控制器节点,统一管理和控制底层设备的数据转发。所有下层节点都剥离了管理功能(交给SDN控制器),只剩下转发功能。SDN控制下的网络变得更加简单。管理员只需像配置软件一样,通过简单的部署,在网络上实施新的路由转发策略。(如果是传统网络,每个网络设备都需要单独配置。)除了简化部署,SDN更深层的意义在于赋予网络“可编程性”。也就是说,控制与转发分离后,借助标准化的API接口,用户可以通过编写软件来管理网络。整个网络就像一个完整的机器人,可供驾驶。让我们详细了解一下SDN的架构。SDN网络的整体架构分为三层,从上到下分别是应用平面、控制平面和转发平面。整个架构的核心是SDN控制器。从北向南,SDN控制器与应用面通信的接口称为北向接口,也称为北向接口(Northboundinterface)。SDN控制器向下与数据平面通信的接口称为南向接口,也称为CDPI接口(control-data-planeinterface,控制数据平面接口)。北向接口相对容易操作,但麻烦的是南向接口及其协议。因为它直接影响到SDN控制器的命令能否准确地传递到无数底层网络设备中。因此,SDN技术的发展史,简而言之,就是围绕SDN控制器和南向接口的“王位争夺史”。SDN提出后,第一个控制器平台就是NOX。是单一集中式结构的控制器,南向接口采用OpenFlow协议。2011年,谷歌、Facebook、微软等公司联合成立了一个对SDN影响深远的组织,即ONF(OpenNetworkingFoundation,开放网络基金会)。ONF的主要创始成员是德国电信、Facebook、谷歌、微软、雅虎等公司。这些公司要么是网络服务提供商,要么是运营商,都不是来自设备制造商。他们成立ONF的目的是为了推动SDN和OpenFlow协议的发展。他们不希望SDN这种新的网络技术被设备厂商控制,成为设备厂商的赚钱工具。在上述推动者中,最值得一提的是谷歌。如果说NickMckeown教授是点燃??SDN火花的人,那么谷歌显然是将这颗火花传遍全球的关键人物。早在SDN被提出时,谷歌就在寻找提高网络效率的方法。当他们看到SDN时,谷歌确认这就是他们想要的。因此,他们果断决定将SDN应用到自己的数据网络中。2010年,谷歌开始将数据中心之间的网络连接(G-scale)转换为SDN架构。整个转型分为三个阶段。到2012年,整个GoogleB4网络完全切换到OpenFlow网络。GoogleB4是一个私有广域网,连接到遍布全球的Google数据中心。改造后,谷歌B4网络链路带宽利用率提升3倍以上,接近100%。这样的结果无疑是令人震惊的,也更加坚定了业界对SDN的信心。2013年,谷歌在SIGCOMM上发表论文《B4: Experience with a Globally-Deployed Software Defined WAN》,详细介绍了谷歌的广域网加速SDN解决方案。如论文中所述,Google使用的控制器称为ONIX。面对SDN和ONF,设备厂商当然不能无动于衷。2013年4月8日,在Linux基金会的支持下,作为网络设备厂商中的领导者,思科联合IBM、微软等公司发起成立开源组织OpenDaylight,共同开发SDN控制器。ODL的发起者包括:IBM、Microsoft、BigSwitch、Brocade、Citrix、Dell、Ericsson、Fujitsu、Intel、Juniper、NEC、HP、RedHat、VMware……基本上都是厂商OpenDaylight提出来的,而SDN不等于OpenFlow,人们需要“重新定义”SDN。也就是说,OpenDaylight强调SDN控制器不限于OpenFlow,而是应该支持多种南向协议。同时,OpenDaylight也强调应该使用分布式控制平台,而不是单实例控制器。这样可以管理更大的网络,提供更高的性能,并增强系统的安全性和可靠性。OpenDaylight成立后,会员数量迅速增长。但其实每个成员都有自己的算盘。不用说,思科作为OpenDaylight项目的领导者,主导了其中大部分项目的开发。思科一直想把自己的OpFlex推上顶峰。除了Cisco,BigSwitch还推出了BigNetworkController和对应的开源版本Floodlight。Juniper推出了Contrial和对应的开源版本OpenContrial。总而言之,这段时间各种SDN控制器都处于百家争鸣的状态,发展势头非常好。当时几家主流的SDN控制器凭借着数量优势,OpenDaylight成为了业内最有影响力的技术组织之一。就在OpenDaylight大放异彩之际,又一个剧透出现了。2014年12月5日,ON.Lab推出了创新的网络操作系统——ONOS(OpenNetworkOperatingSystem),向OpenDaylight发起了强有力的挑战。ONOS直接将定位提升到网络操作系统层面。ON.Lab是从哪里冒出来的?ON.Lab的全称是OpenNetworkingLab(开放网络实验室),最初由Parulkar和NickMcKeown共同创立。没错,就是NickMcKeown教授提出SDN的。On.Lab的一些功能与ONF类似。2016年10月19日,两个组织宣布正式合并,组成新的ONF。就这样,围绕着SDN控制器和协议,各大学校和厂商明争暗斗了十几年,终于形成了现在的局面。从趋势来看,网络操作系统的概念深入人心,是大势所趋。SDN控制器作为网络操作系统的核心,其重要性不言而喻。未来随着网络规模的扩大,SDN控制器必将继续向分布式方向发展。controller之间的分工会更加深入,甚至可能出现集群。控制器还将引入NFV虚拟化技术,与OpenStack等云平台集成。好了,SDN的大致发展过程就介绍到这里了。SDN的演进并没有结束,SDN“当家作主”地位的争夺也没有结束。谁将最终主宰未来网络?让我们拭目以待!
