本發(fā)明涉及信息安全領(lǐng)域,尤其是一種基于多維空間疊加模型的SDN網(wǎng)絡(luò)獨立轉(zhuǎn)發(fā)方法。
背景技術(shù):
SDN網(wǎng)絡(luò)是對傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的革新,SDN網(wǎng)絡(luò)是將網(wǎng)絡(luò)的控制與轉(zhuǎn)發(fā)分離,提供一種集中式的控制平面,對整個網(wǎng)絡(luò)進行監(jiān)控、配置與管理。SDN架構(gòu)包括應(yīng)用層、控制層和轉(zhuǎn)發(fā)層。轉(zhuǎn)發(fā)層對應(yīng)的物理實體是SDN交換機,控制層對應(yīng)的物理實體是SDN控制器。SDN交換機負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的高速轉(zhuǎn)發(fā),而其中保存的用于進行轉(zhuǎn)發(fā)決策的轉(zhuǎn)發(fā)信息則來自于SDN控制器。SDN控制器通過控制南向接口對網(wǎng)絡(luò)中所有的SDN交換機進行集中統(tǒng)一管理。目前,OpenFlow是一個重要的南向接口標(biāo)準(zhǔn),在SDN的發(fā)展過程中地位很高。
OpenFlow v1.0規(guī)范是最早的協(xié)議標(biāo)準(zhǔn),其中提到了基于OpenFlow交換機、OpenFlow控制器,以及OpenFlow協(xié)議搭建SDN的設(shè)計思想和整體架構(gòu)。OpenFlow交換機利用基于安全連接的OpenFlow協(xié)議與遠(yuǎn)程控制器通信,其中流表是OpenFlow交換機的關(guān)鍵組件,負(fù)責(zé)數(shù)據(jù)包的高速查詢與轉(zhuǎn)發(fā)。另外,OpenFlow交換機還需要通過一個安全通道與外部的控制器進行通信,這個安全通道上傳輸?shù)氖荗penFlow協(xié)議,它負(fù)責(zé)傳遞控制器與交換機之間的管理和控制信息。
OpenFlow將控制功能全部集中到遠(yuǎn)程的控制器上,交換機只負(fù)責(zé)在本地做簡單高速的數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)轉(zhuǎn)發(fā)的依據(jù)是流表。OpenFlow協(xié)議規(guī)定了控制器可以主動或被動的在交換機的流表中添加、更新和刪除流表項。交換機中的每一個流表包含有一系列的流表項,每一個流表項包含有一系列的匹配域,計數(shù)器和用來匹配數(shù)據(jù)包的指命;當(dāng)交換機收到一個數(shù)據(jù)包,在流表中沒有匹配項,或者在流表中規(guī)定的行為是“發(fā)送到控制器”,則通過OpenFlow協(xié)議中的Packet-in消息發(fā)送給控制器;控制器通過分析數(shù)據(jù)包的內(nèi)容,產(chǎn)生新的流表項,通過流表項修改消息,來更新交換機中的流表項。
術(shù)語解釋:
SDN網(wǎng)絡(luò):即軟件定義網(wǎng)絡(luò),它是一種新型的網(wǎng)絡(luò)架構(gòu),采用了控制與轉(zhuǎn)發(fā)相分離的設(shè)計思想,分為控制平面和轉(zhuǎn)發(fā)平面,能實現(xiàn)網(wǎng)絡(luò)狀態(tài)的集中控制、支持靈活的軟件編程。
數(shù)據(jù)流:網(wǎng)絡(luò)中的數(shù)據(jù)以數(shù)據(jù)包為單位進行轉(zhuǎn)發(fā),數(shù)據(jù)包由頭部信息和負(fù)載數(shù)據(jù)組成,屬于同一個網(wǎng)絡(luò)通道的眾多數(shù)據(jù)包組成數(shù)據(jù)流。
“匹配-執(zhí)行”模式:SDN交換機對進入該交換機的數(shù)據(jù)包的處理方式,若數(shù)據(jù)包頭部信息匹配某流表項,則執(zhí)行該流表項對應(yīng)的動作。
上述交換機包括一切以“匹配-執(zhí)行”工作模式的網(wǎng)絡(luò)設(shè)備,為表述方便,以下轉(zhuǎn)發(fā)結(jié)點與交換機同義;同時,用含義更加廣泛的“信息體”代替上述的“頭部信息”。
獨立性轉(zhuǎn)發(fā):數(shù)據(jù)流在轉(zhuǎn)發(fā)過程中,不會發(fā)生此數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則與其他數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則有交集的情況,即此數(shù)據(jù)流在邏輯上有獨立的轉(zhuǎn)發(fā)路徑。
多維空間:將數(shù)據(jù)包的頭部信息簡單視為一個0、1序列,若頭部信息長度為L,則在此基礎(chǔ)上定義一個L維度空間H={0,1}L,其中,{0,1}表示空間中每一維的元素為0或1。一個數(shù)據(jù)包可對應(yīng)H中的一個點,一個數(shù)據(jù)流可對應(yīng)H中的一個子空間。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明的目的是:提供一種基于多維空間疊加模型的SDN網(wǎng)絡(luò)中保障信息安全的數(shù)據(jù)流獨立轉(zhuǎn)發(fā)方法。
本發(fā)明所采用的技術(shù)方案是:一種基于多維空間疊加模型的SDN網(wǎng)絡(luò)獨立轉(zhuǎn)發(fā)方法,
A、對SDN網(wǎng)絡(luò)中的結(jié)點建立多維空間疊加模型,結(jié)點模型包括有輸入空間、轉(zhuǎn)發(fā)函數(shù)和可輸出空間,SDN網(wǎng)絡(luò)中的數(shù)據(jù)包報頭部分作為信息體;
B、創(chuàng)建目的信息體;
C、在當(dāng)前結(jié)點創(chuàng)建源信息體;
D、計算當(dāng)前結(jié)點模型的可輸出空間與其連接的下一結(jié)點模型的輸入空間的差集;
E、計算得到上述差集中與目標(biāo)信息體差異最小的信息體,并將該信息體作為下一結(jié)點的源信息體;
F、將當(dāng)前結(jié)點源信息體到下一結(jié)點源信息體的變換操作存入策略集合;
G、進入下一結(jié)點重復(fù)執(zhí)行步驟重復(fù)步驟D至步驟G,直至步驟D的差集為空或步驟E中計算得到的信息體與目的信息體相同;
H、通過上述策略集合創(chuàng)建轉(zhuǎn)發(fā)路徑實現(xiàn)對數(shù)據(jù)包的獨立轉(zhuǎn)發(fā)。
進一步,所述步驟B還包括:初始化系統(tǒng)環(huán)境參數(shù)、環(huán)境變量以及相關(guān)狀態(tài)。
進一步,所述步驟E計算得到上述差集中與目的信息體差異最小的信息體α′的具體計算步驟為:選擇差集D′中信息體α′,使信息體α′與目的信息體β的差異d′最小且d′<dmin,dmin為設(shè)置的差異閾值,然后賦值dmin=d′。
進一步,所述dmin初值為無窮大。
進一步,所述差異d′為信息體α′與目的信息體β作異或操作的結(jié)果中1的個數(shù)。
進一步,所述轉(zhuǎn)發(fā)函數(shù)用于根據(jù)輸出端口號對信息體中對應(yīng)輸出端口的比特位進行改變并轉(zhuǎn)發(fā)至下一個節(jié)點。
本發(fā)明的有益效果是:本發(fā)明采用多維空間疊加模型將結(jié)點視為由輸入空間、轉(zhuǎn)發(fā)函數(shù)和可輸出空間組成的一個整體,利用相鄰結(jié)點輸入空間與可輸出空間之間的差異計算得到相應(yīng)的變換操作并存入策略集合,從而構(gòu)建出SDN網(wǎng)絡(luò)中的獨立轉(zhuǎn)發(fā)路徑,保障數(shù)據(jù)流在網(wǎng)絡(luò)轉(zhuǎn)發(fā)過程不被惡意引導(dǎo),增強網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面的安全性。
附圖說明
圖1為本發(fā)明方法的步驟流程圖;
圖2為本發(fā)明方法的網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面示意圖;
圖3為結(jié)點及其多維空間疊加模型的對應(yīng)關(guān)系圖;
圖4為多維空間疊加模型中數(shù)據(jù)轉(zhuǎn)發(fā)流程示意圖;
圖5為本發(fā)明步驟C示意圖;
圖6為本發(fā)明步驟D示意圖;
圖7為本發(fā)明步驟E示意圖;
圖8為本發(fā)明步驟F示意圖;
圖9為本發(fā)明具體實施例網(wǎng)絡(luò)拓?fù)鋱D以及其中的獨立轉(zhuǎn)發(fā)路徑。
具體實施方式
SDN網(wǎng)絡(luò)中控制平面與轉(zhuǎn)發(fā)平面相分離的特點增加了網(wǎng)絡(luò)的靈活性,但虛擬交換機的引入同時增加了網(wǎng)絡(luò)的安全隱患;對于一些安全級別要求比較高的數(shù)據(jù)流,除了在網(wǎng)絡(luò)層及以上層進行數(shù)據(jù)加密外,在數(shù)據(jù)鏈路層增強安全的措施之一就是讓它們按獨立的邏輯鏈路進行轉(zhuǎn)發(fā),即不匹配當(dāng)前交換機中已有的規(guī)則,讓交換機在控制器的控制下為這些數(shù)據(jù)流生成新的轉(zhuǎn)發(fā)規(guī)則。本發(fā)明在此基礎(chǔ)上,針對一些安全性要求比較高的數(shù)據(jù)流,提出了一種基于多維空間疊加模型的獨立性轉(zhuǎn)發(fā)方案,該方案能構(gòu)建一條安全路徑,使數(shù)據(jù)流按獨立的邏輯鏈路進行轉(zhuǎn)發(fā),從而增加轉(zhuǎn)發(fā)平面的安全性。
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步說明:
參照圖1,一種基于多維空間疊加模型的SDN網(wǎng)絡(luò)獨立轉(zhuǎn)發(fā)方法,
A、對SDN網(wǎng)絡(luò)中的結(jié)點建立多維空間疊加模型,結(jié)點模型包括有輸入空間、轉(zhuǎn)發(fā)函數(shù)和可輸出空間,SDN網(wǎng)絡(luò)中的數(shù)據(jù)包報頭部分作為信息體;
B、創(chuàng)建目的信息體;
C、在當(dāng)前結(jié)點創(chuàng)建源信息體;
D、計算當(dāng)前結(jié)點模型的可輸出空間與其連接的下一結(jié)點模型的輸入空間的差集;
E、計算得到上述差集中與目標(biāo)信息體差異最小的信息體,并將該信息體作為下一結(jié)點的源信息體;
F、將當(dāng)前結(jié)點源信息體到下一結(jié)點源信息體的變換操作存入策略集合;
G、進入下一結(jié)點重復(fù)執(zhí)行步驟重復(fù)步驟D至步驟G,直至步驟D的差集為空或步驟E中計算得到的信息體與目的信息體相同;
H、通過上述策略集合創(chuàng)建轉(zhuǎn)發(fā)路徑實現(xiàn)對數(shù)據(jù)包的獨立轉(zhuǎn)發(fā)。
上述步驟A-H的應(yīng)用場景是以匹配-執(zhí)行為工作方式的轉(zhuǎn)發(fā)結(jié)點組成的網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面,用于構(gòu)建一條在轉(zhuǎn)發(fā)平面保持獨立轉(zhuǎn)發(fā)的路徑。為實現(xiàn)這一點,首先在步驟A中建立多維空間疊加模型,將網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面中的轉(zhuǎn)發(fā)結(jié)點視為由輸入空間、轉(zhuǎn)發(fā)行為、可輸出空間表示的整體,然后在這個抽象層面做數(shù)學(xué)集合計算,最后計算出來的結(jié)果是一個信息體序列,按照該信息體序列組裝數(shù)據(jù)報頭,可以避開沿途交換機中流表已存在的匹配域,使得指定的數(shù)據(jù)流不與任何已有的轉(zhuǎn)發(fā)規(guī)則相匹配。這樣可以有效防止指定數(shù)據(jù)流被現(xiàn)有轉(zhuǎn)發(fā)規(guī)則引入到其他位置,從而實現(xiàn)該數(shù)據(jù)包在網(wǎng)絡(luò)中保持獨立轉(zhuǎn)發(fā),增強安全性。
例如圖2是以“匹配-執(zhí)行”為工作方式的轉(zhuǎn)發(fā)結(jié)點組成的網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面,其中信息體為4位。圖中演示了信息體為0000,路徑為1->2->3->5,最終到達(dá)5號結(jié)點的過程。坐標(biāo)里面的方框表示該結(jié)點流表的匹配域,連接相鄰轉(zhuǎn)發(fā)結(jié)點的邊上的方框表示被匹配后,被動作域定義的操作所修改后的輸出信息體,動作域同時指定輸出端口號。
所述步驟A中結(jié)點及其對應(yīng)的多維空間疊加模型之間的關(guān)系如圖3所示,圖中虛線以上是具體的結(jié)點與數(shù)據(jù)包,數(shù)據(jù)包包括報頭域和數(shù)據(jù)域,虛線以下是對結(jié)點與數(shù)據(jù)包的抽象描述的模型。其中,模型包括“輸入空間”、用于描述轉(zhuǎn)發(fā)行為的轉(zhuǎn)發(fā)函數(shù)T()、“可輸出空間”表示的整體;數(shù)據(jù)包的報頭域部分視為信息體,表示為空間中一個點。
上述多維空間疊加模型下數(shù)據(jù)轉(zhuǎn)發(fā)過程如圖4所示:結(jié)點A與結(jié)點B已經(jīng)部署了轉(zhuǎn)發(fā)規(guī)則支持?jǐn)?shù)據(jù)包P的轉(zhuǎn)發(fā),該圖演示了數(shù)據(jù)包P從結(jié)點A轉(zhuǎn)發(fā)到結(jié)點B時在空間模型上的過程:
①由于結(jié)點A與結(jié)點B已經(jīng)部署了轉(zhuǎn)發(fā)規(guī)則支持?jǐn)?shù)據(jù)包P的轉(zhuǎn)發(fā),因此P的信息體處于結(jié)點A的輸入空間內(nèi);
②經(jīng)由結(jié)點A的轉(zhuǎn)發(fā)函數(shù)對信息體的操作,使得信息體在空間中發(fā)生位置移動;
③轉(zhuǎn)發(fā)函數(shù)處理后,由轉(zhuǎn)發(fā)規(guī)則定義的端口轉(zhuǎn)發(fā)進入B,由于信息體在這個過程沒有發(fā)生改變,所以在B的空間中處于與A一樣的坐標(biāo)位置;由于步驟①已部署轉(zhuǎn)發(fā)規(guī)則,因此B也是支持該數(shù)據(jù)包轉(zhuǎn)發(fā),所以該信息體剛好落入B的輸入空間中;
④經(jīng)由結(jié)點B的轉(zhuǎn)發(fā)函數(shù)對信息體的操作,使得信息體在空間中發(fā)生位置移動,后續(xù)的轉(zhuǎn)發(fā)過程重復(fù)①②③④。
進一步作為優(yōu)選的實施方式,所述步驟B中創(chuàng)建目的信息體β。
所述步驟B還包括創(chuàng)建目的信息體進行的常規(guī)操作,即初始化系統(tǒng)環(huán)境參數(shù)、環(huán)境變量以及相關(guān)狀態(tài)。
進一步作為優(yōu)選的實施方式,所述步驟C中在當(dāng)前結(jié)點創(chuàng)建源信息體。如圖5所示,在入口結(jié)點Ni的輸入空間Ei之外創(chuàng)建源信息體αi,即
所述步驟D的具體實施如圖6所示,計算節(jié)點Ni可輸出空間Pi與其連接的下一結(jié)點Ni+1的輸入空間Ei+1的差集D′。
如圖7所示,進一步作為優(yōu)選的實施方式,所述步驟E計算得到上述差集中與目的信息體差異最小的信息體α′的具體計算步驟為:選擇差集D′中信息體α′,使信息體α′與目的信息體β的差異d′最小且d′<dmin,dmin為設(shè)置的差異閾值,然后賦值dmin=d′。
進一步作為優(yōu)選的實施方式,所述dmin初值為無窮大。
進一步作為優(yōu)選的實施方式,所述差異d′為信息體α′與目的信息體β作異或操作的結(jié)果中1的個數(shù)。
如圖8所示,進一步作為優(yōu)選的實施方式,所述步驟F將當(dāng)前結(jié)點源信息體到下一結(jié)點源信息體的變換操作存入策略集合;
步驟G為:進入下一結(jié)點重復(fù)執(zhí)行步驟重復(fù)步驟D至步驟G,直至步驟D的差集為空或步驟E中計算得到的信息體與目的信息體相同;
參照圖9說明本發(fā)明方法步驟A-H建立獨立轉(zhuǎn)發(fā)路徑的完整過程:
圖中給出了具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),轉(zhuǎn)發(fā)平面一共有8個轉(zhuǎn)發(fā)結(jié)點,每個結(jié)點有事先設(shè)定好的端口數(shù),分別用數(shù)字進行標(biāo)記,每個信息體的長度為固定的8位。
進一步作為優(yōu)選的實施方式,所述轉(zhuǎn)發(fā)函數(shù)用于根據(jù)輸出端口號對信息體中對應(yīng)輸出端口的比特位進行改變并轉(zhuǎn)發(fā)至下一個節(jié)點。
例如信息體的8位分成4個區(qū),每個區(qū)2位,從右向左依次記為0區(qū)、1區(qū)、2區(qū)和3區(qū)。每個轉(zhuǎn)發(fā)結(jié)點根據(jù)輸出端口號,可以對信息體中對應(yīng)區(qū)的兩個比特位進行改變。例如,0號輸出端口可以將0區(qū)中的1位或2位進行修改。
由于信息體長度為8位,在不考慮通配符的情況下,每個轉(zhuǎn)發(fā)結(jié)點最多存在256個流表項。假設(shè)轉(zhuǎn)發(fā)結(jié)點中已有流表項個數(shù)不超過最大值的一半。在每個轉(zhuǎn)發(fā)結(jié)點中隨機生成n個不同的流表項,其中n<128。
假設(shè)初始信息體為00101100,目的信息體為01110001。從0號轉(zhuǎn)發(fā)結(jié)點出發(fā),根據(jù)前面的計算步驟和為每個轉(zhuǎn)發(fā)結(jié)點隨機生成n個流表項的實驗中,得到下表中結(jié)果:
對應(yīng)的信息體序列為:{00101100 00101101 00100001 00110001 01110001},獨立轉(zhuǎn)發(fā)路徑在網(wǎng)絡(luò)拓?fù)鋱D中以箭頭表示。
如圖9的拓?fù)浣Y(jié)構(gòu)圖所示,從0號結(jié)點出發(fā),通過變化源信息體和目的信息體,在存在可行解的前提下,算法均可以找出存在的獨立轉(zhuǎn)發(fā)路徑;找出的獨立轉(zhuǎn)發(fā)路徑的長度與信息體的長度、每個端口能修改的位數(shù)以及源信息體與目的信息體的差異有關(guān)。通常,信息體長度越長,每個端口能修改的位數(shù)則相對越少,源信息體與目的信息體差異越大,求出的策略集合所對應(yīng)的轉(zhuǎn)發(fā)路徑也就越長。
以上是對本發(fā)明的較佳實施進行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可以作出種種的等同變換或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。