一種軟件定義抗毀網(wǎng)絡(luò)構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計算機(jī)網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別設(shè)及一種軟件定義抗毀網(wǎng)絡(luò)構(gòu)建方 法。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)抗毀性在通信網(wǎng)遭受故障使部分節(jié)點或線路失效后仍能頑強(qiáng)地為用戶提供 服務(wù)的能力。冗余備份是解決網(wǎng)絡(luò)抗毀性問題的主要途徑。根據(jù)抗毀應(yīng)用需求,建立抗毀 測度模型,對網(wǎng)絡(luò)抗毀能力進(jìn)行測量和評估,通過增加節(jié)點或鏈路備份使網(wǎng)絡(luò)抗毀能力符 合應(yīng)用需求。備份的形式可W是完全冗余備份,即正常鏈路失效時才備份鏈路才投入使用; 也可W是共享冗余備份,即所有鏈路平等一起投入使用,當(dāng)有鏈路失效時由路由協(xié)議完成 實時動態(tài)切換。
[0003] 隨著網(wǎng)絡(luò)環(huán)境復(fù)雜度的增加和網(wǎng)絡(luò)應(yīng)用的不斷增多,傳統(tǒng)的冗余備份技術(shù)可能出 現(xiàn)W下問題:1)基于路由的冗余備份方法,由于路由節(jié)點需要交換路由表信息,在分區(qū)分 域或網(wǎng)絡(luò)規(guī)模大的情況下,無法實時進(jìn)行備份網(wǎng)絡(luò)切換;2)基于網(wǎng)絡(luò)拓?fù)涞目箽栽O(shè)計無 法區(qū)分信息流的重要性,也就無法在網(wǎng)絡(luò)毀傷時保障核屯、重要業(yè)務(wù)的運(yùn)行;3)路由信息分 布在各路由節(jié)點上,無法獲得全局網(wǎng)絡(luò)狀態(tài)信息,拓?fù)湔{(diào)整只能局部進(jìn)行,調(diào)整后的影響也 無法快速準(zhǔn)確獲得。
[0004] 軟件定義網(wǎng)絡(luò)(Software Defined Networking, SDN)是近年來提出的一種新型 網(wǎng)絡(luò)體系結(jié)構(gòu),能夠?qū)崿F(xiàn)數(shù)據(jù)平面和控制平面的解禪。在數(shù)據(jù)平面中,交換機(jī)等網(wǎng)絡(luò)核屯、 設(shè)備負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā)和處理;在控制平面中,存在集中式控制器,與各個交換機(jī)通過控制 鏈路相連,通過控制交換機(jī)中的流表項來指導(dǎo)交換機(jī)工作。針對傳統(tǒng)網(wǎng)絡(luò)抗毀設(shè)計中的備 份切換實時性差、全局信息獲取難、路徑控制難等問題,軟件定義網(wǎng)絡(luò)中的控制器能夠通過 化enFlow協(xié)議實現(xiàn)對各交換機(jī)設(shè)備的訪問控制。交換機(jī)依據(jù)流表對數(shù)據(jù)包進(jìn)行處理,通過 對數(shù)據(jù)流進(jìn)行更加細(xì)粒度的進(jìn)行路徑規(guī)劃和控制。軟件定義網(wǎng)絡(luò)技術(shù)對復(fù)雜網(wǎng)絡(luò)環(huán)境的控 制還體現(xiàn)在控制器的可編程性,可W通過控制器邏輯設(shè)計實現(xiàn)對網(wǎng)絡(luò)的規(guī)劃和控制。
【發(fā)明內(nèi)容】
[0005] 發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種軟件定 義抗毀網(wǎng)絡(luò)構(gòu)建方法。針對有高可靠需求的網(wǎng)絡(luò)采用軟件定義網(wǎng)絡(luò)進(jìn)行構(gòu)建,由抗毀控制 器實時獲取網(wǎng)絡(luò)流量及拓?fù)渥兓闆r,運(yùn)用網(wǎng)絡(luò)抗毀評估測度對網(wǎng)絡(luò)的抗毀性和薄弱環(huán)節(jié) 進(jìn)行計算,最終通過對軟件定義交換機(jī)的流量設(shè)置對網(wǎng)絡(luò)進(jìn)行流量規(guī)劃和毀傷處理,可有 效提高網(wǎng)絡(luò)抗毀性。
[0006] 實現(xiàn)本發(fā)明的技術(shù)思路是:根據(jù)網(wǎng)絡(luò)拓?fù)浣D模型,針對圖模型進(jìn)行網(wǎng)絡(luò)抗毀 性評估分析,合理規(guī)劃網(wǎng)絡(luò)路由,形成正常路由和備份路由兩套路由表。設(shè)計能夠感知軟件 定義網(wǎng)絡(luò)拓?fù)?、流量變化、毀傷情況的抗毀控制器程序,調(diào)用抗毀評估方法獲得路由規(guī)劃, 并將路由規(guī)劃轉(zhuǎn)成流表下發(fā)給各軟件定義網(wǎng)絡(luò)交換機(jī)。
[0007] 本發(fā)明具體步驟如下:
[0008] 步驟1,構(gòu)建抗毀網(wǎng)絡(luò),所述抗毀網(wǎng)絡(luò)包括SDN交換機(jī)組成的網(wǎng)絡(luò),W及網(wǎng)絡(luò)抗毀 控制器與所有SDN交換機(jī)之間的通信網(wǎng)絡(luò),所述網(wǎng)絡(luò)抗毀控制器用于進(jìn)行網(wǎng)絡(luò)傳輸路徑規(guī) 劃,所述SDN交換機(jī)根據(jù)網(wǎng)絡(luò)流表轉(zhuǎn)發(fā)數(shù)據(jù)實現(xiàn)網(wǎng)絡(luò)端到端數(shù)據(jù)傳遞;
[0009] 步驟2,根據(jù)抗毀評估算法,通過增加或刪除網(wǎng)絡(luò)節(jié)點和鏈路,使網(wǎng)絡(luò)設(shè)計滿足抗 毀冗余要求;
[0010] 步驟3,部署抗毀網(wǎng)絡(luò); W11] 步驟4,網(wǎng)絡(luò)毀傷檢測及恢復(fù):網(wǎng)絡(luò)抗毀控制器實時獲取SDN交換機(jī)工作狀態(tài),當(dāng) SDN交換機(jī)有鏈路毀傷時,進(jìn)行網(wǎng)絡(luò)毀傷恢復(fù)。
[0012] 步驟1中,SDN交換機(jī)組成的網(wǎng)絡(luò)具有抗毀特性,所述網(wǎng)絡(luò)抗毀控制器與所有SDN交換機(jī)之間采用傳統(tǒng)IP網(wǎng)絡(luò)構(gòu)建。
[001引步驟1中,網(wǎng)絡(luò)抗毀控制器與SDN交換機(jī)之間通過化enflow協(xié)議通信,網(wǎng)絡(luò)抗毀 控制器實時獲取SDN交換機(jī)之間的連接情況,包括SDN交換機(jī)的加入、退出和鏈路的斷開情 況。
[0014] 步驟2包括W下步驟:
[001引步驟2-1,用網(wǎng)絡(luò)拓?fù)鋱DG表示網(wǎng)絡(luò)拓?fù)?,建立網(wǎng)絡(luò)拓?fù)鋱DG的鄰接矩陣A(G),矩 陣元素用[0,U表示,i和j表示SDN交換機(jī)節(jié)點,當(dāng)ai,i= 1時,表示節(jié)點i,j之間 存在鏈路,當(dāng)a;,J= 0時,表示節(jié)點i,j之間不存在鏈路;
[0016] 步驟2-2,建立網(wǎng)絡(luò)拓?fù)鋱DG的拉氏矩陣UG),UG)=D似-A(G),其中D似是節(jié) 點度對角線矩陣,如下式所示:
[0017] 。幽)二{ 0 ,其它> 陽01引其中deg(i)表示節(jié)點i的節(jié)點度,
[0019] 建立網(wǎng)絡(luò)拓?fù)鋱DG的正則拉氏矩陣r(G):
[0020] 如果 / = 0 ,如果巧n/連接 :, 其它
[0021] 其中deg(j)表示節(jié)點j的節(jié)點度; 陽〇2引步驟2-3,采用雅可比方法求解r(G)的特征值集合{>1,A,,…,入。},得到特征 值的概率密度和概率分布,n表示特征值的總數(shù),求解r(G)譜半徑P=IAmJ,概率密度 P(入=0)表示網(wǎng)絡(luò)中連通分支的數(shù)量,特征值在0附近富集表示網(wǎng)絡(luò)拓?fù)鋱DG擁有兩個W 上的連通分支,概率密度P(A= 1)表示網(wǎng)絡(luò)中屯、的數(shù)量,特征值在1附近富集表示網(wǎng)絡(luò)拓 撲圖G擁有兩個W上的網(wǎng)絡(luò)中屯、,譜半徑P=IAmJ越小代表抗毀性越差,譜半徑P= AmJ越大代表抗毀性越好。特征值是一個集合,它的最大值用^max表示,不帶下標(biāo)的A 表不變量。
[0023]步驟3包括W下步驟: W24] 步驟3-1,網(wǎng)絡(luò)抗毀控制器為SDN交換機(jī)配置IP地址;例如網(wǎng)絡(luò)用戶為 192. 168. 0. 10/24,SDN交換機(jī)的IP地址一般設(shè)置為192. 168. 0. 1/24。根據(jù)不同網(wǎng)段用戶 終端的多少,一個SDN交換機(jī)可W擁有多個IP地址。
[00巧]步驟3-2,網(wǎng)絡(luò)抗毀控制器為SDN交換機(jī)之間連接的每條鏈路分配邏輯網(wǎng)絡(luò)地 址,鏈路兩端的SDN交換機(jī)分別為該網(wǎng)段的第1個地址和第2個地址;例如網(wǎng)絡(luò)地址為 20. 0. 0. 0/24,則連接鏈路的兩個SDN交換機(jī)地址分別為20. 0. 0. 1和20. 0. 0. 2。根據(jù)鄰居 SDN交換機(jī)的多少,一個SDN交換機(jī)可W擁有多個邏輯IP地址。
[00%] 步驟3-3,網(wǎng)絡(luò)抗毀控制器根據(jù)IP地址及拓?fù)潢P(guān)系計算網(wǎng)絡(luò)路由并獲得路由表, 然后將路由表轉(zhuǎn)換成網(wǎng)絡(luò)流表下發(fā)至各SDN交換機(jī)。
[0027]步驟3-3中,網(wǎng)絡(luò)抗毀控制器通過感知SDN交換機(jī)組成的網(wǎng)絡(luò)拓?fù)?,并根?jù)所有分 配的IP地址進(jìn)行網(wǎng)絡(luò)最短路徑路由規(guī)劃,即抗毀網(wǎng)絡(luò)能夠傳輸所有用戶終端之間的IP網(wǎng) 絡(luò)流量。
[002引步驟3-3中,所述路由表包括目的網(wǎng)絡(luò)地址、下一跳交換機(jī)的IP地址、路由表項ID,路由表存儲于本地,所述網(wǎng)絡(luò)流表包括匹配網(wǎng)絡(luò)地址、出口端口號。
[0029] 步驟4中,網(wǎng)絡(luò)毀傷恢復(fù)采取最短路徑恢復(fù)策略,包括如下步驟:
[0030] 根據(jù)最短路徑算法(例如Bellman-Ford算法)計算抗毀網(wǎng)絡(luò)最短路徑矩陣spal, 將毀傷節(jié)點或鏈路從網(wǎng)絡(luò)拓?fù)渲袆h除,重新計算全網(wǎng)端到端最短路徑矩陣spa2 ; 陽03U 步驟4-2,遍歷網(wǎng)絡(luò)拓?fù)鋱DG中的每個SDN交換機(jī)(本發(fā)明中,SDN交換機(jī)指SDN 交換機(jī)個體,而SDN交換機(jī)節(jié)點指網(wǎng)絡(luò)拓?fù)涔?jié)點,一個拓?fù)涔?jié)點代表一個SDN交換機(jī))針對 每個需要路由的IP網(wǎng)絡(luò)地址,分別從矩陣spal和矩陣spa2中,獲取當(dāng)前SDN交換機(jī)節(jié)點到 該IP網(wǎng)絡(luò)地址的下一跳節(jié)點編號,記為nexthopidl和nexthopid2,判斷編號nexthopidl 和編號nexthopid2是否相等,如果不相等,將該SDN交換機(jī)的網(wǎng)絡(luò)流表進(jìn)行更新,否則不更 新;
[0032] 步驟4-3,刪除SDN交換機(jī)中需要更新的舊網(wǎng)絡(luò)流表,重新下發(fā)新的網(wǎng)絡(luò)流表。其 中,步驟4中,網(wǎng)絡(luò)毀傷恢復(fù)還可W采取最快速度恢復(fù)策略,包括如下步驟:
[0033] 步驟5-1,獲取斷開的鏈路兩端的SDN交換機(jī)編號,分別記為化idl、化id2;
[0034] 步驟5-2,獲取斷開的鏈路兩端的SDN交換機(jī)相鄰IP地址,分別記為ipl、ip2;
[0035] 步驟5-3,查詢編號為化idl的SDN交換機(jī)節(jié)點的路由表,記下一跳地址為ipl的 路由為routel ;查詢編號為化id2的SDN交換機(jī)節(jié)點的路由表,記下一跳地址為ip2的路 由為routes;
[0036] 步驟5-4,從網(wǎng)絡(luò)拓?fù)鋱DG中刪除毀傷的節(jié)點或鏈路;
[0037] 步驟5-5,計算編號化idl到化id2所對應(yīng)SDN交換機(jī)之間的新的最短路徑pi;計 算編號化id2到化idl所對應(yīng)SDN交換機(jī)之間的新的最短路徑p2 ;
[0038] 步驟5-6,從編號化idl起沿路徑Pl遍歷,每次取順序兩個節(jié)點al和bl,檢查節(jié) 點bl路由表中目的路由ro