辛明遠(yuǎn)
(黑河學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,黑龍江 黑河 164300)
?
openFlow /SDN控制器路由算法的研究
辛明遠(yuǎn)
(黑河學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,黑龍江 黑河164300)
摘要:基于openFlow 的SDN是新興的網(wǎng)絡(luò)技術(shù),它將控制平面與數(shù)據(jù)平面分離,降低了網(wǎng)絡(luò)管理的難度。首先介紹了SDN的思想及結(jié)構(gòu)設(shè)計(jì)SDN控制器的架構(gòu),對(duì)SDN控制器路由算法進(jìn)行分析,提出性能更好的算法方案,最后表明未來研究的方向。
關(guān)鍵詞:軟件定義網(wǎng)絡(luò);openFlow;SDN控制器
一前言
近些年,網(wǎng)絡(luò)呈現(xiàn)爆炸式的發(fā)展態(tài)勢(shì),涉及社會(huì)生活的方方面面,但在網(wǎng)絡(luò)給人們帶來便利的同時(shí),自身過度的發(fā)展也凸顯出網(wǎng)絡(luò)的一些弊端。各種功能與協(xié)議在網(wǎng)絡(luò)上進(jìn)行疊加,使網(wǎng)絡(luò)結(jié)構(gòu)更加復(fù)雜,難于管理,從而限制了網(wǎng)絡(luò)的發(fā)展。SDN(Software Defined Networking)軟件定義網(wǎng)絡(luò),通過軟件的形式重構(gòu)現(xiàn)有網(wǎng)絡(luò), 將網(wǎng)絡(luò)硬件設(shè)備的控制和數(shù)據(jù)進(jìn)行分離,控制以軟件編程的方式實(shí)現(xiàn)。SDN 的可編程性和開放性為網(wǎng)絡(luò)應(yīng)用的創(chuàng)新提供了一個(gè)良好平臺(tái)。
SDN在改變傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的同時(shí),也在網(wǎng)絡(luò)安全方面表現(xiàn)出不同的特點(diǎn)。一是集中控制器在非安全環(huán)境中極易受到攻擊,同時(shí)開放性和API也使得控制器存在信息泄露的風(fēng)險(xiǎn)。二是SDN提供靈活的安全監(jiān)控、分析和響應(yīng)系統(tǒng),為傳統(tǒng)安全防護(hù)的應(yīng)用提供了新的思路。
二openFlow/SDN控制器的架構(gòu)
軟件定義安全(SDSec,Software-Defined Security), 是Garnter提出將安全管理與安全數(shù)據(jù)分離,并通過安全控制器(Security Controller)保護(hù)整個(gè)SDN安全的一種軟件定義的安全體系,安全控制器是核心。
SDN控制器架構(gòu)分為三個(gè)平面:應(yīng)用平面、控制平面和基礎(chǔ)設(shè)施平面。通過南向接口 OpenFlow協(xié)議控制硬件設(shè)備的轉(zhuǎn)發(fā),通過REST北向接口與應(yīng)用平面進(jìn)行通信,通過東西向接口擴(kuò)展成控制器集群?;A(chǔ)設(shè)施平面由SDN交換機(jī)組成,負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)包的轉(zhuǎn)發(fā),交換機(jī)只負(fù)責(zé)根據(jù)控制器下發(fā)的流表規(guī)則對(duì)數(shù)據(jù)進(jìn)行匹配,并進(jìn)行高速的轉(zhuǎn)發(fā)和處理,地址解析、鏈路發(fā)現(xiàn)、路由計(jì)算等功能交由控制器完成??刂破矫婢褪强刂破鳎ㄟ^南向接口的OpenFlow協(xié)議管理SDN交換機(jī)的轉(zhuǎn)發(fā)動(dòng)作??刂破矫嫱ㄟ^REST北向接口向上層業(yè)務(wù)和應(yīng)用提供資源的調(diào)用。應(yīng)用平面中根據(jù)應(yīng)用需求,提供多種業(yè)務(wù)應(yīng)用。這種架構(gòu)充分體現(xiàn)了 SDN控制與數(shù)據(jù)分離的思想,實(shí)現(xiàn)了網(wǎng)絡(luò)功能的可編程化, 只需用通用的硬件作為網(wǎng)絡(luò)底層設(shè)備,簡(jiǎn)化了網(wǎng)絡(luò)管理的復(fù)雜度。
三SDN控制器中路由算法的比較分析
SDN控制器分為基礎(chǔ)模塊和應(yīng)用模塊?;A(chǔ)模塊實(shí)現(xiàn)網(wǎng)絡(luò)信息狀態(tài)的獲取、流量的分析、數(shù)據(jù)轉(zhuǎn)發(fā)路徑的計(jì)算、流表的生成與下發(fā)等功能。應(yīng)用模塊是建立在基礎(chǔ)模塊之上實(shí)現(xiàn)的,有防火墻、負(fù)載均衡、網(wǎng)絡(luò)虛擬化等功能。基礎(chǔ)模塊是整個(gè)SDN控制器實(shí)現(xiàn)的基礎(chǔ),而鏈路發(fā)現(xiàn)模塊和網(wǎng)絡(luò)拓?fù)淠K則是技術(shù)的關(guān)鍵。
在SDN中,控制器可以通過鏈路發(fā)現(xiàn)模塊,得到全網(wǎng)絡(luò)交換機(jī)鏈接的信息,對(duì)全網(wǎng)絡(luò)資源進(jìn)行統(tǒng)一的管理和調(diào)度,使網(wǎng)絡(luò)資源得到合理的分配和利用。通過鏈路層發(fā)現(xiàn)協(xié)議來發(fā)現(xiàn)交換機(jī)之間的連接情況,并將鏈路信息通過特定的數(shù)據(jù)結(jié)構(gòu)傳遞給其他模塊,同時(shí)保存到信息存儲(chǔ)模塊中。
網(wǎng)絡(luò)拓?fù)淠K是SDN控制器的重要模塊,正確的網(wǎng)絡(luò)拓?fù)浜娃D(zhuǎn)發(fā)路徑是控制器正確指導(dǎo)底層數(shù)據(jù)轉(zhuǎn)發(fā)的重要前提。網(wǎng)絡(luò)拓?fù)淠K的主要功能是根據(jù)鏈路發(fā)現(xiàn)模塊傳送來的鏈路信息,生成底層設(shè)備的網(wǎng)絡(luò)拓?fù)?然后通過路由算法計(jì)算全局的路由信息,發(fā)送到信息存儲(chǔ)模塊進(jìn)行存儲(chǔ),并及時(shí)進(jìn)行更新。
SDN控制器在得到網(wǎng)絡(luò)拓?fù)湫畔⒅?需要通過鏈路信息計(jì)算最優(yōu)轉(zhuǎn)發(fā)路徑。在網(wǎng)絡(luò)拓?fù)淠K中包含路由算法,用戶可以根據(jù)自己的需求和網(wǎng)絡(luò)情況來選擇合適的路由算法??刂破饔?jì)算路由與傳統(tǒng)網(wǎng)絡(luò)不同,它已經(jīng)具有全局的網(wǎng)絡(luò)拓?fù)湫畔?可以提前計(jì)算好轉(zhuǎn)發(fā)路徑,來提高控制器的處理效率。本節(jié)主要對(duì)Dijkstra和Flow-basedrouting兩種算法進(jìn)行分析,比較出適合于SDN網(wǎng)絡(luò)環(huán)境的路由算法,并在網(wǎng)絡(luò)拓?fù)淠K中進(jìn)行實(shí)現(xiàn)。
Dijkstra算法用來計(jì)算有向圖中源節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑, Dijkstra算法在計(jì)算時(shí)從源點(diǎn)開始,經(jīng)過層層擴(kuò)展,不斷選出每一步的最短估值,最終得到源點(diǎn)到其它所有節(jié)點(diǎn)的最短路徑。
基于流量的路由選擇算法就是找出網(wǎng)絡(luò)最小延時(shí)的路由?;舅枷胧羌俣ňW(wǎng)絡(luò)中每對(duì)路由器之間平均數(shù)據(jù)流量是相對(duì)穩(wěn)定的和可預(yù)測(cè)的,對(duì)某一給定的通信鏈路,如果已知平均流量和載荷量,那么就可以由排隊(duì)論原理計(jì)算出該鏈路上的平均分組延時(shí)。再由所有鏈路的平均延時(shí),可直接計(jì)算出流量加權(quán)平均值,進(jìn)而得到整個(gè)網(wǎng)絡(luò)的平均分組延時(shí)。。
本文選擇了常見的網(wǎng)狀網(wǎng)和數(shù)據(jù)中心常見的胖二叉樹網(wǎng)絡(luò)對(duì)算法進(jìn)行實(shí)驗(yàn)和分析。為找到更加適合SDN控制器的算法,具有實(shí)際指導(dǎo)意義,本文使用一合PC機(jī)對(duì)兩種算法進(jìn)行仿真測(cè)試,其配置為:酷睿雙核i5處理器、8G內(nèi)存、64位Windows 7操作系統(tǒng)。使用兩種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分別對(duì)算法進(jìn)行實(shí)驗(yàn),其過程和結(jié)果如下。
1.網(wǎng)狀拓?fù)渚W(wǎng)絡(luò)。
本文使用具有非負(fù)權(quán)值的鄰接矩陣來模擬網(wǎng)狀拓?fù)?通過權(quán)值來模擬網(wǎng)絡(luò)的開銷大小和擁塞程度。設(shè)定權(quán)值為1-30之間的隨機(jī)數(shù),當(dāng)數(shù)字為30時(shí),則將該數(shù)被替換為無窮大,表示這兩點(diǎn)之間沒有鏈路。使用此方法模擬網(wǎng)狀網(wǎng)絡(luò),并用Dijkstra和Flow-basedrouting兩個(gè)算法分別調(diào)用同一個(gè)網(wǎng)絡(luò)拓?fù)涞泥徑泳仃?計(jì)算全網(wǎng)絡(luò)每對(duì)節(jié)點(diǎn)之間的路由選擇路徑,計(jì)算所用時(shí)間。得到的結(jié)果曲線如下圖1所示。
當(dāng)節(jié)點(diǎn)個(gè)數(shù)少于350時(shí), Flow-basedrouting算法比Dijkstra算法用時(shí)少,但差距不大;而當(dāng)節(jié)點(diǎn)個(gè)數(shù)多于350時(shí), Dijkstra算法比Flow-basedrouting算法用時(shí)少,差距也逐漸增大。實(shí)驗(yàn)結(jié)果說明在計(jì)算大規(guī)模網(wǎng)絡(luò)的時(shí)候, Dijkstra算法性能更好。
圖1 網(wǎng)狀網(wǎng)Dijkstra和Flow-basedrouting耗時(shí)曲線圖
2.胖二叉樹網(wǎng)絡(luò)拓?fù)洹?/p>
胖二叉樹結(jié)構(gòu)分三層,其交換機(jī)分別為邊緣交換機(jī)、匯聚交換機(jī)和核心交換機(jī),其中每個(gè)交換機(jī)都連接兩個(gè)或以上的上層交換機(jī),每層交換機(jī)之間還有鏈路相連。模擬構(gòu)建不同規(guī)模的數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)?節(jié)點(diǎn)數(shù)目分別為28、42、56、70、84、98、112,使用Dijkstra算法和Flow-basedrouting算法分別調(diào)用相同的網(wǎng)絡(luò)拓?fù)? 計(jì)算所用時(shí)間。得到的結(jié)果曲線如下圖2所示。
圖2 胖樹網(wǎng)Dijkstra和Flow-basedrouting耗時(shí)曲線圖
由以上分析可知,在胖樹結(jié)構(gòu)中,在同樣計(jì)算全網(wǎng)絡(luò)最短路徑的情況下,Dijkstra算法耗時(shí)比Flow-basedrouting算法用吋長,而且Dijkstra算法所用時(shí)間隨著節(jié)點(diǎn)個(gè)數(shù)的增加呈上升趨勢(shì),而Flow-basedrouting算法則上升比較緩慢。實(shí)驗(yàn)結(jié)果說明Flow-basedrouting算法比Dijkstra算法更適合用來計(jì)算胖樹結(jié)構(gòu)網(wǎng)絡(luò)的最短路徑, Flow-basedrouting算法比較穩(wěn)定。綜上所述,在計(jì)算網(wǎng)狀網(wǎng)結(jié)構(gòu)時(shí),Dijkstra算法和Flow-basedrouting算法差距不大,隨著網(wǎng)絡(luò)規(guī)模增大,Dijkstra算法比較好一些;而在計(jì)算數(shù)據(jù)中心典型網(wǎng)絡(luò)結(jié)構(gòu)胖樹結(jié)構(gòu)吋, Flow-basedrouting算法比較穩(wěn)定,表現(xiàn)出了較好的性能。
四結(jié)論
SDN被譽(yù)為是新一代網(wǎng)絡(luò)技術(shù)而備受關(guān)注,其控制與轉(zhuǎn)發(fā)分離、開放的編程接口和集中控制的特性是網(wǎng)絡(luò)的演進(jìn)和發(fā)展方向。涌現(xiàn)出各具特色的SDN控制器,但在網(wǎng)絡(luò)的安全性、可靠性、高效性和可擴(kuò)展性方面存在缺陷。本文根據(jù)規(guī)模龐大、協(xié)議復(fù)雜、數(shù)據(jù)海量的特點(diǎn)設(shè)計(jì)了一款SDN控制器,分析了控制器路由算法的性能,并設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證了Flow-basedrouting路由算法性能更加穩(wěn)定。考慮對(duì)算法進(jìn)行優(yōu)化,用更高效的算法進(jìn)行路由選擇,提高控制器的性能。并對(duì)策略制定模塊進(jìn)行研究,在策略制定時(shí)考慮全網(wǎng)流量信息和網(wǎng)絡(luò)狀態(tài),制定網(wǎng)絡(luò)轉(zhuǎn)發(fā)策略,提高控制器對(duì)網(wǎng)絡(luò)控制的準(zhǔn)確性。
參考文獻(xiàn)
[1]Markoff J. Open networking foundation pursues new standards[J]. The New York Times,2011.
[2]Garnter. The Impact of Software-Defined Data Centers on Information Security. [EB/OL]https://www.gartner.com/doc/2200415/impact-softwaredefined-data-centers-information, 2012.
[3]Kloti R. OpenFlow: A security analysis[J]. Proc. Wkshp on Secure Network Protocols(NPSec). IEEE, 2013.
[4]Cai Z,Cox A L,Maestro TS EN. A system for scalable OpenFlow control [R]. TechnicalReport TR10-08. Rice University,2010.
[5]Koponen T, Casado M, Gude N,et al_ Onix: A Distributed Control Platform for Large-scale Production Networks[C]//OSDI. 2010,10:1-6.
Class No.:TP301.4Document Mark:A
(責(zé)任編輯:蔡雪嵐)
Routing Algorithm of SDN /OpenFlow Controller
Xin Mingyuan
(Computer and Information Engineering Department, Heihe University, Heihe, Heilongjiang 164300,China)
Abstract:SDN based on Open Flow is an emerging network technology, which can be used to reduce the difficultyof the network management through controlling the plane and data plane separation. The paper introduces the idea of SDN, the architecture of the controller, and the structure design of SDN controller routing algorithm and predicates the future trend of research.
Key words:software-defined networking; open flow; SDN controller
作者簡(jiǎn)介:辛明遠(yuǎn),碩士,講師,黑河學(xué)院。
基金項(xiàng)目:黑河學(xué)院2015年度院級(jí)課題(KJY201503),青年科研拔尖人才。
文章編號(hào):1672-6758(2016)07-0027-3
中圖分類號(hào):TP301.4
文獻(xiàn)標(biāo)識(shí)碼:A