軟件定義網(wǎng)絡(luò)潛在用戶所面臨的一個關(guān)鍵挑戰(zhàn)是判斷特定SDN控制器的特定價值,畢竟控制器作為網(wǎng)絡(luò)應(yīng)用和網(wǎng)絡(luò)基礎(chǔ)設(shè)施之間的橋梁發(fā)揮著關(guān)鍵性作用。但目前還沒有一個可以規(guī)范SDN的模型,也沒有一個SDN控制器必須要遵守的任何標(biāo)準(zhǔn)。
雖然Linux基金會旗下的多廠商OpenDaylight項目的出現(xiàn)為統(tǒng)一的模塊化控制器架構(gòu)所需的SDN堆棧帶來了希望,但是對于控制器需要提供什么樣的特定服務(wù),廠商當(dāng)中仍然存在著許多不同的意見。用戶的壓力在于確定SDN控制器具有什么樣的能力,以及這些功能是否能夠幫助實現(xiàn)期望的目標(biāo)。即便如此,消費者也難以購買到一個獨立的SDN控制器。實際情況是廠商常常將控制器捆綁在整個SDN套裝之中,這個套裝通常包括:應(yīng)用軟件、控制器和網(wǎng)絡(luò)硬件。
即便你考慮從廠商那里購買一個整體解決方案,控制器的功能也可能出現(xiàn)麻煩。畢竟,軟件定義網(wǎng)絡(luò)正在迅速發(fā)展,而最初的整體解決方案會顯得陳舊。因此我們有眾多的因素需要考慮,細述如下。
原始性能
談到原始性能,我們首先需要明確SDN控制器的作用。通常,SDN控制器的功能是將網(wǎng)絡(luò)環(huán)境中的控制與數(shù)據(jù)平面互相分離。換句話說,控制器將告訴網(wǎng)絡(luò)設(shè)備如何轉(zhuǎn)發(fā)流量(控制平面),但是它們并不真正轉(zhuǎn)發(fā)這些流量(數(shù)據(jù)平面)。這種情況在OpenFlow(OF)網(wǎng)絡(luò)中非常常見。在OpenFlow網(wǎng)絡(luò)中,SDN控制器主要用于對網(wǎng)絡(luò)設(shè)備中的OF表單進行編程。
在OpenFlow網(wǎng)絡(luò)中,OF交換機接收數(shù)據(jù)包并根據(jù)流表處理這些數(shù)據(jù)包。但是如果流表中的數(shù)據(jù)包沒有匹配的條目,將會怎樣?在這種情況下,OF交換機將把數(shù)據(jù)包發(fā)給OF控制器,這實際上相當(dāng)于在問“我應(yīng)該怎么處理這些數(shù)據(jù)包?”。OF控制器來決定當(dāng)數(shù)據(jù)包與流匹配時交換機應(yīng)當(dāng)做些什么,并對交換機進行編程。這一程序被稱為“流安裝”。
由于擴展方面的需求,SDN控制器每秒的流安裝量受到了高度重視。通常,流安裝在SDN中會存在一個性能瓶頸。但是不要想當(dāng)然的認為,在大量交換機和你希望控制的龐大微流數(shù)量共同作用下,它們很快就會超過控制器流安裝能力。必須牢記并不是每個流都需要與控制器聯(lián)系。只有那些還沒有被識別或編程的流才需要這一步驟,而這通常只是例外情況。
對于廠商來說,他們非常清楚OpenFlow網(wǎng)絡(luò)的流安裝性能所帶來的挑戰(zhàn)。廠商們已經(jīng)制訂了許多緩解控制器瓶頸的策略。因此不要因為原始性能數(shù)據(jù)不佳就簡單地將某一控制器選擇排除在外。廠商可能有辦法優(yōu)化你的網(wǎng)絡(luò)環(huán)境,將流安裝的需求量降到最低限度。在這些緩解辦法當(dāng)中,有一種名為流通配符技術(shù)。該技術(shù)允許通過一個單一的流條目處理眾多微流。
拓撲
在評估SDN控制器時另一個要考慮因素是你的網(wǎng)絡(luò)拓撲。讓我們先考慮一下LAN和WAN的區(qū)別。你想用軟件定義網(wǎng)絡(luò)中的哪一部分?盡管LAN是典型的SDN使用案例,但是如果你希望橫跨WAN部署網(wǎng)絡(luò)虛擬化,那會是什么情況?控制器在這一模式中將如何工作?這在很大程度上是一個有關(guān)功能性的問題。當(dāng)你的SDN環(huán)境對于單個控制器來說顯得過大因而無法有效管理時,供應(yīng)商會提供什么樣的選項幫助你向廣域網(wǎng)擴展?
采用中央控制器方式的SDN解決方案可以進行橫向擴展。換句話說,你可以增加控制器以應(yīng)對額外的交換機。不過這里存在一個非常棘手的問題,這些交換機彼此之間將如何進行通信。
對此,廠商給出了許多種答案。盡管業(yè)內(nèi)很早就展開了對控制器彼此對話方式進行標(biāo)準(zhǔn)化的討論,但是在大多數(shù)情況下,目前的解決方案還只是局限于特定的控制器。一個常見的技術(shù)組合是通過BGP協(xié)議實現(xiàn)控制器之間的信息交換。在這種方式中,控制器知道如何查找網(wǎng)絡(luò)中不同的軟件定義部分,并在兩個區(qū)域之間轉(zhuǎn)發(fā)流量。如果這一功能對你來說非常重要,那么你需要向備選的供應(yīng)商詢問這個關(guān)鍵性問題。
雖然許多SDN解決方案能夠支持一個中央控制器,但是中央化控制器的概念仍然存在一個潛在的問題。首先是控制平面的流量(如從控制器到網(wǎng)絡(luò)交換機的指令)如何被傳輸。帶內(nèi)通信意味著控制平面的流量將使用所有正常網(wǎng)絡(luò)流量所使用的路徑,帶外(OOB)通信意味著傳輸控制平面的流量需要一個獨立的物理網(wǎng)絡(luò)。
帶內(nèi)通信受到了一些希望通過“可達性”調(diào)整網(wǎng)絡(luò)拓撲的廠商們的支持。這一方案的理念是,如果網(wǎng)絡(luò)設(shè)備不再能夠被控制器控制,那么拓撲將會發(fā)生調(diào)整,控制器能夠發(fā)現(xiàn)這些變化并做出相應(yīng)調(diào)整。帶外通信也受到了一些廠商的支持。這部分廠商主要是希望確保控制器之間和交換機之間的低延遲,提升安全性,消除控制平面流量丟失所造成的數(shù)據(jù)流量風(fēng)險。
第二個關(guān)于中央控制器的顧慮是這些控制器將被實現(xiàn)中央化控制的方式。智能化中央化控制并不一定意味只有一個物理設(shè)備或是一組冗余設(shè)備來擔(dān)當(dāng)SDN控制器。許多廠商將控制平面功能分散至能夠相互通信并共享數(shù)據(jù)庫的分布式虛擬機當(dāng)中。這些組件可能會向控制器軟件的核心部分反饋信息,但是也有可能是向虛擬機反饋信息。物理控制器或控制器集群,以及履行控制平臺職責(zé)的分布式虛擬機這幾種模式在目前的SDN產(chǎn)品當(dāng)中都存在。
能力
值得注意的是,并非所有SDN控制器都具有相同的能力。這里的能力并不是指控制器流安裝等原始性能,而是指控制器對網(wǎng)絡(luò)的實際操控能力。大部分網(wǎng)絡(luò)運營者并不僅僅尋找一款OpenFlow控制器,而是希望它讓盡可能多的網(wǎng)絡(luò)元素配置實現(xiàn)自動化。此時,你需要問廠商以下一些問題,包括:
這一控制器將與哪些設(shè)備進行對話?你需要知道,這一控制器是否除了與網(wǎng)絡(luò)交換機對話外,還可以與防火墻、負載均衡設(shè)備、虛擬交換機、云編排工具以及其他設(shè)備對話。
該供應(yīng)商擁有哪些合作關(guān)系?許多SDN控制器廠商都與主要的網(wǎng)絡(luò)廠商建立了戰(zhàn)略同盟關(guān)系。這些合作使得SDN控制器與合作廠商的工具之間更容易通信。不過,并非所有的SDN廠商都有著相同的合作關(guān)系。因此在評估SDN控制器時,搞清楚該廠商擁有哪些合作關(guān)系,以及這些合作關(guān)系促成了哪些合作成果非常關(guān)鍵。
現(xiàn)有應(yīng)用都有哪些?一些SDN控制器更像是一個空白的畫板—能夠展示任何東西,但是首先需要有人在上面作畫才行。另有一部分SDN控制器已經(jīng)建立了其應(yīng)用生態(tài)環(huán)境—有人已經(jīng)在上面為你畫了非常漂亮的畫。搞清楚其現(xiàn)在都有些什么應(yīng)用,對于你決定讓SDN控制器在網(wǎng)絡(luò)中發(fā)揮多大作用將大有幫助。
控制器的API是否已經(jīng)被明確?API是從控制器中獲取和向控制器發(fā)送信息的機制,網(wǎng)絡(luò)應(yīng)用程序會通過北向API告訴控制器它們需要什么。API是自動化和編配的關(guān)鍵。例如,你的機構(gòu)能夠以多高的效率利用控制器API?對于正在尋求整體解決方案的用戶,他們可能并不關(guān)心這個。但是對于那些希望編寫自己的網(wǎng)絡(luò)應(yīng)用程序的用戶來說,這一點非常關(guān)鍵。
開放vs.廠商鎖定
傳統(tǒng)的網(wǎng)絡(luò)協(xié)議在廠商之間具有很大程度的互操作性。例如,一家廠商的使用BGP協(xié)議的設(shè)備也可以被其他廠商使用BGP協(xié)議的設(shè)備所理解。雖然廠商可能會在協(xié)議中增加一些私有特性,但是在基本上通用網(wǎng)絡(luò)設(shè)備廠商都會遵守一條底線。
在SDN方面,情況卻并非如此。目前還沒有創(chuàng)建SDN控制器的統(tǒng)一方式,也沒有一套關(guān)于SDN必須具備哪些功能的要求。接觸的控制器和架構(gòu)越多,你就越會發(fā)現(xiàn)它們之間存在著相當(dāng)大的差異。這些都是意料之中的事情。由于SDN還是一項新興技術(shù),因此廠商都在發(fā)布能夠代表其SDN觀念的控制器,以盡可能地在市場中突出自己,從而力爭成為市場領(lǐng)導(dǎo)者。
對于用戶來說,由于缺乏標(biāo)準(zhǔn),導(dǎo)致他們在控制器采購中遇到了許多尷尬問題。首先是這個控制器是不是將你套牢在一個特定解決方案當(dāng)中?這是一個需要回答的重要問題。盡管許多SDN解決方案都具有強大的能力,但是它們可能只針對特定類型的用戶,幫助他們解決某一單一問題。雖然目前這一解決方案可能會為你帶來優(yōu)勢,但是未來它們可能會成為你的包袱。例如,若干年后你可能會更換你的負載平衡設(shè)備供應(yīng)商以減少運營支出,但是SDN控制器及其相關(guān)應(yīng)用可能無法與其他廠商開發(fā)的負載平衡設(shè)備協(xié)同工作。廠商鎖定隱藏的風(fēng)險值得我們在決策時謹慎考慮。
用戶能夠轉(zhuǎn)而使用其他的控制器嗎?如果能,過渡應(yīng)當(dāng)如何進行?表面看來,這與其他的顧慮沒有太多的不同。例如,從路由器供應(yīng)商A更換至供應(yīng)商B需要對產(chǎn)品的功能和操作性進行考慮—B供應(yīng)商的產(chǎn)品能否滿足你的要求?你的網(wǎng)絡(luò)團隊能否管理B供應(yīng)商的路由器?但在SDN控制器方面,更換供應(yīng)商的挑戰(zhàn)更為復(fù)雜。這需要回到控制器究竟在為你做什么這一概念上來看。標(biāo)準(zhǔn)遵從性可以極大地降低更換路由器廠商所存在的風(fēng)險,但是在SDN領(lǐng)域中,還沒有類似的標(biāo)準(zhǔn)出臺。你的網(wǎng)絡(luò)應(yīng)用是否能夠與不同的控制器協(xié)同工作?如果不進行適當(dāng)修改,那么為某一控制器編寫的應(yīng)用很可能無法在其他控制器上工作。或許OpenDaylight組織能夠改變這一現(xiàn)狀,但是目前網(wǎng)絡(luò)用戶必須要花時間了解SDN控制器,以搞清楚是否自己在某些地方被廠商鎖定了。
總之,購買SDN控制器并不是一件無關(guān)緊要的小事。此類投資不僅僅需要了解控制器的能力和性能,還需要搞清楚控制器是如何解決特定網(wǎng)絡(luò)問題的。在添加SDN控制器之前你必須要熟悉自己的網(wǎng)絡(luò)功能。花些功夫進行研究對防止大的投資失誤很有幫助。