本發(fā)明屬于通信技術(shù)領(lǐng)域,具體涉及一種SDN網(wǎng)絡(luò)故障的重路由方法及裝置。
背景技術(shù):
近年來(lái)SDN網(wǎng)絡(luò)已成為研究熱點(diǎn),其本身所具有的控制與轉(zhuǎn)發(fā)相分離的特性為網(wǎng)絡(luò)發(fā)展及研究帶來(lái)了新的發(fā)展方向和研究熱點(diǎn)。SDN網(wǎng)絡(luò)主要由控制層和節(jié)點(diǎn)層構(gòu)成,其中控制層負(fù)責(zé)整個(gè)網(wǎng)絡(luò)中的資源及業(yè)務(wù)管理,而節(jié)點(diǎn)層面則構(gòu)成了網(wǎng)絡(luò)拓?fù)?,承載了網(wǎng)絡(luò)中的業(yè)務(wù)傳送。二者之間通過(guò)Openflow協(xié)議進(jìn)行通信。
在現(xiàn)有技術(shù)中關(guān)于SDN網(wǎng)絡(luò)故障問(wèn)題的研究較少。為了解決SDN網(wǎng)絡(luò)中發(fā)生失聯(lián)故障時(shí)進(jìn)行自動(dòng)恢復(fù)的問(wèn)題,現(xiàn)有技術(shù)當(dāng)中提出一種通過(guò)節(jié)點(diǎn)平面對(duì)SDN網(wǎng)絡(luò)失聯(lián)故障定位的方法,根據(jù)定位的結(jié)果進(jìn)行恢復(fù),并設(shè)置替代節(jié)點(diǎn)對(duì)故障節(jié)點(diǎn)進(jìn)行恢復(fù),但并未對(duì)業(yè)務(wù)如何進(jìn)行重路由進(jìn)行說(shuō)明。因此,一種如何讓對(duì)故障節(jié)點(diǎn)上的各個(gè)業(yè)務(wù)進(jìn)行重路由是亟需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題之一,提供一種可以對(duì)故障節(jié)點(diǎn)的業(yè)務(wù)進(jìn)行重路由的SDN網(wǎng)絡(luò)故障的重路由方法及裝置。
解決本發(fā)明技術(shù)問(wèn)題所采用的技術(shù)方案是一種SDN網(wǎng)絡(luò)故障的重路由方法,包括:
根據(jù)預(yù)先存儲(chǔ)的第一路由表,確定故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn);
根據(jù)與所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)的擁塞度,確定下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由;
根據(jù)所述第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,以及所述第二路由,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。
優(yōu)選的是,所述擁塞度包括負(fù)載大小。
進(jìn)一步優(yōu)選的是,所述根據(jù)與所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)的擁塞度,確定下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由的步驟包括:
計(jì)算所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn),以負(fù)載最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由。
進(jìn)一步優(yōu)選的是,當(dāng)計(jì)算出所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn)為多個(gè)時(shí),所述生成第二路由的具體包括:
計(jì)算出從重路由的初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的各條路由的負(fù)載之和,并比較得出負(fù)載之和最小的路由作為第二路由。
解決本發(fā)明技術(shù)問(wèn)題所采用的技術(shù)方案是一種SDN網(wǎng)絡(luò)故障的重路由裝置,包括:
初始節(jié)點(diǎn)確定單元,用于根據(jù)預(yù)先存儲(chǔ)的第一路由表,確定故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn);
第二路由生成單元,用于根據(jù)與所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)的擁塞度,確定下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由;
第二路由表生成單元,用于根據(jù)所述第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,以及所述第二路由,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。
優(yōu)選的是,所述擁塞度包括負(fù)載大小。
進(jìn)一步優(yōu)選的是,所述第二路由生成單元具體用于,計(jì)算所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn),以負(fù)載最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由。
進(jìn)一步優(yōu)選的是,當(dāng)計(jì)算出所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn)為多個(gè)時(shí),所述第二路由生成單元具體用于,計(jì)算出從重路由的初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的各條路由的負(fù)載之和,并比較得出負(fù)載之和最小的路由作為第二路由。
本發(fā)明具有如下有益效果:
本發(fā)明中所提供的SDN網(wǎng)絡(luò)故障的重路由方法及裝置,能夠在SDN網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生故障時(shí),對(duì)業(yè)務(wù)進(jìn)行重路由,選取了能夠滿足業(yè)務(wù)優(yōu)先級(jí),并具有較輕的計(jì)算復(fù)雜度。保證了業(yè)務(wù)能夠從節(jié)點(diǎn)故障中快速恢復(fù),進(jìn)而保證了業(yè)務(wù)的連貫性。
附圖說(shuō)明
圖1為本發(fā)明的實(shí)施例1的SDN網(wǎng)絡(luò)的拓?fù)鋱D;
圖2為本發(fā)明的實(shí)施例1的SDN網(wǎng)絡(luò)故障的重路由方法的流程圖;
圖3為本發(fā)明的實(shí)施例2的SDN網(wǎng)絡(luò)故障的重路由裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
實(shí)施例1:
本實(shí)施例提供一種SDN網(wǎng)絡(luò)故障的重路由方法,該方法通過(guò)對(duì)網(wǎng)絡(luò)故障的判斷,確定網(wǎng)絡(luò)故障點(diǎn),然后對(duì)該故障點(diǎn)上所承載業(yè)務(wù)進(jìn)行重路由,保障各個(gè)業(yè)務(wù)的有效完成,從而完成SDN網(wǎng)絡(luò)從故障狀態(tài)的恢復(fù)。
由于SDN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)的不同,傳統(tǒng)網(wǎng)絡(luò)中數(shù)據(jù)和轉(zhuǎn)發(fā)并未分離,每臺(tái)交換設(shè)備是單獨(dú)的轉(zhuǎn)發(fā)單元,也就是說(shuō)交換機(jī)或路由器僅具有轉(zhuǎn)發(fā)功能,是一個(gè)單獨(dú)的交換或路由設(shè)備。而在SDN網(wǎng)絡(luò)中,交換設(shè)備和路由設(shè)備由普通的PC計(jì)算機(jī)所代替,路由表的生成也變成了在控制器中進(jìn)行更新和計(jì)算,控制器將重新生成的路由表下發(fā)到交換設(shè)備上,交換設(shè)備更新路由,以實(shí)現(xiàn)對(duì)故障節(jié)點(diǎn)上的各個(gè)業(yè)務(wù)的轉(zhuǎn)發(fā)。如圖1所示的SDN網(wǎng)絡(luò)的拓?fù)鋱D,本實(shí)施例中的SDN網(wǎng)絡(luò)故障的重路由方法,如圖2所示,具體可以包括如下步驟:
S1、根據(jù)預(yù)先存儲(chǔ)的第一路由表,確定故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn)。
其中,每一個(gè)節(jié)點(diǎn)則代表一個(gè)底層設(shè)備,而在每個(gè)底層設(shè)備上均存儲(chǔ)有一個(gè)路由表,在該路由表上記錄每個(gè)業(yè)務(wù)的下一轉(zhuǎn)發(fā)路徑。假設(shè)故障節(jié)點(diǎn)上的業(yè)務(wù)集合為B={b1、b2、b3...bn},其中對(duì)于每個(gè)底層設(shè)備具有不同的擁塞度。
步驟S1具體可以包括:控制器根據(jù)其內(nèi)預(yù)先存儲(chǔ)的第一路由表,確定出確定故障節(jié)點(diǎn),也即發(fā)生故障的底層設(shè)備上的每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn)。例如,故障節(jié)點(diǎn)B中的業(yè)務(wù)b1的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)A,則將節(jié)點(diǎn)A作為業(yè)務(wù)b1進(jìn)行重路由的初始節(jié)點(diǎn)。
S2、根據(jù)與所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)的擁塞度,確定下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由。
其中,各個(gè)節(jié)點(diǎn)的擁塞度代表了該節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài),而擁塞度可以包括該設(shè)備上的負(fù)載的大小等其他參數(shù)。而在本實(shí)施例中,優(yōu)選的擁塞度包括負(fù)載的大小,此時(shí)步驟S2具體可以包括:
首先,計(jì)算進(jìn)行重路由的初始節(jié)點(diǎn)的下一跳節(jié)點(diǎn),該下一跳節(jié)點(diǎn)為與該初始節(jié)點(diǎn)連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn)。例如,所確定出的故障節(jié)點(diǎn)B中的業(yè)務(wù)b1進(jìn)行重路由的初始節(jié)點(diǎn)為節(jié)點(diǎn)A,而與節(jié)點(diǎn)A連接的節(jié)點(diǎn)包括節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E,此時(shí)比較節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E這三個(gè)節(jié)點(diǎn)的負(fù)載大小,其中負(fù)載最小的作為節(jié)點(diǎn)A下一跳節(jié)點(diǎn),例如節(jié)點(diǎn)C的負(fù)載最小,此時(shí)將節(jié)點(diǎn)C的作為節(jié)點(diǎn)A的下一跳節(jié)點(diǎn),按照同樣的方法,確定節(jié)點(diǎn)C的下一跳節(jié)點(diǎn),直到找到目標(biāo)節(jié)點(diǎn),之后生成第二路由(也就是,節(jié)點(diǎn)A→節(jié)點(diǎn)C....→目標(biāo)節(jié)點(diǎn)所組成的鏈路)。
而在該過(guò)程中,在比較節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E這三個(gè)節(jié)點(diǎn)的負(fù)載大小,有可能出現(xiàn)節(jié)點(diǎn)C和節(jié)點(diǎn)D的負(fù)載大小相同,此時(shí),在確定節(jié)點(diǎn)C和節(jié)點(diǎn)D的下一跳節(jié)點(diǎn)時(shí),也有可能出現(xiàn)節(jié)點(diǎn)負(fù)載大小相同的節(jié)點(diǎn),此時(shí)按照上述的方法從節(jié)點(diǎn)A到目標(biāo)節(jié)點(diǎn)將會(huì)出現(xiàn)多條鏈路,因此優(yōu)選的還包括計(jì)算出從重路由的初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的各條路由的負(fù)載之和,并比較得出負(fù)載之和最小的路由作為第二路由。
S3、根據(jù)所述第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,以及所述第二路由,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。
在步驟S2中所確定出的第二路由是故障節(jié)點(diǎn)之后的各個(gè)節(jié)點(diǎn)的連接關(guān)系,此時(shí)還需要根據(jù)控制器中所存儲(chǔ)的第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,將第一路由和第二路由結(jié)合,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。例如節(jié)點(diǎn)A的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)H,節(jié)點(diǎn)H的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)G,故第二路由表中的業(yè)務(wù)b1路由弄為節(jié)點(diǎn)G→節(jié)點(diǎn)H→節(jié)點(diǎn)A→節(jié)點(diǎn)C....→目標(biāo)節(jié)點(diǎn),按照上述方法生成各個(gè)業(yè)務(wù)的路由表。此時(shí),控制器根據(jù)所生成的第二路由表進(jìn)行更新,并下發(fā)送到各個(gè)底層設(shè)備上。
本實(shí)施例中所提供的SDN網(wǎng)絡(luò)故障的重路由方法,能夠在SDN網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生故障時(shí),對(duì)業(yè)務(wù)進(jìn)行重路由,選取了能夠滿足業(yè)務(wù)優(yōu)先級(jí),并具有較輕的計(jì)算復(fù)雜度。保證了業(yè)務(wù)能夠從節(jié)點(diǎn)故障中快速恢復(fù),保證了業(yè)務(wù)的連貫性。
實(shí)施例2:
如圖3所示,本實(shí)施例提供一種SDN網(wǎng)絡(luò)故障的重路由裝置,該裝置可以用于實(shí)施例1中SDN網(wǎng)絡(luò)故障的重路由方法。該裝置包括:初始節(jié)點(diǎn)確定單元、第二路由生成單元、第二路由表生成單元。
具體的,初始節(jié)點(diǎn)確定單元用于根據(jù)預(yù)先存儲(chǔ)的第一路由表,確定故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn)。
其中,每一個(gè)節(jié)點(diǎn)則代表一個(gè)底層設(shè)備,而在每個(gè)底層設(shè)備上均存儲(chǔ)有一個(gè)路由表,在該路由表上記錄每個(gè)業(yè)務(wù)的下一轉(zhuǎn)發(fā)路徑。假設(shè)故障節(jié)點(diǎn)上的業(yè)務(wù)集合為B={b1、b2、b3...bn},其中對(duì)于每個(gè)底層設(shè)備具有不同的擁塞度。初始節(jié)點(diǎn)確定單元根據(jù)其內(nèi)預(yù)先存儲(chǔ)的第一路由表,確定出確定故障節(jié)點(diǎn),也即發(fā)生故障的底層設(shè)備上的每個(gè)業(yè)務(wù)的上一跳節(jié)點(diǎn),并作為每個(gè)業(yè)務(wù)進(jìn)行重路由的初始節(jié)點(diǎn)。例如,故障節(jié)點(diǎn)B中的業(yè)務(wù)b1的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)A,則將節(jié)點(diǎn)A作為業(yè)務(wù)b1進(jìn)行重路由的初始節(jié)點(diǎn)。
具體的,第二路由生成單用于根據(jù)與所述初始節(jié)點(diǎn)所連接的各個(gè)節(jié)點(diǎn)的擁塞度,確定下一跳節(jié)點(diǎn),直至找到目的節(jié)點(diǎn),并生成第二路由。
其中,各個(gè)節(jié)點(diǎn)的擁塞度代表了該節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài),而擁塞度可以包括該設(shè)備上的負(fù)載的大小等其他參數(shù)。而在本實(shí)施例中,優(yōu)選的擁塞度包括負(fù)載的大小。
第二路由生成單元具體用于,首先計(jì)算進(jìn)行重路由的初始節(jié)點(diǎn)的下一跳節(jié)點(diǎn),該下一跳節(jié)點(diǎn)為與該初始節(jié)點(diǎn)連接的各個(gè)節(jié)點(diǎn)中負(fù)載最小的節(jié)點(diǎn)。例如,所確定出的故障節(jié)點(diǎn)B中的業(yè)務(wù)b1進(jìn)行重路由的初始節(jié)點(diǎn)為節(jié)點(diǎn)A,而與節(jié)點(diǎn)A連接的節(jié)點(diǎn)包括節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E,此時(shí)比較節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E這三個(gè)節(jié)點(diǎn)的負(fù)載大小,其中負(fù)載最小的作為節(jié)點(diǎn)A下一跳節(jié)點(diǎn),例如節(jié)點(diǎn)C的負(fù)載最小,此時(shí)將節(jié)點(diǎn)C的作為節(jié)點(diǎn)A的下一跳節(jié)點(diǎn),按照同樣的方法,確定節(jié)點(diǎn)C的下一跳節(jié)點(diǎn),直到找到目標(biāo)節(jié)點(diǎn),之后生成第二路由(也就是,節(jié)點(diǎn)A→節(jié)點(diǎn)C....→目標(biāo)節(jié)點(diǎn)所組成的鏈路)。
而在該過(guò)程中,在比較節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E這三個(gè)節(jié)點(diǎn)的負(fù)載大小,有可能出現(xiàn)節(jié)點(diǎn)C和節(jié)點(diǎn)D的負(fù)載大小相同,此時(shí),在確定節(jié)點(diǎn)C和節(jié)點(diǎn)D的下一跳節(jié)點(diǎn)時(shí),也有可能出現(xiàn)節(jié)點(diǎn)負(fù)載大小相同的節(jié)點(diǎn),此時(shí)按照上述的方法從節(jié)點(diǎn)A到目標(biāo)節(jié)點(diǎn)將會(huì)出現(xiàn)多條鏈路,因此優(yōu)選的第二路由生成單元還用于計(jì)算出從重路由的初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的各條路由的負(fù)載之和,并比較得出負(fù)載之和最小的路由作為第二路由。
具體的,第二路由表生成單元用于根據(jù)所述第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,以及所述第二路由,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。
其中,在第二路由生成單元所確定出的第二路由是故障節(jié)點(diǎn)之后的各個(gè)節(jié)點(diǎn)的連接關(guān)系,此時(shí)第二路由表生成單元還需要根據(jù)初始節(jié)點(diǎn)確定單元中所存儲(chǔ)的第一路由表中進(jìn)行重路由的初始節(jié)點(diǎn)之前的第一路由,將第一路由和第二路由結(jié)合,生成故障節(jié)點(diǎn)中每個(gè)業(yè)務(wù)的第二路由表。例如節(jié)點(diǎn)A的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)H,節(jié)點(diǎn)H的上一跳節(jié)點(diǎn)為節(jié)點(diǎn)G,故第二路由表中的業(yè)務(wù)b1路由弄為節(jié)點(diǎn)G→節(jié)點(diǎn)H→節(jié)點(diǎn)A→節(jié)點(diǎn)C....→目標(biāo)節(jié)點(diǎn),按照上述方法生成各個(gè)業(yè)務(wù)的路由表。此時(shí),第二路由表生成單元根據(jù)所生成的第二路由表進(jìn)行更新,并下發(fā)送到各個(gè)底層設(shè)備上。
本實(shí)施例中所提供的SDN網(wǎng)絡(luò)故障的重路由裝置,能夠在SDN網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生故障時(shí),對(duì)業(yè)務(wù)進(jìn)行重路由,選取了能夠滿足業(yè)務(wù)優(yōu)先級(jí),并具有較輕的計(jì)算復(fù)雜度。保證了業(yè)務(wù)能夠從節(jié)點(diǎn)故障中快速恢復(fù),保證了業(yè)務(wù)的連貫性。
可以理解的是,以上實(shí)施方式僅僅是為了說(shuō)明本發(fā)明的原理而采用的示例性實(shí)施方式,然而本發(fā)明并不局限于此。對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實(shí)質(zhì)的情況下,可以做出各種變型和改進(jìn),這些變型和改進(jìn)也視為本發(fā)明的保護(hù)范圍。