2006 年,美國(guó)斯坦福大學(xué)啟動(dòng)了一個(gè)名叫 Clean Slate 的研究課題。該課題由美國(guó) GENI 項(xiàng)目資助,目的非常明確且宏大,就是——“重塑互聯(lián)網(wǎng)”。
Global Environment for Network Innovations
當(dāng)時(shí)的互聯(lián)網(wǎng),已經(jīng)歷經(jīng)了 30 多年的高速發(fā)展,從最初的小型專(zhuān)用局域網(wǎng)絡(luò),變成了空前龐大和復(fù)雜的世界級(jí)網(wǎng)絡(luò)。
網(wǎng)絡(luò)規(guī)模的持續(xù)擴(kuò)張,網(wǎng)絡(luò)設(shè)備的不斷增加,超過(guò)了早期設(shè)計(jì)的承受能力,也使得網(wǎng)絡(luò)維護(hù)變得舉步維艱。
于是,專(zhuān)家們開(kāi)始探討未來(lái)網(wǎng)絡(luò)的可能性架構(gòu),希望在互聯(lián)網(wǎng)崩潰之前,將它拉回正軌。而 GENI 項(xiàng)目和 Clean Slate 課題,就是這些嘗試之一。
2007 年,斯坦福大學(xué)博士生 Martin Casado 等人提出了關(guān)于網(wǎng)絡(luò)安全與管理的項(xiàng)目——Ethane。
該項(xiàng)目試圖通過(guò)一個(gè)集中式的控制器,將網(wǎng)絡(luò)管理人員制定的安全控制策略,下發(fā)到各個(gè)網(wǎng)絡(luò)設(shè)備中,從而實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)的安全控制。
?
2008 年,Clean Slate 課題的項(xiàng)目負(fù)責(zé)人,斯坦福大學(xué)教授 Nick McKeown 及其團(tuán)隊(duì),受到 Ethane 項(xiàng)目的啟發(fā),提出了 OpenFlow 的概念,并發(fā)布了那篇經(jīng)典的文章——《OpenFlow : Enabling Innovation in Campus Networks(OpenFlow:校園網(wǎng)的創(chuàng)新使能)》。
Nick McKeown 和他的文章
?
OpenFlow,字面意思就是“開(kāi)放的流”。
2009 年,基于 OpenFlow,Nick Mckeown 教授正式提出了 SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))。
同年,SDN 概念成功入圍 Technology Review 年度十大前沿技術(shù),獲得了行業(yè)的廣泛關(guān)注和重視。
12 月份,OpenFlow 規(guī)范的 1.0 版本正式發(fā)布。這是首個(gè)可用于商業(yè)化產(chǎn)品的版本,具有里程碑意義。
在繼續(xù)介紹 SDN 發(fā)展歷程之前,我們還是要稍微介紹一下 SDN 的工作原理。
SDN 的核心思想真的很簡(jiǎn)單,就是控制和轉(zhuǎn)發(fā)分離。
我們知道,網(wǎng)絡(luò)的作用就是連接。通過(guò)無(wú)數(shù)的節(jié)點(diǎn)(例如路由器、交換機(jī)),將數(shù)據(jù)從起點(diǎn)傳送到終點(diǎn),這就是網(wǎng)絡(luò)的基本功能。
數(shù)據(jù)傳輸過(guò)程中,各節(jié)點(diǎn)不斷接收和轉(zhuǎn)發(fā)數(shù)據(jù)包??刂曝?fù)責(zé)下命令,轉(zhuǎn)發(fā)負(fù)責(zé)干活。然而,考慮到安全冗余等因素,現(xiàn)實(shí)中的網(wǎng)絡(luò)絕對(duì)不會(huì)是一條直線(xiàn)那么簡(jiǎn)單。它會(huì)是一個(gè)復(fù)雜的拓?fù)浣Y(jié)構(gòu)。
于是,命令該怎么下,直接決定了網(wǎng)絡(luò)的效率。
傳統(tǒng)網(wǎng)絡(luò)中,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)都是獨(dú)立工作的,內(nèi)部管理命令和接口也是廠商私有的,不對(duì)外開(kāi)放。
每個(gè)節(jié)點(diǎn),都在說(shuō)各自的“方言”
所以,我們可以把它理解為“各自為戰(zhàn)”的模式。雖然“戰(zhàn)略層面”的規(guī)劃和設(shè)計(jì)可能是統(tǒng)一的,但“戰(zhàn)術(shù)層面”的執(zhí)行卻是復(fù)雜且低效的。
而 SDN 網(wǎng)絡(luò),就是在網(wǎng)絡(luò)之上建立了一個(gè) SDN 控制器節(jié)點(diǎn),統(tǒng)一管理和控制下層設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)。所有的下級(jí)節(jié)點(diǎn),管理功能被剝離(交給了 SDN 控制器),只剩下轉(zhuǎn)發(fā)功能。
SDN 控制下的網(wǎng)絡(luò),變得更加簡(jiǎn)單。管理者只需要像配置軟件一樣,進(jìn)行簡(jiǎn)單部署,就可以讓網(wǎng)絡(luò)實(shí)現(xiàn)新的路由轉(zhuǎn)發(fā)策略。(如果是傳統(tǒng)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)設(shè)備都需要單獨(dú)配置。)
除了簡(jiǎn)化部署之外,SDN 更深層次的意義,是賦予了網(wǎng)絡(luò)的“可編程性”。
也就是說(shuō),控制和轉(zhuǎn)發(fā)分離之后,借助規(guī)范化的 API 接口,用戶(hù)可以通過(guò)編寫(xiě)軟件的方式,對(duì)網(wǎng)絡(luò)進(jìn)行管理。整個(gè)網(wǎng)絡(luò),就像個(gè)完整的機(jī)器人一樣可供驅(qū)使。
我們具體來(lái)看看 SDN 的架構(gòu)。
SDN 網(wǎng)絡(luò)的整體架構(gòu),分為三層,從上到下分別是應(yīng)用平面、控制平面和轉(zhuǎn)發(fā)平面。
整個(gè)架構(gòu)的核心,就是 SDN 控制器。
上北下南,SDN 控制器向上與應(yīng)用平面進(jìn)行通信的接口,叫做北向接口,也叫 NBI 接口(northbound interface)。SDN 控制器向下與數(shù)據(jù)平面進(jìn)行通信的接口,叫做南向接口,也叫 CDPI 接口(control-data-plane interface,控制數(shù)據(jù)平面接口)。
北向接口相對(duì)來(lái)說(shuō)比較好搞,麻煩的是南向接口及其協(xié)議。因?yàn)樗苯佑绊懙?SDN 控制器的命令能否準(zhǔn)確下達(dá)到無(wú)數(shù)的底層網(wǎng)絡(luò)設(shè)備。
因此,SDN 技術(shù)的發(fā)展史,簡(jiǎn)而言之,就是圍繞 SDN 控制器和南向接口的“王位爭(zhēng)奪史”。
在 SDN 被提出之后,第一個(gè)控制器平臺(tái)是 NOX。它是一種單一集中式結(jié)構(gòu)的控制器,南向接口采用的是 OpenFlow 協(xié)議。
2011 年,由 Google、Facebook、微軟等公司共同發(fā)起成立了一個(gè)對(duì) SDN 影響深遠(yuǎn)的組織,那就是 ONF(Open Networking Foundation,開(kāi)放網(wǎng)絡(luò)基金會(huì))。
ONF 的主要發(fā)起成員是德國(guó)電信、Facebook、Google、微軟、雅虎等公司。
這些公司要么是網(wǎng)絡(luò)服務(wù)提供商,要么是運(yùn)營(yíng)商,沒(méi)有一個(gè)是來(lái)自設(shè)備商的。他們成立 ONF 的目的,是為了推動(dòng) SDN 和 OpenFlow 協(xié)議的發(fā)展。他們不希望 SDN 這個(gè)網(wǎng)絡(luò)新技術(shù)又被設(shè)備商控制,成為設(shè)備商的賺錢(qián)工具。
上述發(fā)起人里面,最值得一提的是 Google。
如果說(shuō) Nick Mckeown 教授是點(diǎn)燃 SDN 星星之火的人,那么,Google 顯然是將星星之火燒遍全球的關(guān)鍵角色。
早在 SDN 被提出之外,Google 就在尋找提升自身網(wǎng)絡(luò)效率的方法。當(dāng)看到 SDN 之后,Google 確認(rèn),這就是他們想要的。于是,他們果斷決定將 SDN 應(yīng)用于自己的數(shù)據(jù)網(wǎng)絡(luò)。
2010 年,Google 開(kāi)始將數(shù)據(jù)中心與數(shù)據(jù)中心之間的網(wǎng)路連線(xiàn)(G-scale),轉(zhuǎn)換成 SDN 架構(gòu)。整個(gè)改造分為三個(gè)階段。到了 2012 年,整個(gè) Google B4 網(wǎng)絡(luò)完全切換到了 OpenFlow 網(wǎng)絡(luò)。
Google B4 是一種橫跨整個(gè)地球的連接到谷歌數(shù)據(jù)中心私有廣域網(wǎng)。
改造之后,Google B4 網(wǎng)絡(luò)的鏈路帶寬利用率提高了 3 倍以上,接近 100%。
這樣的結(jié)果毫無(wú)疑問(wèn)是令人震撼的,也堅(jiān)定了行業(yè)對(duì) SDN 的信心。
2013 年,Google 在 SIGCOMM 上發(fā)表了論文《B4: Experience with a Globally-Deployed Software Defined WAN》,詳細(xì)介紹了 Google 的 WAN 加速 SDN 方案。論文中提及,Google 使用的控制器名叫 ONIX。
面對(duì) SDN 和 ONF,設(shè)備商當(dāng)然也不能無(wú)動(dòng)于衷。
2013 年 4 月 8 日,在 Linux 基金會(huì)的支持下,作為網(wǎng)絡(luò)設(shè)備商的領(lǐng)導(dǎo)者,Cisco 與 IBM、微軟等公司一起,發(fā)起成立了開(kāi)源組織 OpenDaylight,共同開(kāi)發(fā) SDN 控制器。
?
ODL 的發(fā)起公司有:IBM、微軟、Big Switch、博科、思杰、戴爾、愛(ài)立信、富士通、英特爾、Juniper、NEC、惠普、紅帽和 VMware……基本都是廠商
OpenDaylight 提出,SDN 不等于 OpenFlow,人們需要對(duì) SDN 進(jìn)行“重新定義”。
也就是說(shuō),OpenDaylight 強(qiáng)調(diào) SDN 控制器不僅僅局限于 OpenFlow,而是應(yīng)該支持多種南向協(xié)議。
同時(shí),OpenDaylight 還強(qiáng)調(diào),應(yīng)該用分布式的控制平臺(tái),取代單實(shí)例的控制器。這樣可以管理更大的網(wǎng)絡(luò),提供更強(qiáng)勁的性能,還能增強(qiáng)系統(tǒng)的安全性和可靠性。
OpenDaylight 成立之后,成員數(shù)量增長(zhǎng)迅速。但實(shí)際上,各個(gè)成員都有自己的小算盤(pán)。
Cisco 就不用說(shuō)了,作為 OpenDaylight 項(xiàng)目的牽頭人,它主導(dǎo)了其中大部分項(xiàng)目的開(kāi)發(fā)。Cisco 也一直想推自家的 OpFlex 上位。
除了 Cisco 之外,Big Switch 推出 Big Network Controller 以及對(duì)應(yīng)的開(kāi)源版本 Floodlight。Juniper 推出的是 Contrial 以及對(duì)應(yīng)的開(kāi)源版本 OpenContrial。
總而言之,這一時(shí)期各種各樣的 SDN 控制器處于百家爭(zhēng)鳴的狀態(tài),發(fā)展勢(shì)頭一片大好。
當(dāng)時(shí)比較主流的幾種 SDN 控制器
仗著人多勢(shì)眾,OpenDaylight 也成了行業(yè)里最具影響力的技術(shù)組織之一。
就在 OpenDaylight 風(fēng)光無(wú)限的時(shí)候,又殺出了一個(gè)攪局者。
2014 年 12 月 5 日,ON.Lab 推出了一款創(chuàng)新性的網(wǎng)絡(luò)操作系統(tǒng)——ONOS(Open Network Operating System),對(duì) OpenDaylight 發(fā)起了強(qiáng)有力的挑戰(zhàn)。
ONOS 直接將自身定位提升到網(wǎng)絡(luò)操作系統(tǒng)層面。
ON.Lab 是哪里冒出來(lái)的呢?ON.Lab 全名是 Open Networking Lab(開(kāi)放網(wǎng)絡(luò)實(shí)驗(yàn)室),最初是由 Parulkar 和 Nick McKeown 共同成立的。沒(méi)錯(cuò),就是提出 SDN 的那個(gè) Nick McKeown 教授。
On.Lab 的某些職能和 ONF 很類(lèi)似。2016 年 10 月 19 日,兩個(gè)組織宣布正式合并,組成了新的 ONF。
就這樣,圍繞 SDN 控制器和協(xié)議,各大流派及廠商進(jìn)行了十多年的明爭(zhēng)暗斗,并最終形成了現(xiàn)在的局面。
從趨勢(shì)來(lái)看,網(wǎng)絡(luò)操作系統(tǒng)的概念深入人心,是大勢(shì)所趨。SDN 控制器作為網(wǎng)絡(luò)操作系統(tǒng)的核心,重要性不言而喻。
未來(lái),隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,SDN 控制器肯定會(huì)繼續(xù)往分布式的方向發(fā)展??刂破髦g的分工協(xié)作會(huì)更加深入,甚至可能出現(xiàn)集群。控制器也會(huì)引入 NFV 虛擬化技術(shù),與 OpenStack 等云平臺(tái)進(jìn)行整合。
好啦,關(guān)于 SDN 的大致發(fā)展過(guò)程,就介紹到這里。SDN 的演進(jìn)并沒(méi)有結(jié)束,圍繞 SDN“正主”地位的爭(zhēng)奪也沒(méi)有結(jié)束。最終誰(shuí)將主導(dǎo)未來(lái)網(wǎng)絡(luò)?讓我們拭目以待!