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