一種基于軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及容災(zāi)恢復(fù),尤其設(shè)及一種網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng)及方法。
【背景技術(shù)】
[0002] 自然災(zāi)害(如地震,洪水)和人為災(zāi)害(如供電失效,恐怖襲擊),會(huì)造成的大量的網(wǎng) 絡(luò)設(shè)備同時(shí)失效,導(dǎo)致大量的用戶斷連,且災(zāi)后修復(fù)難度大、修復(fù)時(shí)間長(zhǎng)。隨著互聯(lián)網(wǎng)技術(shù) 的迅速發(fā)展W及大數(shù)據(jù)時(shí)代的到來(lái),運(yùn)種事件造成的長(zhǎng)時(shí)間網(wǎng)絡(luò)斷連會(huì)造成大量用戶失聯(lián) W及數(shù)據(jù)丟失,造成不可估量的經(jīng)濟(jì)損失,因此對(duì)于大規(guī)模網(wǎng)絡(luò)的可靠性要求也越來(lái)越高。 然而,隨著網(wǎng)絡(luò)大規(guī)模部署,使得網(wǎng)絡(luò)很容易被自然災(zāi)害和人為災(zāi)害破壞,產(chǎn)生大小不同, 破壞程度不同的網(wǎng)絡(luò)失效問(wèn)題,造成很多用戶長(zhǎng)時(shí)間被影響,帶來(lái)巨大的經(jīng)濟(jì)損失。
[0003] 傳統(tǒng)網(wǎng)絡(luò)恢復(fù)技術(shù)中沒有有效的手段來(lái)應(yīng)對(duì)運(yùn)種由災(zāi)害導(dǎo)致的區(qū)域性網(wǎng)絡(luò)故障。 運(yùn)種區(qū)域性故障具有突發(fā)性W及發(fā)生位置和大小的不確定性,使得傳統(tǒng)的網(wǎng)絡(luò)恢復(fù)技術(shù), 包括網(wǎng)絡(luò)保護(hù)和網(wǎng)絡(luò)修復(fù)技術(shù),都不能很好的工作。網(wǎng)絡(luò)保護(hù)技術(shù),依賴故障發(fā)生前網(wǎng)絡(luò)中 已分配的備份資源,只針對(duì)特定的有限的故障場(chǎng)景有效,無(wú)法很好的處理所有的故障場(chǎng)景; 網(wǎng)絡(luò)修復(fù)技術(shù),雖然在故障發(fā)生的時(shí)候動(dòng)態(tài)的計(jì)算路徑,即針對(duì)所有的故障場(chǎng)景都有效,但 是,其收斂的時(shí)間過(guò)長(zhǎng),且收斂過(guò)程中有可能出現(xiàn)嚴(yán)重的環(huán)路和黑桐。傳統(tǒng)網(wǎng)絡(luò)恢復(fù)技術(shù)或 者連通性恢復(fù)差,或者恢復(fù)時(shí)間漫長(zhǎng),就目前已有的恢復(fù)技術(shù)來(lái)看,如何快速地在災(zāi)后高效 地恢復(fù)網(wǎng)絡(luò),尚沒有可行的解決辦法。
[0004] 軟件定義網(wǎng)絡(luò)技術(shù)將傳統(tǒng)網(wǎng)絡(luò)的數(shù)據(jù)平面和控制平面分離出來(lái),使得靈活的網(wǎng)絡(luò) 配置和管理成為可能。軟件定義網(wǎng)絡(luò)有一個(gè)集中式的控制器,控制器具有全網(wǎng)的視圖。因 此,運(yùn)種架構(gòu)帶來(lái)的靈活性對(duì)于不確定的區(qū)域故障十分有效。但是,因?yàn)閰^(qū)域故障造成的重 連請(qǐng)求非常多,將所有區(qū)域故障重連請(qǐng)求都交由控制平面處理會(huì)帶來(lái)額外的問(wèn)題,包括:控 制器的伸縮性問(wèn)題,包的一致性處理問(wèn)題,和恢復(fù)時(shí)延問(wèn)題。簡(jiǎn)單的引入軟件定義網(wǎng)絡(luò)仍不 能在運(yùn)種場(chǎng)景下很好的工作。
[000引所W構(gòu)建一個(gè)快速高可靠性的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng)在高傳輸速度、高傳輸量的大數(shù) 據(jù)時(shí)代具有極高的應(yīng)用價(jià)值和廣闊的應(yīng)用前景。
【發(fā)明內(nèi)容】
[0006] 發(fā)明目的:為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提供了一種基于軟件定義網(wǎng) 絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng),同時(shí)提供了一種基于軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)方 法。
[0007] 技術(shù)方案:本發(fā)明提供的一種基于軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng),基于 軟件定義網(wǎng)絡(luò)技術(shù),包括位于軟件定義網(wǎng)絡(luò)的數(shù)據(jù)平面的備份拓?fù)渖赡K和位于軟件定 義網(wǎng)絡(luò)的控制平面的拼接模塊;所述備份拓?fù)渖赡K用于在災(zāi)前生成備份拓?fù)洌⒏鶕?jù) 災(zāi)害地理特性計(jì)算出備份路徑并安裝到軟件定義網(wǎng)絡(luò)的數(shù)據(jù)平面中,且在數(shù)據(jù)平面對(duì)部分 因?yàn)?zāi)害發(fā)生而導(dǎo)致的重連請(qǐng)求執(zhí)行本地快速恢復(fù);所述拼接模塊用于在控制平面處理那些 在數(shù)據(jù)平面不能處理的災(zāi)害故障重連請(qǐng)求。
[0008] 優(yōu)選的,該基于軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng),包括:
[0009] 備份拓?fù)渖蓡卧?,用于W原始網(wǎng)絡(luò)拓?fù)錇檩斎耄趥浞萃負(fù)渖赡K中生成并 保存多張用于對(duì)節(jié)點(diǎn)的失效快速恢復(fù)的備份網(wǎng)絡(luò)拓?fù)鋱D;
[0010] 備份路徑生成單元,用于根據(jù)備份拓?fù)渖蓡卧傻亩鄰垈浞菥W(wǎng)絡(luò)拓?fù)鋱D,結(jié) 合輸入的災(zāi)害地理特性,使用路徑的脆弱性區(qū)域在每張備份拓?fù)渖仙蓚浞萋窂讲⒈4妫?br>[0011] 備份路徑安裝單元,用于在控制平面上,根據(jù)備份路徑生成單元中生成并保存的 備份路徑生成相應(yīng)的流表項(xiàng),安裝新的路由策略到數(shù)據(jù)平面;
[0012] 數(shù)據(jù)平面數(shù)據(jù)包轉(zhuǎn)發(fā)及檢測(cè)單元,用于數(shù)據(jù)平面中每個(gè)路由節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包 時(shí),檢測(cè)下一跳端口是否有效,如果有效,則直接轉(zhuǎn)發(fā)數(shù)據(jù)包,如果無(wú)效,進(jìn)入數(shù)據(jù)平面本地 快速恢復(fù)單元執(zhí)行本地快速恢復(fù);
[0013] 數(shù)據(jù)平面本地快速恢復(fù)單元,用于執(zhí)行數(shù)據(jù)平面的本地快速恢復(fù),根據(jù)備份路由 選擇一個(gè)轉(zhuǎn)發(fā)端口,如果轉(zhuǎn)發(fā)端口有效,直接轉(zhuǎn)發(fā),如果無(wú)效則將數(shù)據(jù)包發(fā)往控制平面;
[0014] 控制平面拼接處理及判定單元,用于在控制平面運(yùn)行拼接模塊,根據(jù)拼接模塊的 輸出生成新流表項(xiàng),安裝到控制平面中;并判定是否因網(wǎng)絡(luò)物理上不連通造成路由失效;
[0015] 物理網(wǎng)絡(luò)不連通通知單元,用于當(dāng)判定因網(wǎng)絡(luò)物理上不連通造成路由失效時(shí),通 知數(shù)據(jù)包的源節(jié)點(diǎn)和目的節(jié)點(diǎn),物理網(wǎng)絡(luò)已不再連通。
[0016] 本發(fā)明同時(shí)提供一種基于軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)方法,包括如下步 驟:
[0017] (A)備份拓?fù)渖赡K中備份拓?fù)渖桑篧原始網(wǎng)絡(luò)拓?fù)錇檩斎?,生成并保存多?用于對(duì)節(jié)點(diǎn)的失效快速恢復(fù)的備份網(wǎng)絡(luò)拓?fù)鋱D;
[0018] (B)根據(jù)備份拓?fù)渖赡K生成安裝到數(shù)據(jù)平面的備份路徑:在步驟(A)中生成并 保存的多張備份拓?fù)鋱D上,結(jié)合輸入的災(zāi)害地理特性,使用路徑的脆弱性區(qū)域在每張備份 拓?fù)渖仙蓚浞萋窂讲⒈4妫?br>[0019] (C)在數(shù)據(jù)平面中安裝備份路徑:由控制平面根據(jù)步驟(B)中生成并保存的備份路 徑生成相應(yīng)的流表項(xiàng),并安裝路由策略到數(shù)據(jù)平面;
[0020] (D)數(shù)據(jù)平面數(shù)據(jù)包轉(zhuǎn)發(fā)及檢測(cè):數(shù)據(jù)平面每個(gè)路由節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),每次檢 測(cè)下一跳端口是否有效,如果有效,則直接轉(zhuǎn)發(fā)數(shù)據(jù)包,如果無(wú)效,進(jìn)入步驟化);
[0021] 化)數(shù)據(jù)平面本地快速恢復(fù):執(zhí)行數(shù)據(jù)平面的本地快速恢復(fù),根據(jù)備份路由選擇一 個(gè)轉(zhuǎn)發(fā)端口,如果轉(zhuǎn)發(fā)端口有效,直接轉(zhuǎn)發(fā),如果無(wú)效則將數(shù)據(jù)包發(fā)往控制平面,進(jìn)入步驟 巧);
[0022] (F)控制平面拼接處理及判定:控制平面運(yùn)行拼接模塊,根據(jù)拼接模塊的輸出生成 新流表項(xiàng),安裝到控制平面中;并判定因網(wǎng)絡(luò)物理上不連通造成路由失效時(shí),進(jìn)入步驟(G);
[0023] (G)物理網(wǎng)絡(luò)不連通通知:通知數(shù)據(jù)包的源節(jié)點(diǎn)和目的節(jié)點(diǎn),物理網(wǎng)絡(luò)已不再連 通。
[0024] 優(yōu)選的,所述步驟(A)中,W原始網(wǎng)絡(luò)拓?fù)銰為輸入,生成并保存k個(gè)用于對(duì)節(jié)點(diǎn)的 失效快速恢復(fù)的備份網(wǎng)絡(luò)拓?fù)鋥Gr-Gk};
[0025] 所述步驟(B)中包括如下步驟:
[0026] 1):從應(yīng)用本系統(tǒng)的整個(gè)區(qū)間[ra,rb]中均勻地取出k個(gè)點(diǎn)Ti,其中巧=馬+
ra、n分別是輸入的災(zāi)害地理特性中災(zāi)害預(yù)期發(fā)生的最小、最大半徑,對(duì)于特 定的源目的節(jié)點(diǎn)對(duì)S和t,在原始網(wǎng)絡(luò)拓?fù)銰中找到從S到t的主路徑X備,及其對(duì)應(yīng)的大小為ri 的脆弱性區(qū)域瑞t,庚中<k;
[0027] 2):遍歷每一個(gè)備份拓?fù)銰i,如備份拓?fù)銰i中的鏈路eU的大小為ri的脆弱性區(qū)域 馬1/與蠟慚大小n為的脆弱性區(qū)域相交,則通過(guò)配置Gi中的運(yùn)條鏈路山的權(quán)重大于 原始網(wǎng)絡(luò)拓?fù)銰中所有邊的權(quán)重之和,使其不會(huì)被基于權(quán)重的路徑尋找算法使用從而被配 置為被隔離的鏈路;然后在備份拓?fù)銰i中通過(guò)最短路徑算法,找到從S到t的備份路徑,使得 Gi成為與失效半徑為ri的網(wǎng)絡(luò)故障對(duì)應(yīng)的備份拓?fù)?,返回在k個(gè)備份拓?fù)鋥Gr-Gk}上的k個(gè) 備份路徑{咸…姥擊其中鏈路eW的脆弱性區(qū)域馬;_^為所有半徑是ri且能夠損毀eL的故障 的圓屯、的集合,即落在此區(qū)域中的故障為ri的區(qū)域故障均會(huì)破壞鏈路ekv,路徑的脆弱性區(qū) 域是該路徑所包括的所有鏈路的脆弱性區(qū)域的并集。
[0028] 作為優(yōu)選的,所述步驟(F)中所述拼接模塊包括:構(gòu)建一個(gè)新的臨時(shí)網(wǎng)絡(luò)拓?fù)鋱D ,其節(jié)點(diǎn)與G相同,依次將{Gr-Gk}計(jì)算出來(lái)的由S到t的備份路徑上未被摧毀的邊加入到 中,如果在中目的節(jié)點(diǎn)可達(dá),則拼接模塊在中計(jì)算一條新的路徑p/,包含在拼接指令 動(dòng)作中作為拼接模塊的輸出。
[0029] 優(yōu)選的,所述步驟(F)中所述拼接模塊包括:
[0030] step Fl:構(gòu)建一個(gè)臨時(shí)的網(wǎng)絡(luò)拓?fù)渥o(hù)中的節(jié)點(diǎn)與G中相同,中的初始邊集為 空;
[003。 Step F2:依次取出備份拓?fù)鋥Gr-Gk}中的備份路徑[娃…煉j中的未被摧毀的邊, 加入到護(hù)中去;
[0032] Step F3:根據(jù)原始拓?fù)鋱DG中所有節(jié)點(diǎn)對(duì)間的路由路徑,和在數(shù)據(jù)平面本地快速 恢復(fù)的重路由路徑,置圖中存活的鏈路euv的權(quán)重為(P(u)+P(v)+R/ (u)+R/ (v))/2;其中每 個(gè)節(jié)點(diǎn)U的第一權(quán)值P(U)為原始圖中通過(guò)該節(jié)點(diǎn)路徑條數(shù),每個(gè)節(jié)點(diǎn)U的第二權(quán)值R/(U)為 數(shù)據(jù)平面的本地重路由通過(guò)該節(jié)點(diǎn)的路徑條數(shù);
[0033] St邱F4:根據(jù)每條鏈路euv的權(quán)重,在圖中使用最短路算法找到從S到t的路徑, 將其包含在拼接指令動(dòng)作中輸出。
[0034] 作為優(yōu)選的,上述數(shù)據(jù)平面通過(guò)利用在化enFlow多表流水線的多張路由表中安裝 由備份拓?fù)渖赡K生成的備份路由,W及在化enFlow快速恢復(fù)組表中安裝快速恢復(fù)桶動(dòng) 作,來(lái)實(shí)現(xiàn)數(shù)據(jù)平面的本地快速恢復(fù),使得交換機(jī)在本地檢查下一跳的存活性后,根據(jù)下一 跳的存活性選擇不同的端口發(fā)送包,當(dāng)主路徑的備份端口和備份路徑的下一跳端口都斷連 時(shí),交換機(jī)會(huì)將包送到控制器,由控制平面的拼接模塊處理。
[0035] 有益效果:相較于簡(jiǎn)單的完全將故障請(qǐng)求送給控制器來(lái)處理,本發(fā)明提出的基于 軟件定義網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)容災(zāi)恢復(fù)系統(tǒng)及方法,將大部分的請(qǐng)求在數(shù)據(jù)平面處理掉,從而 避免了從數(shù)據(jù)平面到控制平面的往返