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