網絡是數據中心里唯一一塊未開放的處女地,網絡協議實現具有私有屬性,導致網絡廠商之間的壁壘長期無法打破。早就有不少人看不慣這一點,尤其是數據中心用戶,不同網絡廠商的設備操作和配置風格不同,相同的協議實現上各有不同,很多還是自定義的私有協議,無法與其它廠商的設備互通,這給數據中心運維的工作帶來了極大難度。一個網絡工程師往往要學習幾家網絡設備的操作風格和配置特點,還要學習很多私有網絡技術,網絡運維起來難度很大,這使得只有網絡這部分,數據中心需要購買一些服務,尤其是原廠的服務,以便可以在運維的過程中能夠得到幫助,這給數據中心帶來了諸多不便。讓網絡由封閉走向開放,是當前數據中心的主要訴求。
已經有不少的技術采用開源技術,這促進了整個行業的蓬勃發展。使用開源技術,可以避免廠商鎖定,并在市場上贏得一席之地,可互操作性和集成,并且能大幅降低使用成本。最成功的要屬Linux、Android這些開源操作系統,由于是開源的,獲得了最廣泛的用戶使用,軟件成熟得也最快。網絡技術實際上有很多開放的標準,絕大多數的廠商還是能夠遵守的,這些開放的標準有效地定義了互連接口,對具體實現并沒有說明,這樣各個網絡廠商實現上就有所差異,最終實現上的差異導致互通上的困難,而作為網絡設備如果不能與其它設備互聯互通的話,也就失去了網絡設備的最根本屬性。顯然僅是有開放的標準還是不行,還是需要有開源的代碼,這些開源代碼可以定義行為,確保可測試并且易于理解,可快速移動和修改,提供一些公共開放的接口。現有的網絡設備是將軟件和硬件結合到一起的,這樣軟件與硬件是緊耦合的,軟件上的修改很大地方都做了修改去適配獨有的硬件設備。比如現在市面上的思科的IOS網絡操作系統,華為的Qudiway網絡操作系統以及華三的Comware網絡操作系統,這些操作系統均與自己的硬件設備緊密結合,但都有其私有屬性,無法用于其它廠商的設備上。SDN技術的出現打破了這種封閉,要將網絡設備軟件從硬件設備中脫離出來,這樣不僅使用通用的軟件就可以管理和控制網絡設備,還可能便于網絡管理,縮短業務部署的時間。這對傳統的網絡廠商不是什么好消息,本來傳統網絡廠商靠賣網絡硬件設備也是夠吃上幾年,現在不得不做出改變了。
現在開源的網絡項目可不少,這里挑主要的說:OpenStack是對整個IT行業的編排,比如提供網絡服務的Neutron組件;OpenDaylight是全網絡行業范圍的SDN控制器;Open vSwitch是Linux內核中的可編程軟件,可以通過Linux服務器實現虛擬交換的功能;其它的還有Open Network Linux、ONOS、CloudRouter、Quagga、OVN、ONIE、Open Compute等等,現在OpenDaylight發展走在了最前面,幾乎成為了開源網絡技術的排頭兵。OpenDaylight是Linux Foundation組織實施的一個開源軟件(Open Source Software)項目,旨在通過創建一個全行業支持的通用平臺來進一步推動SDN的普及和創新。OpenDaylight有自己的社區,里面有大量愿意腳踏實地做出共享的人員組成,平均每月有近千項提交,并具有強大的集成和測試社區,這使得SDN理論和實踐都發展很快,很快出現了較為成熟的開源軟件版本。最新的軟件版本已基本具備了實際應用的水平。
當然,OpenDaylight仍在不斷進步完善當中,當在實際網絡環境中部署時總會遇到這樣那樣的問題。當前的網絡是利用四十年前的代碼和經驗構建的,正所謂“冰凍三尺,非一日之寒”,網絡技術發展到今天,這么多年早已形成固有模式,改革起來難度阻力很大。首先,不同網絡不同設備對SDN的支持程度不同,這種混合網絡很難通過一個統一的網絡軟件控制器來控制。實際上,到目前為止,所有網絡廠商提供的控制器也僅僅是能對自己的硬件設備可以控制,對別的設備還無法實現互通。這大大限制了SDN技術的普及,而那些單純做SDN軟件的創新軟件企業,根本得不到網絡硬件廠商的強有力支持,使得這些軟件就是空中樓閣,什么網絡設備也管理不了,控制不了。其次,SDN希望提供一個邏輯上集中的控制平面,而實際上我們需要的不僅僅是一臺控制器,還可以容忍故障、擴展性能,提供多個控制器分區控制等,實際網絡應用對SDN提出了更多的實際要求,這些要求一時間SDN很難都滿足。第三,開源意味著對所有人都可見,很多人都可以提交修改CASE,不同的人理解不同或者水平上的差異,導致SDN代碼上會有很多問題,不能做拿來主義直接使用,甚至直接拿來根本不能用,必須要對開源代碼非常熟悉做二次修改,才能使用。Linux也一樣,雖然發展得很成熟,但在具體應用環境中,還是需要做一些調整和修改才行,有不少Linux的商用軟件其實也是收費的,這些商用軟件就是將開源的Linux做了再次修改,使其更加接近實際的應用環境,通過售賣這些二次開發的Linux系統賺錢。最后,開源也帶來了信息安全上的風險,因為這無異于將網絡實現向所有人敞開,萬一在開源的代碼里實現上有漏洞,就容易被人攻擊,給數據中心安全帶來隱患,這是很多人最為擔心的一點。操作系統和很多通用軟件均容易成為攻擊的對象,就是因為這些實現代碼黑客們也能看到,通過研究系統存在的漏洞,攻破軟件防御系統,達到不可告人的目的。如果將網絡部分也做成開源,那隨時都有被攻破的風險,只要是人寫的代碼不可能都天衣無縫,都有可能存在漏洞。
雖然開源網絡仍存在不少問題,并不妨礙其成為業內發展的共識,這也是數據中心網絡的首次重大技術變革,孕育著巨大的市場機會,只有走向開放,數據中心網絡才會擁有更好的明天。