SDN網(wǎng)絡(luò)構(gòu)架及發(fā)展歷史
SDN的特點(diǎn)之一就是控制平面與數(shù)據(jù)平面分離,其主張通過集中式的控制器平臺(tái)實(shí)現(xiàn)網(wǎng)絡(luò)的控制。在SDN架構(gòu)中,控制平面是邏輯集中的,通過某種協(xié)議將控制信息下發(fā)至底層的數(shù)據(jù)平面去執(zhí)行。所以,控制平面被稱為SDN的大腦,指揮整個(gè)數(shù)據(jù)網(wǎng)絡(luò)的運(yùn)行。
得益于集中控制的優(yōu)勢(shì),控制平面的存在使得網(wǎng)絡(luò)的部署和配置更加智能和簡化。支持編程的SDN控制平面使得網(wǎng)絡(luò)更加智能,更加靈活和易于拓展??刂破魍ㄟ^SDN的南向協(xié)議的API可以對(duì)數(shù)據(jù)層面的網(wǎng)元設(shè)備下發(fā)指令,完成控制平面與數(shù)據(jù)平面的控制傳輸。目前,在SDN領(lǐng)域中,OpenFlow協(xié)議是最流行的南向協(xié)議之一。2008年,SDN和OpenFlow一起誕生于斯坦福大學(xué)。
SDN出現(xiàn)初期,控制平面的表現(xiàn)形式更多的是以單實(shí)例的控制器出現(xiàn)。實(shí)現(xiàn)SDN的協(xié)議也是以O(shè)penFlow為主,所以在SDN發(fā)展初期,SDN控制器更多指的是OpenFlow控制器。SDN出現(xiàn)之后,ONF[1]成立。ONF(Open Network FoundaTIon),中文名為“開放網(wǎng)絡(luò)基金會(huì)” ,是致力于推進(jìn)SDN標(biāo)準(zhǔn)化的一個(gè)用戶驅(qū)動(dòng)的組織。在ONF的白皮書中,提出了SDN的架構(gòu)標(biāo)準(zhǔn),SDN架構(gòu)1.0版本和1.1版本分別如圖1和 圖2所示。
圖1 SDN網(wǎng)絡(luò)架構(gòu)1.0版本
圖2 SDN網(wǎng)絡(luò)架構(gòu)1.1版本
第一款SDN控制器是NOX,目前NOX的社區(qū)狀態(tài)已經(jīng)不再活躍。在早期的SDN論文中,NOX作為唯一的控制器,發(fā)揮了重要的作用。NOX給后來的控制器開發(fā)提供了很好的范例,高層級(jí)的編程架構(gòu)。然而,由于其使用C語言編寫,給開發(fā)SDN應(yīng)用帶來了許多困難,逐漸在控制器競爭中失去優(yōu)勢(shì)。在NOX出現(xiàn)不久之后,其兄弟版本POX面世。POX的內(nèi)部機(jī)制和NOX一樣,但是采用Python語言開發(fā)。在SDN發(fā)展初期,POX也扮演了相當(dāng)重要的角色,許多SDN學(xué)習(xí)者都接觸過POX。POX因其簡單,易入門而得到廣泛的關(guān)注和使用,成為SDN入門,學(xué)習(xí)SDN控制器的很好選擇。然而,隨著技術(shù)的發(fā)展,更多優(yōu)秀的控制器,如2012年采用Python語言開發(fā)的控制器代表Ryu,2013年采用Java語言開發(fā)的控制器代表FloodLight等紛紛涌現(xiàn)。他們具有更加成熟的架構(gòu),更加優(yōu)秀的性能,相比之下,POX不具有優(yōu)勢(shì),慢慢在控制器的競爭中處于下風(fēng)。目前POX的開源社區(qū)還是活躍狀態(tài),由Murphy McCauley繼續(xù)運(yùn)營社區(qū)。
Ryu是日本NTT公司開發(fā)的模塊化的控制器。Ryu因其架構(gòu)清晰,支持OpenFlow全部版本,有社區(qū)的Plug-in集成到OpenStack,性能良好和文檔齊全等優(yōu)點(diǎn)獲得了許多SDN研究者的關(guān)注。同樣,在Beacon上改進(jìn)而來的FloodLight,以其企業(yè)級(jí)別的優(yōu)秀性能,開發(fā)效率更高的Java語言,模塊化的設(shè)計(jì)等優(yōu)點(diǎn)得到了喜歡Java語言的SDN研究者的青睞。此時(shí)的SDN控制器側(cè)重于提升單例性能,支持的南向協(xié)議也是以O(shè)penFlow為主。筆者認(rèn)為可以稱之為OpenFlow式SDN的控制器發(fā)展中期。然而這個(gè)時(shí)期非常短。
SDN經(jīng)過幾年的發(fā)展,成為趨勢(shì)的勢(shì)頭逐漸浮出水面。SDN控制器的發(fā)展也因一個(gè)重要的SDN“控制器”而展開新的篇章。2013年,由Linux FoundaTIon和多家網(wǎng)絡(luò)巨頭如Cisco、Juniper和Broadcom等公司一起創(chuàng)立的開源項(xiàng)目OpenDaylight。其贊助商、發(fā)起者多為設(shè)備廠商而非運(yùn)營商等消費(fèi)者,其目的在于推出一個(gè)通用的SDN控制平臺(tái)。OpenDaylight不僅僅是一個(gè)SDN控制器,它更是一個(gè)龐大的開源項(xiàng)目,其中包含許多子項(xiàng)目,而Controller只是其中的一個(gè)子項(xiàng)目。OpenDaylight支持多種南向協(xié)議,包括OpenFlow(支持1.0和1.3版本)、Netconf和OVSDB等,是一個(gè)廣義的SDN控制平臺(tái),而不是OpenFlow系的狹義SDN控制器。
OpenDaylight的誕生意味著SDN進(jìn)入一個(gè)嶄新的時(shí)期。此時(shí)SDN的概念發(fā)生了改變。SDN控制器應(yīng)支持多南向協(xié)議,而不僅僅局限于OpenFlow,當(dāng)然這給我們帶來了很多想象空間,會(huì)被巨頭引導(dǎo)走向不夠開放的另一端嗎?SDN控制器應(yīng)該支持分布式集群,即單實(shí)例的控制器變成了分布式的控制平臺(tái)。分布式的控制平臺(tái)不僅可以管理更大的網(wǎng)絡(luò),性能更好,還可以相互容災(zāi)備份,提升系統(tǒng)的可靠性。在分布式系統(tǒng)盛行的今天,SDN控制器雖邏輯集中但也需要架構(gòu)上分布。
OpenDaylight的社區(qū)的會(huì)員很多,早期的會(huì)員多為設(shè)備商。各個(gè)廠商均竭盡所能得把自己的思想,產(chǎn)品放到OpenDaylight項(xiàng)目中,如Cisco的OpFlex。雖然多家廠商參與社區(qū)的維護(hù)和OpenDaylight的開發(fā),但是大多數(shù)項(xiàng)目還是Cisco在主導(dǎo)開發(fā)。在角力的過程中,有的企業(yè)就會(huì)有其他的打算,如Big Switch Networks推出OpenDaylight, Juniper將經(jīng)歷轉(zhuǎn)向了自己的Open Contrial。 OpenContrial是Juniper的商業(yè)控制器Contrial的開源版本,其使用C++語言編寫,支持OpenFlow協(xié)議和Netconf等南向協(xié)議。不過相比之下也有跟進(jìn)的企業(yè),如HP,就增加了對(duì)OpenDaylight的投入,將自己升級(jí)到了鉑金會(huì)員。Huawei則兵分多路,一部分人開發(fā)OpenDaylight,另一部分人則參與了新生代的控制平臺(tái)ONOS的開發(fā),還有其他很大一部分人在進(jìn)行華為敏捷智能網(wǎng)絡(luò)控制器SNC的開發(fā)。雖然OpenDaylight社區(qū)勢(shì)力眾多,各自想法也不一樣,但是這并不影響OpenDaylight的性能和在SDN研究者心目中的地位,OpenDaylight依然憑借自己社區(qū)強(qiáng)大的技術(shù),在SDN控制器的競爭中成為最具有影響力的控制器之一。許多企業(yè)在自己的產(chǎn)品中或者網(wǎng)絡(luò)中使用到了OpenDaylight, 比如Brocade一直推基于OpenDaylight的商業(yè)控制器Vyatta。騰訊也在最新的技術(shù)分享中提到使用了OpenDaylight管理自己的數(shù)據(jù)中心網(wǎng)絡(luò)。
從2013年底到2014年底這段時(shí)間內(nèi),OpenDaylight可謂風(fēng)光無限,提到SDN幾乎都會(huì)提到OpenDaylight,仿佛OpenDaylight就是SDN控制器的最終形態(tài)和最終歸屬。這一局面,在2014年12月5日被打破了。由On.Lab開發(fā)的ONOS面世了。ONOS(Open Network OperaTIng System)是一款同樣采用Java語言編寫,采用OSGi架構(gòu),同樣分布式的控制平臺(tái)產(chǎn)品。其目標(biāo)是打造一個(gè)開放的SDN網(wǎng)絡(luò)操作系統(tǒng),市場定位在運(yùn)行商級(jí)別網(wǎng)絡(luò)市場。ONOS底層模塊直接借用FloodLight優(yōu)秀的模塊如Switch模塊,不使用YANG語言建模,最新版本使用Raft作為分布式框架。突然之間,OpenDaylight遇到了競爭對(duì)手。雖然截至2015年之前,并沒有使用ONOS的案例,但是在未來,憑借自身的優(yōu)秀性能,ONOS可以取得一部分市場。
SDN開源控制器除了這些比較出名的之外,也有其他用戶比較少的控制器,如Trame,FlowER, LOOM等。筆者參考SDxCentral最新的SDN控制器的數(shù)據(jù),將目前SDN開源控制器是否活躍情況列舉如下表,先后順序無關(guān)。
然而目前最神秘,最出名的控制應(yīng)該不是以上提到的任何一個(gè)控制器,而是Google的分布式控制器ONIX,ONIX目前沒有開源,相關(guān)資料非常少。目前由Nicira、NTT和Google共同開發(fā)。2013年,Google在SIGCOMM上發(fā)表了論文《B4: Experience with a Globally-Deployed Software Defined WAN》[3],論文介紹了Google的WAN加速SDN方案,其中使用的控制器就是ONIX。論文發(fā)布時(shí),B4已經(jīng)運(yùn)行了3年,除了發(fā)生過Datapath_id相同導(dǎo)致的錯(cuò)誤以外,基本正常運(yùn)行。該方案將帶寬利用率提升到了接近100%的恐怖利用率。也即2010年Google已經(jīng)開發(fā)出了整套方案,然后上線運(yùn)行,很明顯,Google和整個(gè)技術(shù)發(fā)展不在一個(gè)時(shí)期,這個(gè)案例也是SDN支持者心中的最有力的論據(jù)。
除了ONIX之外,還有許多閉源的商業(yè)控制器,如HP的VAN(Virtual ApplicaTIons Networks)控制器,武漢綠網(wǎng)的GNflush等,更多商業(yè)控制器的內(nèi)容可參考SDxCentral的SDN-Controller-Report 2015B[4]。
影響SDN控制器發(fā)展的因素除了技術(shù)因素以外,還有重要的非技術(shù)因素,如行業(yè)企業(yè)對(duì)技術(shù)的態(tài)度等。企業(yè)在制定SDN戰(zhàn)略時(shí)都是從自身的利益出發(fā)的,這些戰(zhàn)略很大程度上影響著SDN的發(fā)展。在一項(xiàng)技術(shù)的發(fā)展過程中,行業(yè)巨頭等企業(yè)的戰(zhàn)略等非技術(shù)因素會(huì)對(duì)技術(shù)的發(fā)展曲線,發(fā)展方向產(chǎn)生非常大的影響。
自SDN發(fā)展以來,業(yè)界聲音不一。支持者聲稱這將改變傳統(tǒng)網(wǎng)絡(luò),打破目前固化的網(wǎng)絡(luò)架構(gòu),帶來更靈活,更智能的網(wǎng)絡(luò);而反對(duì)者則認(rèn)為這并沒有良好的發(fā)展前途,因?yàn)榉植际降膬?yōu)點(diǎn)足以支撐目前的網(wǎng)絡(luò)運(yùn)行,而SDN所提倡的集中式雖有優(yōu)點(diǎn),但劣勢(shì)多于優(yōu)勢(shì)。這些聲音代表了不同利益陣營,所以處于不同利益陣營的企業(yè)對(duì)SDN的態(tài)度也不一而足。如傳統(tǒng)巨頭Cisco,態(tài)度就很微妙。對(duì)于Cisco而言,如果不支持SDN,那么萬一SDN真成為下一個(gè)潮流,那么市場損失過大,影響行業(yè)地位。如果完全支持,那么在SDN這個(gè)嶄新的戰(zhàn)場,市場重新布局,門檻降低,更多競爭者進(jìn)入,且追趕者Huawei等企業(yè)也會(huì)趁機(jī)大力發(fā)展SDN,最終SDN格局還無法明朗。所以Cisco一方面投入研發(fā)精力研究SDN,另一方面,劍走偏鋒,推出自己的ACI(Application Centric Infrustructure),企圖另辟蹊徑占領(lǐng)SDN市場。ACI也是一種廣義上的SDN。其控制器為APIC( Application Policy Infrastructure Controller),但他區(qū)別于我們所理解的之前提到的控制器,他并不負(fù)責(zé)指揮數(shù)據(jù)層面如何轉(zhuǎn)發(fā)流量,所以在ACI中,底層設(shè)備Nexus9000才是重點(diǎn),而非控制器。其使用的南向協(xié)議也避開了OpenFlow,而使用了私有協(xié)議OpFlex。如此一來,成功避開了SDN白牌交換機(jī)的沖擊,成功將戰(zhàn)場引到了擁有技術(shù)壁壘的數(shù)據(jù)層面產(chǎn)品上。
對(duì)于傳統(tǒng)網(wǎng)絡(luò)行業(yè)巨頭而言,目前穩(wěn)定市場布局對(duì)自己有利,自然不希望新技術(shù)打破這一平衡,所以他們對(duì)于SDN的態(tài)度往往是不夠積極。但是為了防止新技術(shù)的沖擊,他們一定會(huì)跟進(jìn),也一定會(huì)想辦法推出兼容產(chǎn)品或者競爭產(chǎn)品,力圖在新技術(shù)市場上占據(jù)有利地位。除了投入研發(fā)精力跟進(jìn)外,還會(huì)對(duì)有希望的創(chuàng)業(yè)公司進(jìn)行技術(shù)收購。若創(chuàng)業(yè)公司成長壯大,那么收購是成功的,如果創(chuàng)業(yè)公司失敗,那也沒有太大關(guān)系,這筆投資對(duì)于巨頭而言并不是大事。技術(shù)收購的策略在技術(shù)發(fā)展過程經(jīng)常被使用,所以近些年關(guān)于SDN創(chuàng)業(yè)公司被收購的新聞屢見不鮮,相信在SDN發(fā)展的道路上,技術(shù)收購還會(huì)繼續(xù)發(fā)生。
對(duì)于第二陣營或者新技術(shù)公司而言,必然大力支持SDN的發(fā)展。如Huawei大力投入研發(fā)精力研發(fā)SDN相關(guān)產(chǎn)品。不僅在開源項(xiàng)目方面參與OpenDaylight項(xiàng)目,還參與ONOS項(xiàng)目,一方面,跟進(jìn)OpenDaylight項(xiàng)目不落后,另一方面,企圖通過ONOS項(xiàng)目來爭取更多的市場。此外,Huawei也大力發(fā)展SNC控制器等SDN產(chǎn)品。和Huawei類似的,HP也在投入精力發(fā)展SDN,不僅推出了自己的SDN控制器產(chǎn)品,也推出了SDN交換機(jī)等數(shù)據(jù)平面產(chǎn)品。新技術(shù)公司方面,國內(nèi)的盛科,國外的PICA8等交換機(jī)廠家已經(jīng)抓住SDN發(fā)展的機(jī)會(huì),推出了許多數(shù)據(jù)平面產(chǎn)品,占據(jù)了一定的SDN市場。配套的數(shù)據(jù)平面產(chǎn)品的推出必將推動(dòng)SDN控制平面的發(fā)展及落地。
SDN的發(fā)展也給更多的其他領(lǐng)域的競爭者入足的機(jī)會(huì),虛擬化產(chǎn)品巨頭VMware就是一個(gè)很好的例子。瞄準(zhǔn)SDN的市場之后,VMware收購了創(chuàng)業(yè)公司Nicira,在其Network Virtualization Platform (NVP) 的基礎(chǔ)之上,結(jié)合自己的vCloud Networking and Security (vCNS) 推出了NSX,從而占據(jù)了數(shù)據(jù)中心網(wǎng)絡(luò)虛擬化的一部分市場,加入了SDN市場的競爭。新的SDN產(chǎn)品的推出,也給業(yè)界推動(dòng)SDN發(fā)展的信心,從而促進(jìn)SDN控制平面的發(fā)展。
筆者認(rèn)為,隨著技術(shù)的發(fā)展,網(wǎng)絡(luò)規(guī)模的擴(kuò)大,SDN控制器將出現(xiàn)分級(jí)分域的概念,多控制器之間將出現(xiàn)協(xié)同工作的功能。即管理不同網(wǎng)絡(luò)的控制器運(yùn)行對(duì)應(yīng)的應(yīng)用,而不同控制器之間通過東西向接口進(jìn)行信息同步,從而完成全網(wǎng)的管理。目前在OpenDaylight中實(shí)現(xiàn)的SDNi協(xié)議即是一種SDN東西向協(xié)議的實(shí)現(xiàn)方法。未來的SDN控制平面應(yīng)該是局域集群,全局分級(jí)的架構(gòu)。此外,未來的SDN控制平臺(tái)會(huì)成為網(wǎng)絡(luò)操作系統(tǒng)形式的存在,目前ONOS就是網(wǎng)絡(luò)操作系統(tǒng)的示范。除此之外,SDN控制平臺(tái)將和OpenStack等云管理平臺(tái)整合運(yùn)作,這也是當(dāng)下控制器的一個(gè)趨勢(shì)之一。雖然開發(fā)者可以在SDN控制平面上開發(fā)部署很多應(yīng)用,但是未來的SDN控制器將面對(duì)特定的網(wǎng)絡(luò)運(yùn)行特定的應(yīng)用,而不會(huì)運(yùn)行全部的應(yīng)用,甚至于根據(jù)不同場景,出現(xiàn)不同的版本的控制平臺(tái)。
SDN控制器的競爭最終會(huì)優(yōu)勝劣汰,剩下幾款經(jīng)典的控制器分別占領(lǐng)不同的市場,正如當(dāng)下的計(jì)算機(jī)操作系統(tǒng)一般。即不會(huì)有任何一款控制器壟斷整個(gè)市場,不同的控制器將會(huì)相互競爭相互促進(jìn)。此外,短期之內(nèi)OpenFlow不會(huì)失去競爭力,但最終同樣會(huì)存在多種南向協(xié)議相互競爭,競爭是常態(tài),是技術(shù)發(fā)展的源泉。