左雪鑫
摘要:由于SDN交換機的流表容量非常有限,所以就存在比較嚴(yán)重的流表溢出脆弱問題,所以這就需要根據(jù)這一問題提出相應(yīng)的防御措施,以保證網(wǎng)絡(luò)的安全性。基于此,本文將在傳統(tǒng)聚合算法的基礎(chǔ)上提出了裝箱優(yōu)化算法,達到7控制交換機流表項數(shù)量的目的,實現(xiàn)7有效防御,以供參考借鑒。
關(guān)鍵詞:軟件定義網(wǎng)絡(luò) 流表溢出 防御方法
引言
在互聯(lián)網(wǎng)不斷發(fā)展之下,原先的IP網(wǎng)絡(luò)結(jié)構(gòu)體系與TCP網(wǎng)絡(luò)架構(gòu)體系也都開始暴露出來越來越多的問題,比如說網(wǎng)絡(luò)安全問題、擴展性受限、管理復(fù)雜等等。為了有效解決這些問題,各種新型網(wǎng)絡(luò)技術(shù)漸漸發(fā)展起來。其中軟件定義網(wǎng)絡(luò)作為一種顛覆網(wǎng)絡(luò)技術(shù)的創(chuàng)新形式將會是未來網(wǎng)絡(luò)發(fā)展的重要方向。它的發(fā)展會將網(wǎng)絡(luò)之中數(shù)據(jù)轉(zhuǎn)發(fā)和控制之間存在的耦合關(guān)系解除掉,進而形成一種運用、轉(zhuǎn)發(fā)與控制相互分離的一種架構(gòu),并通過相應(yīng)的標(biāo)準(zhǔn)化接口帶來了編程接口,使整體網(wǎng)絡(luò)管理更加便捷。但是其交換機發(fā)展卻存在相應(yīng)的性能問題,比如流表容量不足,如果有人對其交換機進行使用大量偽造的數(shù)據(jù)包進行攻擊的話,就會導(dǎo)致整個交換機出現(xiàn)流表溢出的問題,最終產(chǎn)生非常嚴(yán)重的后果。對此,這就需要對其脆弱性和相應(yīng)的防御措施進行分析,以維護其交換機的安全性。
一、脆弱性
(一)原因
當(dāng)下商用的軟件定義網(wǎng)絡(luò)其交換機之中的流表基本都是使用TCAM緩存所制,它的成本極高,就導(dǎo)致交換機之中的流表容量十分有限。比如,NEC公司的某交換機其流表容量才只能達到750條,就算是思科公司的某交換機其流表容量也才能夠達到2000條。一般該設(shè)備在處理網(wǎng)絡(luò)通信的時候都非常繁忙,其網(wǎng)絡(luò)流速一般會達到每秒5 X103到10 X103條這明顯大于其流表的基本容量不但如此,負載均衡以及防火墻等網(wǎng)絡(luò)所需要使用到的該項容量也要比當(dāng)下開發(fā)的交換機流表容量大得多,所以能夠發(fā)現(xiàn)該項流量是不能滿足基本需求的。
在進行網(wǎng)絡(luò)運行的時候,這種交換機一般都要依照每條流的特點給流表之中寫入相應(yīng)的規(guī)則。如果網(wǎng)絡(luò)流量非常大的時候,這種機制就會導(dǎo)致流表完全被占用,進而如果有新型網(wǎng)絡(luò)流到來的話,如果其網(wǎng)絡(luò)流在整個流表之中并沒有相應(yīng)的規(guī)則可以處理,依照相關(guān)協(xié)議,該項交換機就應(yīng)該要和控制器實施頻繁的交互,把網(wǎng)絡(luò)流信息控制住并給控制器發(fā)送過去,然后再由控制器下發(fā)新型的流表項。這時候控制器和交換機就會因為彼此之間的頻繁交流使整體網(wǎng)絡(luò)的性能降低.情況嚴(yán)重的話還有可能會導(dǎo)致整個交換機所控制在數(shù)據(jù)平面當(dāng)中的網(wǎng)絡(luò)完全失控。
(二)后果
如果出現(xiàn)上述情況,這時候攻擊人員就能夠在產(chǎn)生隨機地址與偽造源地址的網(wǎng)絡(luò)流表之中加大各種流表項,進而使流表出現(xiàn)溢出的現(xiàn)象。這時候就會導(dǎo)致整個交換機之中數(shù)據(jù)包的轉(zhuǎn)發(fā)特性出現(xiàn)下降情況,并出現(xiàn)流表溢出攻擊。根據(jù)這一嚴(yán)重缺陷,就可以輕易達到攻擊交換機拒絕服務(wù)的目的。除此之外,使用網(wǎng)絡(luò)流量生成、注入等路徑,還可以有效推斷出來交換機的流表容量以及在網(wǎng)絡(luò)當(dāng)中的實時的流量特點,從而泄露網(wǎng)絡(luò)信息。
二、防御措施
根據(jù)上述脆弱性問題,具體的防御方式可以通過在裝箱優(yōu)化基礎(chǔ)上的路由規(guī)則聚合算法來實現(xiàn)。這一算法是在基數(shù)樹的路由聚合算法基礎(chǔ)上發(fā)展起來的,并且應(yīng)用到了裝箱優(yōu)化的方式,使得整個流表項的聚合效率被顯著提升。在使用該算法之后能夠?qū)⒐?jié)約交換機之中的容量消耗,解決其脆弱性的問題,讓攻擊人員的難度得以有效加大,實現(xiàn)了基本的防御目的。
(一)在基數(shù)樹基礎(chǔ)上
在IP網(wǎng)絡(luò)的不斷發(fā)展之下,其路由規(guī)則數(shù)量也在不斷增長,在互聯(lián)網(wǎng)之中其FIB路由規(guī)則已經(jīng)達到了數(shù)十萬條,這一發(fā)展給網(wǎng)絡(luò)擴展性的發(fā)展帶來了重大問題。為了有效降低交換機之中有關(guān)FIB的空間損耗.促進網(wǎng)絡(luò)的擴展性,就需要加大對流量表項聚合問題的研究。
這一基本算法是非常經(jīng)典的一種算法,其中基數(shù)樹本身是二叉樹,具體組成部分包含有匹配前綴和下跳網(wǎng)絡(luò)地址。流表項在構(gòu)建基數(shù)樹的時候會先把前者轉(zhuǎn)變成為二進制的字符串,接下來再對其實施遍歷,倘若其某位是l的話,那么還應(yīng)該要將右節(jié)點插入進去,一直不斷進行重復(fù)一直到其字符串的遍歷工作完成。這一算法經(jīng)常運用到的聚合方式包含有兄弟、父子、引入額外路由空間的非兄弟等節(jié)點聚合,但是在該算法之中,如果沒有在聚合完成之后優(yōu)化其路由規(guī)則的轉(zhuǎn)發(fā)地質(zhì),那么就可能會降低聚合效率,進而使防御效果降低。
(二)在裝箱優(yōu)化基礎(chǔ)上
在這類網(wǎng)絡(luò)之中,管理者能夠在控制器當(dāng)中的路由規(guī)則管理算法的作用下,實施調(diào)整其路由規(guī)則的轉(zhuǎn)發(fā)地址,進而使整體的聚合效率得以提升,所以在這樣的思路基礎(chǔ)上,在裝箱優(yōu)化之上其算法基本包含有三個基本程序。
首先,將流表項的規(guī)則組劃分出來。通過上述算法聚合之后所獲得的流表項節(jié)點,將其目的地址之中歸屬于同一網(wǎng)絡(luò)應(yīng)用并未其匹配前綴無法聚合的各個節(jié)點劃歸成一個規(guī)則組,最后獲得包括有不同數(shù)量節(jié)點的若干個流表項規(guī)則組。
其次,將上述規(guī)則組的轉(zhuǎn)發(fā)地址進行調(diào)整。具體把其流表項轉(zhuǎn)發(fā)目標(biāo)的網(wǎng)絡(luò)設(shè)備當(dāng)做是箱體,把這一設(shè)備的流量負載和處理性能作為整個箱體的容積限制,根據(jù)路由規(guī)則組之中所涵蓋的節(jié)點數(shù),把每一個流表項規(guī)則組當(dāng)做是規(guī)格各異的物體,就能夠?qū)⑵浔舜酥g的問題轉(zhuǎn)變成為裝箱優(yōu)化問題,然后再在這一基礎(chǔ)上進行求解,最后獲得調(diào)整之后的轉(zhuǎn)發(fā)地址。
最后,依照上述獲得的轉(zhuǎn)發(fā)地址,讓其指向到調(diào)整之后的目標(biāo)設(shè)備,再應(yīng)用在基數(shù)樹基礎(chǔ)上的算法實施二次聚合,以此讓轉(zhuǎn)發(fā)地址改變之后所產(chǎn)生的新型流表項規(guī)則組當(dāng)中的流表項數(shù)量得以降低。
這一需要重點關(guān)注的是,這一方式是非常經(jīng)典的一種組合優(yōu)化問題,也就是在多項式時間之中不能獲得最優(yōu)解,所以這一問題的求解基本都是運用近似啟發(fā)式的算法這樣一來就能夠最快獲得解。其算法一般包含有最佳適應(yīng)、下次適應(yīng)、降序最佳等等。就拿降序最佳來求解,其具體過程為:先對所有路由規(guī)則之中所涵蓋的轉(zhuǎn)發(fā)總流量進行統(tǒng)計,再運用這一算法求解其裝箱問題,并對所有規(guī)則組轉(zhuǎn)發(fā)的總流量實施降序排序,將剩下的設(shè)備進行檢查,最終尋找到一個可以承載當(dāng)下流量以及之后剩余資源最少的設(shè)備,再有效調(diào)整這些流量的下跳網(wǎng)絡(luò)地址指向到這一設(shè)備,不然就將流量引入到一個資源沒有被占用的新型設(shè)備之中,最后再依照求解的結(jié)果調(diào)整所有路由規(guī)則組之中的所有節(jié)點的下跳網(wǎng)絡(luò)地址。
(三)防御方式
依照上述算法,其具體防御步驟有四項:第一,對交換機流表占用狀況實施實時監(jiān)測,如果超過了既定值,還應(yīng)該要將路由聚合啟動開;第二,在該交換機之中,把流表項構(gòu)建成為基數(shù)樹,再運用起算法對路由規(guī)則實施第一次聚合;第三,把聚合完成后的流表項根據(jù)前綴與后綴,劃歸流表項規(guī)則組,再使用裝箱優(yōu)化的算法計算調(diào)整其規(guī)則組和轉(zhuǎn)發(fā)目標(biāo)設(shè)備之間的相應(yīng)轉(zhuǎn)發(fā)關(guān)系,以此進行二次聚合;第四,依照最終的結(jié)果下發(fā)更新相應(yīng)的路由規(guī)則。
三、結(jié)束語
上述主要對其流表溢出的相關(guān)脆弱性問題和后果進行了分析,并給出了相應(yīng)的防御思路??偟膩碚f,在其防御方式之中,應(yīng)用的裝箱優(yōu)化算法主要應(yīng)用了這軟件定義網(wǎng)絡(luò)的基本特點,使在傳統(tǒng)算法的基礎(chǔ)上,運用裝箱優(yōu)化實現(xiàn)了再次聚合流表。如果網(wǎng)絡(luò)使用數(shù)量比較多,或者是拓撲比較復(fù)雜的話,上述方式可能在實踐應(yīng)用的時候會比較難,所以往后還應(yīng)該要繼續(xù)研究更加寬松的聚合方式,得到更加便利的防御方式。
參考文獻
[1]宛考,羅雪峰,江勇,etal.軟件定義網(wǎng)絡(luò)系統(tǒng)中面向流的調(diào)度算法[J].計算機學(xué)報,2016,39(6):1208—1223.
[2]李新明,李藝,劉東.軟件脆弱性影響分析模型[J].計算機工程,20LO,36(17):63—65.
[3]趙鵬,基于SDN'的動態(tài)網(wǎng)絡(luò)防御系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),20L7.
[4]唐菀.SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化[J].中南民族大學(xué)學(xué)報(自然科學(xué)版),20—7,36(3):111-ll7.