魏明軍++張文娜
摘要:文章針對軟件定義網(wǎng)絡(luò)單一控制器的處理能力不能滿足需求的擴(kuò)展性問題及當(dāng)前分布式多控制器平臺無法根據(jù)實(shí)際情況改變服務(wù)的問題,在控制層面上提出設(shè)計服務(wù)抽象層,對抽象服務(wù)層在控制器應(yīng)用中對底層的操作或者應(yīng)用之間交互設(shè)計的可行性進(jìn)行實(shí)驗驗證及測試。
關(guān)鍵詞:軟件定義網(wǎng)絡(luò);多控制器;服務(wù)抽象層
傳統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)是分布式的,每個網(wǎng)絡(luò)設(shè)備都擁有相對獨(dú)立的操作系統(tǒng)和控制層面。設(shè)備與設(shè)備之間通過分布式的網(wǎng)絡(luò)協(xié)議交換信息和數(shù)據(jù),導(dǎo)致網(wǎng)絡(luò)的管理和配置工作越來越繁冗和復(fù)雜。通過現(xiàn)有網(wǎng)絡(luò),管理人員實(shí)現(xiàn)創(chuàng)新和升級部署新的網(wǎng)絡(luò)結(jié)構(gòu)變得越來越困難。因此需要一種新的體系結(jié)構(gòu),這種結(jié)構(gòu)能分類控制數(shù)據(jù)動態(tài),實(shí)現(xiàn)轉(zhuǎn)發(fā)與控制。
軟件定義網(wǎng)絡(luò)(Software-Defined Networking)作為一個新興的網(wǎng)絡(luò)體系結(jié)構(gòu)受到廣泛的關(guān)注。文章針對軟件定義網(wǎng)絡(luò)、可擴(kuò)展性問題、性能評價問題及其相關(guān)部分測試方法問題,對單一控制器處理能力不足以及當(dāng)前分布式解決方案無法根據(jù)實(shí)際情況改變服務(wù)架構(gòu)的問題,提出了控制平臺架構(gòu)模型。并對已有的架構(gòu)進(jìn)行分析和總結(jié),在該模型的基礎(chǔ)上設(shè)計服務(wù)抽象架構(gòu)控制器,并對該控制器進(jìn)行了功能和性能測試。
1 傳統(tǒng)網(wǎng)絡(luò)與軟件定義網(wǎng)絡(luò)對比
1.1 軟件定義網(wǎng)絡(luò)的特點(diǎn)
軟件定義網(wǎng)絡(luò)(SoftwareDefined Networking)通過控制與轉(zhuǎn)發(fā)的分離、開放的南北向接口、集中式的控制平面獲取網(wǎng)絡(luò)的全局信息,并根據(jù)業(yè)務(wù)需求對網(wǎng)絡(luò)資源進(jìn)行動態(tài)的全局調(diào)配和優(yōu)化。這一舉措大大提高了網(wǎng)絡(luò)控制的靈活性,使可管理、可編程、可動態(tài)改變的網(wǎng)絡(luò)成為可能,從而實(shí)現(xiàn)網(wǎng)絡(luò)流量的靈活控制,為核心網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供了良好的平臺。
1.2 傳統(tǒng)網(wǎng)絡(luò)與軟件定義網(wǎng)絡(luò)對比
傳統(tǒng)的互聯(lián)網(wǎng)體系結(jié)構(gòu)是分布式的,每個網(wǎng)絡(luò)設(shè)備都擁有相對獨(dú)立的操作系統(tǒng)和控制層面,設(shè)備與設(shè)備之間通過分布式的網(wǎng)絡(luò)協(xié)議交換信息和數(shù)據(jù),其結(jié)構(gòu)有幾點(diǎn)不足:①網(wǎng)絡(luò)設(shè)備復(fù)雜。②配置困難。
1.3 網(wǎng)絡(luò)特征和底層操作系統(tǒng)綁定,很難添加新特性。
軟件定義網(wǎng)絡(luò)平臺以O(shè)penFlow為主,OpenFlow從轉(zhuǎn)發(fā)設(shè)備中分離控制邏輯的方法使數(shù)據(jù)平面具備了靈活的設(shè)備添加和升級的能力。
2 多控制器實(shí)驗平臺簡介
2.1 多控制器架構(gòu)分析
多控制器SDN網(wǎng)絡(luò)的典型做法是將網(wǎng)絡(luò)劃分成多個控制區(qū)域,每個區(qū)域由1個控制器控制?,F(xiàn)有的多控制器架構(gòu)從網(wǎng)絡(luò)的劃分方式來看,可以分為水平式多控制器架構(gòu)和層次化多控制器架構(gòu)2類。
2.2 控制器放置問題分析
分布式地部署多個控制器是解決SDN網(wǎng)絡(luò)的性能、可擴(kuò)展性以及可靠性問題的重要手段之一。然而,多個控制器的存在也面臨著其他新挑戰(zhàn),其中最關(guān)鍵的問題就是如何選擇控制器的數(shù)量以及控制器的放置位置。當(dāng)前的研究工作主要從幾個方面來考慮控制器的放置方案:基于傳輸延時的控制器放置方式,基于可靠性的控制器放置方式,基于其他指標(biāo)的控制器放置方式。
2.3 軟件定義網(wǎng)絡(luò)控制平臺的可靠性分析
SDN采用邏輯上集中式的方式對網(wǎng)絡(luò)進(jìn)行管理與控制,為了解決集中控制環(huán)境中的故障問題,在網(wǎng)絡(luò)部署多個控制器是解決SDN控制平面可靠性問題的重要手段。SDN控制平面中的故障可以分為控制器故障以及傳輸控制流的節(jié)點(diǎn)或者鏈路的故障。為了克服控制器的故障,主要通過控制器的被動或主動復(fù)制技術(shù)來提高SDN控制平面的可靠性。而在克服傳輸控制流的節(jié)點(diǎn)或鏈路的故障方面,則主要通過路徑保護(hù)或者路徑恢復(fù)的方式來提高SDN控制平面的可靠性。多控制器平臺涉及架構(gòu)設(shè)計、控制器放置等方面問題。針對這些問題,文章結(jié)合現(xiàn)有研究分類,通過分析、總結(jié),可深入了解多控制器平臺存在的問題,并提出解決方案,為之后抽象服務(wù)層的設(shè)計奠定理論基礎(chǔ)。
3 實(shí)驗方案
為了解決集中式控制平臺的處理能力有限、全局視圖信息的收集代價過大等問題,文章采用多控制器滿足需求。控制器應(yīng)該對應(yīng)用透明,即不論服務(wù)如何變化,應(yīng)用的編寫方式是一致的。也就是說,當(dāng)?shù)讓臃?wù)發(fā)生變化時,原有的應(yīng)用無需任何修改。要做到這一點(diǎn),則要求底層協(xié)議更改更為慎重,對應(yīng)用也必須相對透明。
3.1 服務(wù)抽象層
設(shè)計采用服務(wù)抽象層做到這一點(diǎn),可以采用如下的設(shè)計思路:服務(wù)抽象層可以動態(tài)鏈接控制器應(yīng)用與南向協(xié)議提供基本的網(wǎng)絡(luò)服務(wù),如使用類似拓?fù)涔芾砟K,實(shí)現(xiàn)拓?fù)錁?gòu)建和設(shè)備發(fā)現(xiàn)的功能。抽象層提供的服務(wù)由控制器基于應(yīng)用或者網(wǎng)絡(luò)設(shè)備提供的功能為基礎(chǔ)構(gòu)建,基于應(yīng)用對服務(wù)的請求服務(wù)抽象層映射到對應(yīng)的控制器插件,選取恰當(dāng)?shù)哪舷騾f(xié)議與給定的網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)通信。
服務(wù)抽象層在服務(wù)和插件間流程設(shè)計方案舉例:①當(dāng)一個支持OpenFlow協(xié)議的插件接收到一個ARP請求數(shù)據(jù)包,需要分派此數(shù)據(jù)包到ARP處理程序。②協(xié)議插件將調(diào)用數(shù)據(jù)包輸出服務(wù)接口,將數(shù)據(jù)包傳輸?shù)椒?wù)抽象層。③ARP處理程序,將登記注冊到監(jiān)聽數(shù)據(jù)包服務(wù)接口,在上一步中服務(wù)抽象層接收到的數(shù)據(jù)包將被移交到ARP處理程序?qū)?yīng)的應(yīng)用中。④該應(yīng)用程序現(xiàn)在可以處理此數(shù)據(jù)包。通過以上分析結(jié)合軟件定義網(wǎng)絡(luò)現(xiàn)狀,對軟件定義網(wǎng)絡(luò)多控制器平臺進(jìn)行理論分析并進(jìn)行設(shè)計驗證。
3.2 多控制平臺下網(wǎng)絡(luò)拓?fù)鋵?shí)驗驗證。
控制器為應(yīng)用提供了邏輯集中的物理網(wǎng)絡(luò)拓?fù)湟晥D,為了網(wǎng)絡(luò)應(yīng)用直接管理網(wǎng)絡(luò)規(guī)則策略,控制器支持網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)規(guī)則的變化。和大部分控制器一樣,控制器使用LLDP報文發(fā)現(xiàn)的設(shè)備連接來構(gòu)建網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。拓?fù)湟晥D選項提供了交換機(jī)和主機(jī)拓?fù)涞膱D形視圖。在抽象服務(wù)控制的多控制器拓?fù)渲懈鱾€管理對應(yīng)控制器存儲和設(shè)備,包括設(shè)備的功能和可達(dá)性信息等。這些信息由控制器存儲并且由拓?fù)涔芾砥鞴芾?。其他?gòu)件組成包括ARP處理程序、主機(jī)探索器、設(shè)備管理器、交換機(jī)管理器等協(xié)助拓?fù)涔芾砥魃删W(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)庫。
3.3 多控制平臺下服務(wù)抽象實(shí)驗驗證。
①實(shí)驗環(huán)境配置。在已經(jīng)安裝Mininet環(huán)境的機(jī)器中啟動Mininet,對應(yīng)地配置多個主機(jī)和交換機(jī)。在控制器層啟動一個簡單的轉(zhuǎn)發(fā)包應(yīng)用,它通過ARP包來探測連接到網(wǎng)絡(luò)的每個主機(jī),并給交換機(jī)安裝規(guī)則,讓網(wǎng)包能順利轉(zhuǎn)到各個主機(jī)。通過拖動設(shè)備,形成邏輯拓?fù)?,并保存配置。②?shí)驗分析。因為控制器是寄存在服務(wù)器中,所以當(dāng)做好類似以上的配置之后,首先要連接控制器,通過控制器應(yīng)答的狀態(tài)信息來了解網(wǎng)絡(luò)運(yùn)行情況,其中應(yīng)答201表明操作成功。為了敘述直觀簡潔,文章在試驗中配置了3臺交換機(jī),每臺交換機(jī)上使用的南向協(xié)議不同。③獲取刪除主機(jī)信息(見圖卜圖3)。
利用仿真實(shí)驗進(jìn)行驗證可以得出結(jié)論:通過獲取拓?fù)湫畔?,配置與獲取用戶鏈接信息,獲取、刪除主機(jī)信息等實(shí)驗操作,驗證抽象服務(wù)層在控制器應(yīng)用中對底層的操作或者應(yīng)用之間交互設(shè)計的可行性。真正實(shí)現(xiàn)了多控制器多協(xié)議支持和對應(yīng)用的透明,不論服務(wù)如何變化,應(yīng)用的編寫方式一致。
4 結(jié)語
文章利用實(shí)驗平臺,對軟件定義網(wǎng)絡(luò)以及多控制器平臺相關(guān)問題進(jìn)行仿真論證,實(shí)現(xiàn)服務(wù)抽象架構(gòu)的多控制器平臺,服務(wù)抽象層可以動態(tài)鏈接控制器應(yīng)用與南向協(xié)議提供基本的網(wǎng)絡(luò)服務(wù),如使用類似拓?fù)涔芾砟K,完成構(gòu)建拓?fù)浜桶l(fā)現(xiàn)設(shè)備功能。服務(wù)抽象層與控制器插件是相互獨(dú)立的并且是相耦合的,這樣就可以實(shí)現(xiàn)靈活升級網(wǎng)絡(luò)協(xié)議或應(yīng)用。endprint