劉福剛
(淮南聯(lián)合大學(xué),安徽淮南 232001)
SDN(軟件定義網(wǎng)絡(luò)),即借助可編程理念完成對數(shù)據(jù)轉(zhuǎn)發(fā)分離的有效控制,可以保證集中控制邏輯[1]。在高層路由、流量工程等狀態(tài)下,運用SDN可以滿足網(wǎng)絡(luò)系統(tǒng)的整體便捷高效性,而并非大量修改整個網(wǎng)絡(luò)的硬件基礎(chǔ)設(shè)施[2]。目前OpenFlow安全控制器是主流的解決SDN方法,此種解決方案所實施的整體控制有效地使網(wǎng)絡(luò)路由轉(zhuǎn)發(fā),增強了整體的高效性。但是絕大多數(shù)的控制器設(shè)備都處于自身最初設(shè)計研發(fā)階段,并未重視網(wǎng)絡(luò)傳輸性能是否高效,忽視了網(wǎng)絡(luò)傳輸?shù)恼w安全因素[3]。一旦在SDN網(wǎng)絡(luò)中發(fā)生一個控制器的失效問題,必然就會導(dǎo)致整個網(wǎng)絡(luò)的癱瘓。除此之外還暴露SDN網(wǎng)絡(luò)的巨大單點脆弱性,使攻擊者實施對控制器的惡意控制。傳統(tǒng)入侵檢測措施不能有效地檢測故障問題所在,本文對動態(tài)異構(gòu)冗余擬態(tài)安全控制器模型進(jìn)行仿真分析。
通過基于動態(tài)異構(gòu)冗余理念,將SDN網(wǎng)絡(luò)中單點脆弱性問題最大化降低,安全控制器的整體結(jié)構(gòu)設(shè)計包含如下設(shè)計特點[4]:(1)異構(gòu)性。OpenFlow交換機在運行中,其主要的系統(tǒng)控制是經(jīng)由多個控制器集合完成的。借助一個控制器集權(quán)完成動態(tài)化的系統(tǒng)控制,此種控制是分布式的控制,屬于同一種控制器集群中的整體控制器件異構(gòu)度。此種異構(gòu)由操作系統(tǒng)、硬軟件以及編程語言等多方面集成?;诤暧^異構(gòu)度來講,對于網(wǎng)絡(luò)攻擊行為的出現(xiàn),攻擊成功的難度會隨著異構(gòu)度的增高而加大,也就是異構(gòu)度越高就越能有效地保護(hù)系統(tǒng)。(2)動態(tài)性。在該控制器結(jié)構(gòu)中,通過綜合考慮存在的集群節(jié)點變化,以及SDN網(wǎng)絡(luò)中存在的動態(tài)化網(wǎng)絡(luò)結(jié)構(gòu),借助對應(yīng)安全調(diào)度機制,能夠有效調(diào)控控制器的根本集群元素。同時完成被動式動態(tài)化調(diào)度,由此提升整體的系統(tǒng)不確定性。除此之外,還可以依照SDN網(wǎng)絡(luò)的整體安全性需求,實現(xiàn)控制器的集群規(guī)模調(diào)整,以此加強SDN網(wǎng)絡(luò)結(jié)構(gòu)整體的可拓展性。(3)容錯力。該設(shè)計的特點主要是借助容錯計算法,實現(xiàn)對錯誤節(jié)點的一致性整體檢測。(4)調(diào)度機制。調(diào)度機制作為能夠?qū)崿F(xiàn)控制器、防御模塊的動態(tài)化功能關(guān)鍵模塊之一,借助對應(yīng)調(diào)度實施相應(yīng)策略,完成對整體控制器的動態(tài)化調(diào)度。進(jìn)而提升控制器結(jié)構(gòu)執(zhí)行集群多樣性、動態(tài)性以及整體結(jié)構(gòu)的安全性能。
安全控制器結(jié)構(gòu)模型設(shè)計,其主要控制器架構(gòu)包含了多個模型結(jié)構(gòu)組成[5]。在由A個OpenFlow安全交換機、B個OpenFlow安全控制器所集合形成的多控制器結(jié)構(gòu)中,每個交換機Si所連接的B個OpenFlow安全控制器,形成了執(zhí)行化控制集群Qi,同時還包括調(diào)度控制器集群Si。在Qi中控制器的形成主要為對等化,而Qi以及Si則有效地完成了控制器整體動態(tài)化調(diào)度。除此之外控制器集群及實現(xiàn)交換機設(shè)備的控制,還可以通過充分發(fā)揮服務(wù)代理具備的通信銜接作用,真正達(dá)成控制器及交換機兩者共同的數(shù)據(jù)信息共享和發(fā)布,從而完成了兩者之間的連接(圖1)。
圖1 控制器結(jié)構(gòu)示例圖
OpenFlow1.2協(xié)議提出了針對OpenFlow安全控制器的運行和相應(yīng)的控制處理模式[6]。基于上述控制器模型結(jié)構(gòu),實現(xiàn)OpenFlow安全控制器組件的兼容,整體的模型結(jié)構(gòu)信息處理流程如圖2所示。在網(wǎng)絡(luò)中一旦產(chǎn)生了流規(guī)則更新事件,OpenFlow交換機就會主動生成Packet-In的編程需求。服務(wù)代理在完成Copy指令之后,將發(fā)出的請求分享發(fā)送至控制器的所有集群控制器,有效處理有關(guān)數(shù)據(jù)編程指令。之后借助處理結(jié)構(gòu)Packet-Out及Flow-Mod,針對信息完成返回任務(wù)需求,最終將其發(fā)送至客戶端。在該過程中服務(wù)器代理具備透明化傳輸特點,通過構(gòu)建數(shù)據(jù)處理FIFO隊列,真正保證信息化數(shù)據(jù)傳輸順序。在對其處理之后返還最終處理結(jié)果,客戶可以完成f+1個一致化接收處理,將其視為正確化處理結(jié)果。集群借助分布式計算方法完成信息處理。該方法具備動態(tài)化信息一致性,能夠檢測錯誤信息節(jié)點。
圖2 系統(tǒng)工作流程示例圖
針對控制器結(jié)構(gòu)模型相關(guān)研究,控制器形成對等模式,形成分布式節(jié)點模型[7]??刂破鹘Y(jié)構(gòu)模型本身集群節(jié)點的動態(tài)化移出,實現(xiàn)了網(wǎng)絡(luò)結(jié)構(gòu)的動態(tài)化轉(zhuǎn)變,拓展兩者之間的動態(tài)化性能[8]。除此之外,本研究旨在檢測該結(jié)構(gòu)模型中所受到攻擊的任何節(jié)點以及出現(xiàn)異常的相關(guān)數(shù)據(jù)。借助Gossip算法實現(xiàn)分布化一致性計算,主要由其分布式及一致性,完成信息的有效傳播及檢測。依照彼此通信消息之間所形成的不同傳遞方式,本文提出基于Gossip的容錯性一致算法CFDA編程設(shè)計。
將通過由控制器集群實現(xiàn)的通信網(wǎng)絡(luò)體描述為較為典型化的圖模型,即G(V,E)。在該集群模型網(wǎng)絡(luò)中的B個控制器節(jié)點數(shù)集用V表示,V×V之間的節(jié)點通信鏈路用E表示。每一個節(jié)點之間所形成的直接性通信(i,j)∈E。同時,為了能夠有效地實現(xiàn)整個集群網(wǎng)絡(luò)的通信更加安全可靠,通過設(shè)置兩個或超出兩個的控制器,完成對每一個控制器節(jié)點的連接,形成了控制器節(jié)點網(wǎng)絡(luò)模型,確保該模型具備較高的節(jié)點連通性。圖模型G實現(xiàn)了整體的節(jié)點連接,即K(G)≥2。
時間模型主要作為可以對不同模型類別實現(xiàn)同步及異步處理的主要模型[9]。諸多分布式特點網(wǎng)絡(luò)環(huán)境基于時間模型,能夠獨立存在于網(wǎng)絡(luò)化模型中,始終服從參數(shù)μ泊松過程。將節(jié)點時鐘具體滴答次數(shù)作為指數(shù)分布,并且整體的節(jié)點相對較為獨立,該過程就會成為由節(jié)點時鐘的每一次滴答次數(shù)形成的Bμ泊松過程時鐘模型?;谒撌龅膱D模型及時間模型,考慮SDN多控制器集群網(wǎng)絡(luò)所具備的一定特殊性,將本次研究所使用的CFDA算法主要功能展開如下分析。
2.2.1 節(jié)點通信模式
節(jié)點模式具備localview視圖,在不同成員中形成相鄰節(jié)點的拓?fù)湫酝ㄐ牛哌_(dá)兩個或超出兩個的通信個數(shù)。每一個網(wǎng)絡(luò)通信節(jié)點在控制節(jié)點信息通信過程中,需要借助localview有關(guān)數(shù)據(jù)信息。在一個控制器集群中,相應(yīng)的數(shù)據(jù)信息網(wǎng)絡(luò)節(jié)點數(shù)據(jù)一般較少。本研究的控制器模型的通信模式,其具體通信復(fù)雜度、信息交互頻次均相對較低,適用于不同狀態(tài)的同一控制。
2.2.2 信息數(shù)據(jù)結(jié)構(gòu)
控制器通信節(jié)點在完成信息傳遞以及檢測錯誤信息過程中,一般需要協(xié)商有限次數(shù)信息,需采用協(xié)商算法對通信節(jié)點的復(fù)雜度及負(fù)載加以計算,再加上信息本身大小及傳遞次數(shù)的因素,會很大程度地受到影響[10]。采用數(shù)據(jù)二元組(ver,Vdi)作為傳遞節(jié)點信息的關(guān)鍵傳輸單元及數(shù)據(jù)結(jié)構(gòu),該二元組涵蓋了諸多全新控制器節(jié)點的數(shù)據(jù)向量以及圖模型等諸多狀態(tài)化信息。數(shù)據(jù)向量作為在實現(xiàn)信息傳遞過程中所特有的數(shù)據(jù)節(jié)點結(jié)構(gòu),其模型中的節(jié)點數(shù)量以數(shù)據(jù)向量空間長度來表示,對具體節(jié)點數(shù)據(jù)信息以向量成員數(shù)據(jù)進(jìn)行維持。譬如數(shù)據(jù)向量Vdi以及Vdj通過邏輯或(or)方式更新有關(guān)數(shù)據(jù)。此算法能夠及時對不同節(jié)點中的錯誤數(shù)據(jù)信息加以確定,進(jìn)而與當(dāng)前版本協(xié)商,主要借助系統(tǒng)加密信息認(rèn)證碼MAC,完成對數(shù)據(jù)的有效認(rèn)證。
本次仿真分析主要基于CFDA算法展開,以輕量級網(wǎng)絡(luò)原模型Mininer工具集為主要仿真運行環(huán)境,借助Windows10系統(tǒng)及Java編程語言。構(gòu)建由40個主機、25個控制器節(jié)點組構(gòu)形成的仿真網(wǎng)絡(luò)結(jié)構(gòu),分布控制在5個OpenFlow vSwith交換機的控制器集群之中。借助離散事件模型,對實驗中模型安全性能進(jìn)行驗證,得到設(shè)置的控制器執(zhí)行冗余度是5,調(diào)度的異構(gòu)度是0.5,所間隔的相應(yīng)時間周期就是執(zhí)行體集群隨機調(diào)度。
圖3 通信輪次與節(jié)點數(shù)關(guān)系示例圖
根據(jù)所構(gòu)建的仿真實驗?zāi)P涂梢钥闯?,圖模型之間所形成的主要差異會很大程度地影響網(wǎng)絡(luò)節(jié)點的通信一致性(圖3)。控制器本身集群網(wǎng)路模型存在的關(guān)鍵節(jié)點數(shù)量相對較少。應(yīng)用典型的BFT計算方法,完成計算過程需要三次通信過程。由此,需要加以改進(jìn),減少一次通信過程,實現(xiàn)兩次通信過程,有效地減少整體通信復(fù)雜度。
綜上所述,本文對動態(tài)異構(gòu)冗余擬態(tài)安全控制器模型進(jìn)行仿真研究,并分析CFDA計算方法。仿真實驗結(jié)果表明,控制器結(jié)構(gòu)能夠有效地增加系統(tǒng)的分布安全性,降低冗余度的相應(yīng)問題難度。運用CFDA計算方法完成系列性的完全數(shù)據(jù)處理及檢測,提升了控制器在使用中的穩(wěn)定性,實現(xiàn)了集群的可拓展性、動態(tài)性。冗余控制器執(zhí)行體很大程度地增強了系統(tǒng)整體使用的安全性和可靠性。