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