陶駿,佘星星,劉華敏,宋衛(wèi)衛(wèi)
(安徽信息工程學(xué)院 計算機(jī)與軟件工程學(xué)院,安徽 蕪湖 241000)
OSPF(Open Shortest Path First)路由協(xié)議是一種應(yīng)用于企業(yè)網(wǎng)絡(luò)的內(nèi)部網(wǎng)關(guān)路由協(xié)議(IGP),其管理配置靈活,并根據(jù)網(wǎng)絡(luò)的實際鏈路狀態(tài)進(jìn)行路由選擇,所以其運行效率優(yōu)于傳統(tǒng)的距離矢量路由協(xié)議.OSPF路由協(xié)議只在一個自治系統(tǒng)(AS)內(nèi)運行,按照鏈路狀態(tài)的通告范圍,OSPF協(xié)議可以分為單區(qū)域的OSPF協(xié)議和多區(qū)域的OSPF協(xié)議.單區(qū)域的OSPF協(xié)議應(yīng)用最為廣泛,在單區(qū)域的OSPF網(wǎng)絡(luò)中,所有網(wǎng)絡(luò)設(shè)備都位于同一個OSPF區(qū)域,只要區(qū)域中一個網(wǎng)絡(luò)發(fā)生了改變,OSPF協(xié)議會把LSA( Link-State Advertisement)報文泛洪廣播到本區(qū)域內(nèi)所有的網(wǎng)絡(luò)設(shè)備,這不但耗費了大量的網(wǎng)絡(luò)帶寬,而且還加重了網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)負(fù)擔(dān),降低了網(wǎng)絡(luò)的運行效率.多區(qū)域OSPF協(xié)議能減少網(wǎng)絡(luò)中的LSA,但是維護(hù)多區(qū)域的OSPF的代價較高,需要耗費大量資源[1].
SDN(軟件既網(wǎng)絡(luò))是一種新的網(wǎng)絡(luò)通信機(jī)制,其把路由數(shù)據(jù)的發(fā)送進(jìn)行了“轉(zhuǎn)控”分離,網(wǎng)絡(luò)體系中由控制器決定數(shù)據(jù)的轉(zhuǎn)發(fā)邏輯,其余的網(wǎng)絡(luò)設(shè)備只負(fù)責(zé)數(shù)據(jù)的物理轉(zhuǎn)發(fā).SDN提升了網(wǎng)絡(luò)的控制力度,降低了網(wǎng)絡(luò)管理的負(fù)擔(dān)[2].
本研究結(jié)合SDN和多區(qū)域OSPF網(wǎng)絡(luò)的優(yōu)點,提出了一種基于SDN的多區(qū)域OSPF動態(tài)網(wǎng)絡(luò)模型,此模型通過SDN對多區(qū)域的OSPF網(wǎng)絡(luò)進(jìn)行配置,對區(qū)域進(jìn)行動態(tài)劃分,其有效的降低了路由器LSDB數(shù)據(jù)規(guī)模,同時也提升了網(wǎng)絡(luò)的管理效率.多區(qū)域OSPF協(xié)議將大多數(shù)LSA報文限制在較小的OSPF區(qū)域內(nèi),通過SDN進(jìn)行網(wǎng)絡(luò)配置,減輕了網(wǎng)絡(luò)設(shè)備的負(fù)荷,提升了網(wǎng)絡(luò)的運行效率和用戶的使用感知,所以此種網(wǎng)絡(luò)模型可以用于單區(qū)域OSPF網(wǎng)絡(luò)的調(diào)整和升級.
OSPF路由協(xié)議是一種基于鏈路狀態(tài)的動態(tài)路由協(xié)議,運行OSPF協(xié)議的網(wǎng)絡(luò)設(shè)備不能靜態(tài)去指定路由,其需要動態(tài)宣告和發(fā)現(xiàn)路由,動態(tài)宣告和發(fā)現(xiàn)路由依靠5種LSA鏈路狀態(tài)報文完成,這5種報文的類型和功能如表1所示:
表1 OSPF 5種基本報文
網(wǎng)絡(luò)設(shè)備先通過hello報文發(fā)現(xiàn)相鄰設(shè)備,再選取DR(指定路由器)和BDR(備用指定路由器)建立鄰接關(guān)系,再根據(jù)其余的4種報文通過DR宣告和發(fā)現(xiàn)路由,LSA存儲在網(wǎng)絡(luò)設(shè)備的LSDB(鏈路狀態(tài)數(shù)據(jù)庫)中,當(dāng)網(wǎng)絡(luò)中各設(shè)備的LSDB數(shù)據(jù)同步時,即網(wǎng)絡(luò)的收斂完成時,設(shè)備會根據(jù)迪杰斯特拉算法計算其到其余設(shè)備的最短路徑(SPF)[3].
單區(qū)域OSPF路由協(xié)議指所有的路由器都運行在一個邏輯區(qū)域,區(qū)域內(nèi)的每臺路由器的LSDB需要存儲區(qū)域內(nèi)所有網(wǎng)絡(luò)的LSA,一個單區(qū)域OSPF的網(wǎng)絡(luò)如圖1所示.
圖1 單區(qū)域OSPF網(wǎng)絡(luò)拓?fù)鋱D
此時區(qū)域0中包含6個路由器和5個網(wǎng)絡(luò),R1路由器的LSDB需要存儲NET1到NET5總共5個網(wǎng)絡(luò)信息,另外5個路由器也要存儲這5個網(wǎng)絡(luò)的信息,隨著網(wǎng)絡(luò)規(guī)模的增大,網(wǎng)絡(luò)中設(shè)備發(fā)送的LSA越多,每臺路由器的LSDB所存儲的數(shù)據(jù)規(guī)模和OSPF協(xié)議所耗費的流量會急劇增加,網(wǎng)絡(luò)中路由器的也越來越重,OSPF路由的算法復(fù)雜度為O(n2),n指路由器的數(shù)目.
單區(qū)域OSPF協(xié)議的管理配置策略為:啟動OSPF進(jìn)程,在默認(rèn)的核心區(qū)域內(nèi)宣告網(wǎng)絡(luò)地址.
而在多區(qū)域的OSPF路由協(xié)議中,存在一個核心區(qū)域和多個邊緣區(qū)域,每個邊緣區(qū)域必須通過一個邊界路由器(ABR)同核心區(qū)域相連接,邊緣區(qū)域內(nèi)的其他路由器稱為內(nèi)部路由器(IR),當(dāng)IR路由器和其他區(qū)域的路由器通信時,其需要訪問本區(qū)域的ABR路由器,ABR路由器負(fù)責(zé)跨區(qū)域的路由轉(zhuǎn)發(fā),所以IR路由器的LSDB只存儲本區(qū)域的LSA,ASR路由器的LSDB存儲核心區(qū)域和本區(qū)域的LSA,一個多區(qū)域的OSPF網(wǎng)絡(luò)拓?fù)鋱D如圖2所示:
圖2 多區(qū)域OSPF網(wǎng)絡(luò)拓?fù)鋱D
此時總共有6臺路由器和5個網(wǎng)絡(luò),R1、R2和R3位于區(qū)域0,R4、R5和R6位于區(qū)域1,R1和R4為邊界路由器,其余4個路由器為內(nèi)部路由器,R1和R4的LSDB包含5個網(wǎng)絡(luò)的信息,R2和R3的LSDB只包含網(wǎng)絡(luò)NET1和NET2的信息,R5和R6的LSDB只包含網(wǎng)絡(luò)NET3和NET4的信息,內(nèi)部路由器的LSDB規(guī)模明顯降低,OSPF路由的算法復(fù)雜度為O(m2+m×s2),m指區(qū)域的個數(shù),s指區(qū)域內(nèi)路由器的最大個數(shù),多區(qū)域OSPF路由算法時間復(fù)雜度優(yōu)于單區(qū)域OSPF路由算法的時間復(fù)雜度[4].
多區(qū)域OSPF協(xié)議的管理配置策略為:啟動OSPF進(jìn)程;劃分區(qū)域;在區(qū)域內(nèi)宣告相關(guān)的網(wǎng)絡(luò)地址.因為多區(qū)域的OSPF網(wǎng)絡(luò)需要劃分網(wǎng)絡(luò)為多個區(qū)域,所以其配置管理的代價高于單區(qū)域的OSPF網(wǎng)絡(luò).
SDN是一種軟件定義網(wǎng)絡(luò)的機(jī)制,SDN認(rèn)為網(wǎng)絡(luò)設(shè)施就是一個應(yīng)用軟件,而對網(wǎng)絡(luò)業(yè)務(wù)的調(diào)整等價于對軟件的修改,這種機(jī)制極大地提高網(wǎng)絡(luò)的效率.SDN使用OPENFLOW技術(shù)對網(wǎng)絡(luò)的進(jìn)行可編程控制,使網(wǎng)絡(luò)能像軟件一樣可以進(jìn)行靈活的編程[5].
SDN的核心優(yōu)勢是在網(wǎng)絡(luò)中部署了控制器,其使網(wǎng)絡(luò)設(shè)備能被集中的進(jìn)行控制,還使網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)和控制功能進(jìn)行了分離,SDN機(jī)制的結(jié)構(gòu)如圖3所示.
圖3 SDN機(jī)制結(jié)構(gòu)
圖4 基于SDN的多區(qū)域OSPF網(wǎng)絡(luò)模型圖
SDN控制器為結(jié)構(gòu)的控制層,比如BGP協(xié)議、組播協(xié)議和L2TP協(xié)議的部署和運算都集中在了控制器,控制器把指令發(fā)給其余的網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)設(shè)備對數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)[6].
控制器上有相關(guān)的編程接口,網(wǎng)絡(luò)管理員使用編程接口下發(fā)指令來管理網(wǎng)絡(luò)業(yè)務(wù).
轉(zhuǎn)發(fā)層包含被剝奪了控制能力的轉(zhuǎn)發(fā)器,轉(zhuǎn)發(fā)器指支持SDN功能的路由器、交換機(jī)和防火墻等設(shè)備,其只負(fù)責(zé)接受SDN控制器的指令對業(yè)務(wù)數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)器相連的接口稱為東西向接口;控制層為SDN控制器,其負(fù)責(zé)為轉(zhuǎn)發(fā)器下發(fā)控制指令,連接轉(zhuǎn)發(fā)器和SDN控制器的接口稱為南向接口;協(xié)同應(yīng)用層包含應(yīng)用軟件,比如OSS和OPENSTACK,其通過編程接口同SDN控制器進(jìn)行交互,編程接口稱為北向接口.
SDN的優(yōu)勢在于:網(wǎng)絡(luò)業(yè)務(wù)的快速更新部署;簡化了網(wǎng)絡(luò)結(jié)構(gòu);減輕了網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的負(fù)擔(dān).
基于SDN的多區(qū)域OSPF網(wǎng)絡(luò)配備了SDN設(shè)備,而且配置了多區(qū)域OSPF協(xié)議,網(wǎng)絡(luò)設(shè)備的OSPF參數(shù)配置都被集中在了SDN控制器,網(wǎng)絡(luò)設(shè)備接收SDN控制器下發(fā)的指令并轉(zhuǎn)發(fā)數(shù)據(jù),SDN控制器一般下掛在網(wǎng)絡(luò)的核心路由器下,如圖4所示.
多區(qū)域OSPF網(wǎng)絡(luò)降低了網(wǎng)絡(luò)的LSDB的規(guī)模,但是多區(qū)域的OSPF協(xié)議需要配置多個OSPF區(qū)域,每個區(qū)域都要宣告其歸屬的網(wǎng)段,所以多區(qū)域OSPF協(xié)議的管理復(fù)雜度高于單區(qū)域的OSPF協(xié)議,網(wǎng)絡(luò)管理會耗費較多的資源.
而SDN實現(xiàn)了“轉(zhuǎn)控分離”,多區(qū)域OSPF網(wǎng)絡(luò)依靠SDN這一特性極大的降低了網(wǎng)絡(luò)的配置難度,對于一個具有1個區(qū)域OSPF網(wǎng)絡(luò),區(qū)域里包含n個路由器,路由器用Ri表示,當(dāng)Ri的LSDD的規(guī)模超過闕值后,區(qū)域會自動分成兩個,所有路由器進(jìn)行相關(guān)配置修改,隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,區(qū)域分裂的次數(shù)也越來越多,如果區(qū)域發(fā)生了m次分裂,網(wǎng)絡(luò)管理員需要進(jìn)行m×n次配置,這會增加網(wǎng)絡(luò)管理員的配置復(fù)雜度,使用SDN后,SDN根據(jù)網(wǎng)絡(luò)管理員的調(diào)度算法和SDN流表進(jìn)行統(tǒng)一下發(fā)配置,配置復(fù)雜度得到了降低,網(wǎng)絡(luò)管理員只需要進(jìn)行一次配置.
基于SDN的多區(qū)域OSPF的網(wǎng)絡(luò)模型的調(diào)度算法如表2所示:
表2 網(wǎng)絡(luò)模型調(diào)度算法
算法對應(yīng)的流程圖如圖5所示.
圖5 調(diào)度算法流程圖
從上述分析可以得到:基于SDN的多區(qū)域OSPF網(wǎng)絡(luò)不但使網(wǎng)絡(luò)的LSDB規(guī)模得到了顯著降低,也提高了網(wǎng)絡(luò)的管理效率,所以網(wǎng)絡(luò)的性能和管理得到了提高.
在Linux環(huán)境下用NS2網(wǎng)絡(luò)軟件模擬了基于SDN的多區(qū)域OSPF的網(wǎng)絡(luò)和傳統(tǒng)的單區(qū)域OSPF網(wǎng)絡(luò).使用Waxman隨機(jī)圖數(shù)學(xué)模型對網(wǎng)絡(luò)進(jìn)行分析計算,圖中的結(jié)點滿足隨機(jī)分布,會生成在1個滿足假設(shè)需求的網(wǎng)絡(luò)拓?fù)鋱D形,結(jié)點x與y之間存在邊的概率P(x,y)為:
(1)
s(x,y)為結(jié)點x到結(jié)點y的歐拉距離,d是歐拉距離最大值,參數(shù)x,y屬于開區(qū)間(0,1),x的值越大,結(jié)點間的存在邊的概率就越大,y越大,網(wǎng)絡(luò)的稠密越高.在模擬實驗中取x= 0.6,y= 0.4.
定義cn基于SDN的多區(qū)域的OSPF網(wǎng)絡(luò)優(yōu)越系數(shù),OSPF區(qū)域數(shù)為n,其和網(wǎng)絡(luò)的時延大小tn、丟包個數(shù)ln、抖動次數(shù)jn和SDN參與系數(shù)S相關(guān),其值為:
cn=αntn+βnln+χntn+S/n
(2)
cn越小網(wǎng)絡(luò)越優(yōu)化,αn為時延系數(shù),βn為丟包系數(shù),χn為抖動系數(shù),它們滿足:
αn+βn+χn=1
(3)
其中n越大,SDN帶來的便捷性越高,c1是單區(qū)域OSPF的網(wǎng)絡(luò)優(yōu)越系數(shù),定義θn為兩種網(wǎng)絡(luò)的的對比優(yōu)越度,θn為:
θn=((cn-c1)/c1)×100%
(4)
θn隨n變化的趨勢圖如圖6所示:
圖6 網(wǎng)絡(luò)優(yōu)越度趨勢圖
隨著區(qū)域數(shù)目的增長,θn的優(yōu)勢會越來越大.
采用華為系列的路由器、交換機(jī)、防火墻和SDN設(shè)備構(gòu)建了一個基于SDN的多區(qū)域OSPF網(wǎng)絡(luò),網(wǎng)絡(luò)拓?fù)鋱D如圖7所示.
圖7 基于SDN的OSPF網(wǎng)絡(luò)拓?fù)鋱D
防火墻的下聯(lián)接口、核心路由器和匯聚路由器都運行OSPF協(xié)議,SDN設(shè)備下發(fā)表2的網(wǎng)絡(luò)調(diào)度算法給這3種網(wǎng)絡(luò)設(shè)備,防火墻進(jìn)行數(shù)據(jù)包過濾并通過NAT(地址翻譯)轉(zhuǎn)換后訪問互聯(lián)網(wǎng),防火墻通過默認(rèn)靜態(tài)路由與運營商進(jìn)行通信,防火墻在OSPF進(jìn)程中下發(fā)默認(rèn)路由,匯聚路由器配置子接口,終結(jié)交換機(jī)VLAN發(fā)送過來的數(shù)據(jù)幀,交換機(jī)配置相關(guān)的VLAN,上聯(lián)接口設(shè)置為透傳模式,下聯(lián)接口配置成接入模式進(jìn)行數(shù)據(jù)幀的轉(zhuǎn)發(fā).
網(wǎng)絡(luò)構(gòu)建完畢后,各項網(wǎng)絡(luò)業(yè)務(wù)運行平穩(wěn)正常,通過控制SDN,對比了啟動網(wǎng)絡(luò)新模型各項網(wǎng)絡(luò)性能參數(shù),啟動之后的參數(shù)比啟動之前的參數(shù)有了明顯的提升,選取1臺終端對某知名服務(wù)器進(jìn)行ping測試,網(wǎng)絡(luò)ping測試所產(chǎn)生的時間延遲對比圖,具體如圖8所示.
圖8 時延對比圖
最大時間延遲的已經(jīng)從啟動新模型之前的94ms降低為改造后的58ms.啟動新模型之后,網(wǎng)絡(luò)產(chǎn)生抖動的對比如圖9所示.
圖9 抖動對比圖
每3h的最大的網(wǎng)絡(luò)抖動次數(shù)由10個下降為6個.網(wǎng)絡(luò)丟包的對比如圖10所示.
圖10 丟包對比圖
啟動新網(wǎng)絡(luò)模型之后,每3h的最大的網(wǎng)絡(luò)丟包次數(shù)由8個下降為4個.從上述參數(shù)對比可以看出:網(wǎng)絡(luò)性能得到了很大的提升,而且改造后的網(wǎng)絡(luò)通過SDN控制器進(jìn)行網(wǎng)絡(luò)業(yè)務(wù)部署,極大的提高了網(wǎng)絡(luò)管理員的工作效率[9].
OSPF協(xié)議根據(jù)網(wǎng)絡(luò)的鏈路狀態(tài)運用迪杰斯特拉算法生成兩個網(wǎng)絡(luò)設(shè)備之間的最短路徑,其比距離矢量協(xié)議的性能優(yōu)越,但是單區(qū)域OSPF路由協(xié)議還是存在很多不足,其主要表現(xiàn)在:LSA泛洪的范圍過大,造成網(wǎng)絡(luò)設(shè)備的LSDB的數(shù)據(jù)規(guī)模大,容易超出設(shè)備處理能力的闕值,這會嚴(yán)重影響網(wǎng)絡(luò)運行效率.多區(qū)域的OSPF協(xié)議的網(wǎng)絡(luò)有效的降低了LSA泛洪的范圍,減少了LSDB的數(shù)據(jù)規(guī)模,能彌補(bǔ)單區(qū)域OSPF協(xié)議缺陷.SDN機(jī)制進(jìn)行了“轉(zhuǎn)控”分離,其可以加快網(wǎng)絡(luò)部署.本研究在引入SDN機(jī)制的前提下,實現(xiàn)了一個自適應(yīng)的多區(qū)域OSPF動態(tài)網(wǎng)絡(luò),其可使網(wǎng)絡(luò)性能得到提高[10].
作為一種IGP的路由協(xié)議,OSPF的處理路由的能力要比BGP路由協(xié)議弱,如果網(wǎng)絡(luò)的規(guī)模繼續(xù)增加,當(dāng)路由表的規(guī)模已經(jīng)超出多區(qū)域OSPF協(xié)議的處理能力時,此時就要選擇用BGP協(xié)議和SDN機(jī)制對網(wǎng)絡(luò)進(jìn)行更一步的完善調(diào)整,使網(wǎng)絡(luò)滿足業(yè)務(wù)發(fā)展的需求,這也是下一步的研究方向.