本發(fā)明屬于網(wǎng)絡(luò)路由
技術(shù)領(lǐng)域:
,具體地涉及一種軟件定義網(wǎng)絡(luò)中基于網(wǎng)絡(luò)域劃分的路由方法。
背景技術(shù):
:由于現(xiàn)有網(wǎng)絡(luò)架構(gòu)的種種局限性,催生了軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetwork,SDN)的產(chǎn)生。SDN是一種基于軟件的網(wǎng)絡(luò)架構(gòu),它的核心思想是網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)平面和控制管理平面的分離。在傳統(tǒng)IP網(wǎng)絡(luò)中,網(wǎng)絡(luò)傳輸設(shè)備(例如路由器)需要分別負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)功能和控制邏輯功能,因此傳統(tǒng)網(wǎng)絡(luò)的控制管理邏輯非常復(fù)雜。而在軟件定義網(wǎng)絡(luò)中,控制平面和數(shù)據(jù)平面分離的這種架構(gòu)使得網(wǎng)絡(luò)傳輸設(shè)備的功能變得簡(jiǎn)單,只需要負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù),網(wǎng)絡(luò)傳輸設(shè)備原本的控制功能則都交由上層的控制實(shí)體來(lái)完成。在這樣的架構(gòu)下,網(wǎng)絡(luò)管理員和科研工作者只需要在控制實(shí)體中進(jìn)行編程就可以對(duì)網(wǎng)絡(luò)進(jìn)行管理、配置以及研究。因此SDN不僅提高了網(wǎng)絡(luò)的傳輸性能同時(shí)也使得網(wǎng)絡(luò)的管理控制變得靈活可擴(kuò)展。SDN相對(duì)于傳統(tǒng)的網(wǎng)絡(luò)有很多優(yōu)勢(shì)。控制器可以掌握整個(gè)網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)等拓?fù)湫畔ⅲ鶕?jù)這些信息,可以實(shí)現(xiàn)很多功能,例如:(1)將開(kāi)放式最短路徑優(yōu)先(OpenShortestPathFirst,OSPF)網(wǎng)絡(luò)中的路徑開(kāi)銷(xiāo)放在控制器中計(jì)算,比現(xiàn)有的計(jì)算方式快很多。(2)計(jì)算路由的速度會(huì)比原有的計(jì)算方式快很多。(3)可為一些問(wèn)題預(yù)先提供解決方法,當(dāng)問(wèn)題出現(xiàn)時(shí)可以更快的解決。在SDN中,所有控制管理功能都是由控制器完成的,因此當(dāng)有新流到達(dá)網(wǎng)絡(luò)時(shí),控制器需要負(fù)責(zé)路由該數(shù)據(jù)流。典型的SDN控制器按照以下兩個(gè)步驟路由網(wǎng)絡(luò)中的數(shù)據(jù)流:1、根據(jù)收集到的底層網(wǎng)絡(luò)的拓?fù)湫畔ⅲ瑸閿?shù)據(jù)流計(jì)算出全網(wǎng)的最優(yōu)路由路徑;2、添加相應(yīng)的流表項(xiàng)到最優(yōu)路由路徑上的所有交換機(jī)。顯然典型的SDN路由機(jī)制存在可擴(kuò)展性的問(wèn)題。一方面控制器為數(shù)據(jù)流路由時(shí),它需要同路由路徑上的所有交換機(jī)交互信息,現(xiàn)有的研究發(fā)現(xiàn)SDN控制平面與數(shù)據(jù)平面之間交互信息的數(shù)目與網(wǎng)絡(luò)中交換機(jī)的數(shù)量以及數(shù)據(jù)流數(shù)目的關(guān)系都是線性的,因此當(dāng)網(wǎng)絡(luò)規(guī)模增大時(shí)或數(shù)據(jù)流數(shù)量增多時(shí),控制網(wǎng)絡(luò)中的交互信息會(huì)顯著增加;另一方面,單個(gè)控制器有限的處理能力也是導(dǎo)致SDN網(wǎng)絡(luò)路由可擴(kuò)展性問(wèn)題的重要原因,在保證一定處理延時(shí)的情況下,單個(gè)SDN控制器可以處理的數(shù)據(jù)流數(shù)目和網(wǎng)絡(luò)規(guī)模的大小都是有限的。本發(fā)明因此而來(lái)。技術(shù)實(shí)現(xiàn)要素:針對(duì)上述存在的技術(shù)問(wèn)題,本發(fā)明目的是:提供了一種軟件定義網(wǎng)絡(luò)中基于網(wǎng)絡(luò)域劃分的路由方法,對(duì)網(wǎng)絡(luò)域進(jìn)行劃分,在域內(nèi)進(jìn)行靜態(tài)路由,而在域間進(jìn)行動(dòng)態(tài)路由的方法??梢杂行У臏p少控制器負(fù)擔(dān),從而提高整個(gè)網(wǎng)絡(luò)的可擴(kuò)展性。本發(fā)明的技術(shù)方案是:一種軟件定義網(wǎng)絡(luò)中基于網(wǎng)絡(luò)域劃分的路由方法,包括以下步驟:S01:控制器根據(jù)網(wǎng)絡(luò)拓?fù)鋵④浖x網(wǎng)絡(luò)劃分為多個(gè)子網(wǎng)絡(luò)域;S02:控制器計(jì)算各子網(wǎng)絡(luò)域域內(nèi)接入交換機(jī)和邊界交換機(jī)之間的轉(zhuǎn)發(fā)路徑,配置靜態(tài)流表項(xiàng);S03:當(dāng)數(shù)據(jù)流需要路由時(shí),控制器動(dòng)態(tài)控制域間路由,計(jì)算從源到匯的最短路徑,并在相應(yīng)的交換機(jī)上動(dòng)態(tài)部署細(xì)粒度流表項(xiàng),并多次修改目的IP地址,控制數(shù)據(jù)流在域間轉(zhuǎn)發(fā),各子網(wǎng)絡(luò)域內(nèi)部按照靜態(tài)流表項(xiàng)進(jìn)行轉(zhuǎn)發(fā)。優(yōu)選的,所述步驟S01中,利用標(biāo)簽傳播算法進(jìn)行子網(wǎng)絡(luò)域劃分,使各子網(wǎng)絡(luò)域內(nèi)部交換機(jī)之間的連接稠密,子網(wǎng)絡(luò)域間的交換機(jī)之間的連接稀疏。優(yōu)選的,所述步驟S02中,將網(wǎng)絡(luò)拓?fù)渥鳛闊o(wú)權(quán)圖,利用Dijkstra最短路徑算法計(jì)算接入交換機(jī)和邊界交換機(jī)之間的轉(zhuǎn)發(fā)路徑,所述配置靜態(tài)流表項(xiàng)根據(jù)目的交換機(jī)的IP地址進(jìn)行匹配,其他字段都通配。優(yōu)選的,所述步驟S03中,將網(wǎng)絡(luò)拓?fù)渥鳛橛袡?quán)圖,接入交換機(jī)和邊界交換機(jī)之間的路徑的權(quán)重由最短路徑的長(zhǎng)度決定,利用Dijkstra算法計(jì)算從源到匯的最短路徑。優(yōu)選的,交換機(jī)根據(jù)數(shù)據(jù)包報(bào)頭的匹配結(jié)果選擇轉(zhuǎn)發(fā)路由,數(shù)據(jù)包報(bào)頭設(shè)置有匹配字段MatchFields、優(yōu)先權(quán)字段Priority、計(jì)數(shù)字段Counters、指令字段Instructions、超時(shí)字段Timeouts、Cookie,交換機(jī)通過(guò)修改數(shù)據(jù)包報(bào)頭中的匹配字段MatchFields進(jìn)行域間路由,使數(shù)據(jù)包在域內(nèi)按照靜態(tài)流表進(jìn)行轉(zhuǎn)發(fā),在到達(dá)路徑上最后的網(wǎng)絡(luò)域時(shí),將匹配字段修改回來(lái)。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是:(1)該方法基于眾多實(shí)際網(wǎng)絡(luò)所符合的社團(tuán)結(jié)構(gòu),利用標(biāo)簽傳播算法(LPA),將大規(guī)模的SDN網(wǎng)絡(luò)劃分為一個(gè)個(gè)網(wǎng)絡(luò)域,每個(gè)網(wǎng)絡(luò)域內(nèi)部交換機(jī)之間的連接稠密,而網(wǎng)絡(luò)域之間的連接稀疏。在進(jìn)行路由決策時(shí),從源到匯路徑上所經(jīng)過(guò)的所有網(wǎng)絡(luò)域,都按照提前部署在各網(wǎng)絡(luò)域的靜態(tài)流表進(jìn)行轉(zhuǎn)發(fā),控制器只需要?jiǎng)討B(tài)控制網(wǎng)絡(luò)域之間的轉(zhuǎn)發(fā)(假設(shè)僅邊緣交換機(jī)連接有主機(jī))??刂破骱徒粨Q機(jī)之間的通信量將大大減少,從而減輕了控制器的負(fù)擔(dān),提高了網(wǎng)絡(luò)的可擴(kuò)展性,具有很廣闊的應(yīng)用前景。(2)控制器計(jì)算數(shù)據(jù)流路由的復(fù)雜度降低。在為某條跨域數(shù)據(jù)流路由時(shí),控制器只需要確定最優(yōu)域間路由路徑需要經(jīng)過(guò)哪些邊界交換機(jī),而對(duì)于域內(nèi)的交換機(jī)則可以不用考慮,相比于傳統(tǒng)路由方案計(jì)算全網(wǎng)最優(yōu)路由,該方法計(jì)算復(fù)雜度明顯降低。(3)控制平面與交換機(jī)之間的交互信息大幅度減少。在為某條跨域數(shù)據(jù)流路由時(shí),控制器只需要為路由路徑上的一小部分交換機(jī)添加流表項(xiàng),包括接入交換機(jī)和所經(jīng)過(guò)的子網(wǎng)絡(luò)域的邊界交換機(jī),相比于其他路由方案中需要給路徑上的所有交換機(jī)添加流表項(xiàng),該方案有效地減少了控制器和交換機(jī)之間的交互信息。附圖說(shuō)明下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述:圖1為本發(fā)明路由方法的流程圖;圖2為本實(shí)施例的完整網(wǎng)絡(luò)拓?fù)?;圖3為本實(shí)施例劃分的子網(wǎng)絡(luò)域;圖4為本實(shí)施例控制器在進(jìn)行域間路由時(shí)所使用的網(wǎng)絡(luò)拓?fù)洹>唧w實(shí)施方式以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說(shuō)明。應(yīng)理解,這些實(shí)施例是用于說(shuō)明本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗(yàn)中的條件。實(shí)施例:本發(fā)明軟件定義網(wǎng)絡(luò)中基于網(wǎng)絡(luò)域劃分的路由方法。將大規(guī)模的SDN網(wǎng)絡(luò)劃分為一個(gè)個(gè)小的子網(wǎng)絡(luò)域,各子網(wǎng)絡(luò)域內(nèi)只在少數(shù)交換機(jī)上提前部署靜態(tài)流表項(xiàng),數(shù)據(jù)流路由的過(guò)程中由控制器動(dòng)態(tài)控制域間路由。如圖1所示,本實(shí)施例的路由過(guò)程如下:(1)利用標(biāo)簽傳播算法(LPA)對(duì)較大規(guī)模的SDN網(wǎng)絡(luò)進(jìn)行子網(wǎng)絡(luò)域劃分,使各子網(wǎng)絡(luò)域內(nèi)部交換機(jī)之間的連接稠密,而子網(wǎng)絡(luò)域之間只有少數(shù)交換機(jī)(稱為邊界交換機(jī))相連。(2)在數(shù)據(jù)流到達(dá)之前,控制器根據(jù)最短路徑方法計(jì)算出各子網(wǎng)絡(luò)域內(nèi)部接入交換機(jī)和邊界交換機(jī)之間的轉(zhuǎn)發(fā)路徑,即將網(wǎng)絡(luò)拓?fù)湟暈闊o(wú)權(quán)圖,利用Dijkstra最短路徑算法計(jì)算接入交換機(jī)和邊界交換機(jī)之間的最短路徑,并將計(jì)算的路由結(jié)果寫(xiě)入交換機(jī)。這些靜態(tài)流表項(xiàng)只根據(jù)目的交換機(jī)的IP地址進(jìn)行匹配,其他字段都通配。(3)當(dāng)數(shù)據(jù)流到達(dá)時(shí),控制器需要對(duì)其進(jìn)行動(dòng)態(tài)路由,此時(shí)控制器只考慮接入交換機(jī)和邊界交換機(jī),即將網(wǎng)絡(luò)拓?fù)湟暈橛袡?quán)圖,接入交換機(jī)和邊界交換機(jī)之間的路徑的權(quán)重由步驟(2)中計(jì)算出的最短路徑的長(zhǎng)度決定,利用Dijkstra算法計(jì)算從源到匯的最短路徑,并將計(jì)算的路有結(jié)果寫(xiě)入交換機(jī)。路徑上的接入交換機(jī)和邊界交換機(jī)都進(jìn)行細(xì)粒度的流表匹配,并對(duì)數(shù)據(jù)包的目的IP地址進(jìn)行修改,使其能利用事先配置好的靜態(tài)路由表項(xiàng)進(jìn)行域內(nèi)轉(zhuǎn)發(fā)。為了說(shuō)明本發(fā)明框架,本實(shí)施例使用了如圖2所示的網(wǎng)絡(luò)。假設(shè)控制器計(jì)算的最優(yōu)路徑是最短路徑,實(shí)施步驟如下:(1)利用標(biāo)簽傳播算法,如圖2所示的網(wǎng)絡(luò)拓?fù)淇梢詣澐譃閮蓚€(gè)子網(wǎng)絡(luò)域,其中交換機(jī)sw1~sw9屬于一個(gè)子網(wǎng)絡(luò)域,交換機(jī)sw10~sw19為另一個(gè)子網(wǎng)絡(luò)域,其中交換機(jī)sw1、sw2、sw18、sw19為接入交換機(jī),交換機(jī)sw8、sw9、sw10、sw11為邊界交換機(jī)。(2)配置靜態(tài)流表項(xiàng)。以子網(wǎng)絡(luò)域sw1~sw9為例,如圖3,控制器根據(jù)最短路徑方法計(jì)算出各子網(wǎng)絡(luò)域內(nèi)部接入交換機(jī)和邊界交換機(jī)之間的轉(zhuǎn)發(fā)路徑,即將網(wǎng)絡(luò)拓?fù)湟暈闊o(wú)權(quán)圖,利用Dijkstra最短路徑算法計(jì)算接入交換機(jī)和邊界交換機(jī)之間的最短路徑,并將計(jì)算的路由結(jié)果寫(xiě)入交換機(jī)。為便于表示,使用IP(X)表示設(shè)備X的IP地址??刂破饔?jì)算并選擇該子網(wǎng)絡(luò)域內(nèi)的最優(yōu)路徑為sw1->sw3->sw6->sw8,sw1->sw3->sw5->sw7->sw9,sw2->sw4->sw7->sw9,sw2->sw5->sw8,sw1->sw2,sw8->sw9,則在交換機(jī)sw1上靜態(tài)配置的流表項(xiàng)如下:匹配字段操作IP(sw2),其余字段通配從端口p2轉(zhuǎn)發(fā)IP(sw8),其余字段通配從端口p3轉(zhuǎn)發(fā)IP(sw9),其余字段通配從端口p3轉(zhuǎn)發(fā)在這些路徑上的所有交換機(jī)都配置類(lèi)似的流表。(3)假設(shè)PC1接下來(lái)將向PC4發(fā)送數(shù)據(jù),控制器在步驟2中已經(jīng)計(jì)算得到sw1到sw8的最短路徑長(zhǎng)為3,sw1到sw9的最短路徑長(zhǎng)為4,sw10到sw19的最短路徑長(zhǎng)為2,sw11到sw19的最短路徑長(zhǎng)為2,因此控制器可以使用如圖4所示的拓?fù)鋪?lái)計(jì)算最優(yōu)域間路由。即將網(wǎng)絡(luò)拓?fù)湟暈橛袡?quán)圖,接入交換機(jī)和邊界交換機(jī)之間的路徑的權(quán)重由步驟(2)中計(jì)算出的最短路徑的長(zhǎng)度決定,利用Dijkstra算法計(jì)算從源到匯的最短路徑,并將計(jì)算的路有結(jié)果寫(xiě)入交換機(jī)。容易得出最短路徑為sw1->sw8->sw10->sw19,因此控制器將在這四個(gè)交換機(jī)上配置域間路由表項(xiàng),為了區(qū)分兩條不同的流,除了匹配IP地址以外還需要有更精確的匹配,因此還需要匹配其余字段,比如MAC地址,MAC(X)表示設(shè)備X的MAC地址。sw1匹配字段操作IP(pc4)及MAC(pc4)將目的IP改為IP(sw8)sw8匹配字段操作IP(sw8)及MAC(pc4)將目的IP改為IP(sw10)IP(sw10),其余字段通配從某端口直接轉(zhuǎn)發(fā)給sw10sw10匹配字段操作IP(sw10)及MAC(pc4)將目的IP改為IP(sw19)sw19匹配字段操作IP(sw19)及MAC(pc4)將目的IP改為IP(pc4)上述實(shí)例只為說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人是能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3