?

軟件定義網絡流表溢出脆弱性分析及防御方法

2019-09-16 13:04左雪鑫
數碼世界 2019年7期
關鍵詞:軟件定義網絡

左雪鑫

摘要:由于SDN交換機的流表容量非常有限,所以就存在比較嚴重的流表溢出脆弱問題,所以這就需要根據這一問題提出相應的防御措施,以保證網絡的安全性?;诖?,本文將在傳統聚合算法的基礎上提出了裝箱優化算法,達到7控制交換機流表項數量的目的,實現7有效防御,以供參考借鑒。

關鍵詞:軟件定義網絡 流表溢出 防御方法

引言

在互聯網不斷發展之下,原先的IP網絡結構體系與TCP網絡架構體系也都開始暴露出來越來越多的問題,比如說網絡安全問題、擴展性受限、管理復雜等等。為了有效解決這些問題,各種新型網絡技術漸漸發展起來。其中軟件定義網絡作為一種顛覆網絡技術的創新形式將會是未來網絡發展的重要方向。它的發展會將網絡之中數據轉發和控制之間存在的耦合關系解除掉,進而形成一種運用、轉發與控制相互分離的一種架構,并通過相應的標準化接口帶來了編程接口,使整體網絡管理更加便捷。但是其交換機發展卻存在相應的性能問題,比如流表容量不足,如果有人對其交換機進行使用大量偽造的數據包進行攻擊的話,就會導致整個交換機出現流表溢出的問題,最終產生非常嚴重的后果。對此,這就需要對其脆弱性和相應的防御措施進行分析,以維護其交換機的安全性。

一、脆弱性

(一)原因

當下商用的軟件定義網絡其交換機之中的流表基本都是使用TCAM緩存所制,它的成本極高,就導致交換機之中的流表容量十分有限。比如,NEC公司的某交換機其流表容量才只能達到750條,就算是思科公司的某交換機其流表容量也才能夠達到2000條。一般該設備在處理網絡通信的時候都非常繁忙,其網絡流速一般會達到每秒5 X103到10 X103條這明顯大于其流表的基本容量不但如此,負載均衡以及防火墻等網絡所需要使用到的該項容量也要比當下開發的交換機流表容量大得多,所以能夠發現該項流量是不能滿足基本需求的。

在進行網絡運行的時候,這種交換機一般都要依照每條流的特點給流表之中寫入相應的規則。如果網絡流量非常大的時候,這種機制就會導致流表完全被占用,進而如果有新型網絡流到來的話,如果其網絡流在整個流表之中并沒有相應的規則可以處理,依照相關協議,該項交換機就應該要和控制器實施頻繁的交互,把網絡流信息控制住并給控制器發送過去,然后再由控制器下發新型的流表項。這時候控制器和交換機就會因為彼此之間的頻繁交流使整體網絡的性能降低.情況嚴重的話還有可能會導致整個交換機所控制在數據平面當中的網絡完全失控。

(二)后果

如果出現上述情況,這時候攻擊人員就能夠在產生隨機地址與偽造源地址的網絡流表之中加大各種流表項,進而使流表出現溢出的現象。這時候就會導致整個交換機之中數據包的轉發特性出現下降情況,并出現流表溢出攻擊。根據這一嚴重缺陷,就可以輕易達到攻擊交換機拒絕服務的目的。除此之外,使用網絡流量生成、注入等路徑,還可以有效推斷出來交換機的流表容量以及在網絡當中的實時的流量特點,從而泄露網絡信息。

二、防御措施

根據上述脆弱性問題,具體的防御方式可以通過在裝箱優化基礎上的路由規則聚合算法來實現。這一算法是在基數樹的路由聚合算法基礎上發展起來的,并且應用到了裝箱優化的方式,使得整個流表項的聚合效率被顯著提升。在使用該算法之后能夠將節約交換機之中的容量消耗,解決其脆弱性的問題,讓攻擊人員的難度得以有效加大,實現了基本的防御目的。

(一)在基數樹基礎上

在IP網絡的不斷發展之下,其路由規則數量也在不斷增長,在互聯網之中其FIB路由規則已經達到了數十萬條,這一發展給網絡擴展性的發展帶來了重大問題。為了有效降低交換機之中有關FIB的空間損耗.促進網絡的擴展性,就需要加大對流量表項聚合問題的研究。

這一基本算法是非常經典的一種算法,其中基數樹本身是二叉樹,具體組成部分包含有匹配前綴和下跳網絡地址。流表項在構建基數樹的時候會先把前者轉變成為二進制的字符串,接下來再對其實施遍歷,倘若其某位是l的話,那么還應該要將右節點插入進去,一直不斷進行重復一直到其字符串的遍歷工作完成。這一算法經常運用到的聚合方式包含有兄弟、父子、引入額外路由空間的非兄弟等節點聚合,但是在該算法之中,如果沒有在聚合完成之后優化其路由規則的轉發地質,那么就可能會降低聚合效率,進而使防御效果降低。

(二)在裝箱優化基礎上

在這類網絡之中,管理者能夠在控制器當中的路由規則管理算法的作用下,實施調整其路由規則的轉發地址,進而使整體的聚合效率得以提升,所以在這樣的思路基礎上,在裝箱優化之上其算法基本包含有三個基本程序。

首先,將流表項的規則組劃分出來。通過上述算法聚合之后所獲得的流表項節點,將其目的地址之中歸屬于同一網絡應用并未其匹配前綴無法聚合的各個節點劃歸成一個規則組,最后獲得包括有不同數量節點的若干個流表項規則組。

其次,將上述規則組的轉發地址進行調整。具體把其流表項轉發目標的網絡設備當做是箱體,把這一設備的流量負載和處理性能作為整個箱體的容積限制,根據路由規則組之中所涵蓋的節點數,把每一個流表項規則組當做是規格各異的物體,就能夠將其彼此之間的問題轉變成為裝箱優化問題,然后再在這一基礎上進行求解,最后獲得調整之后的轉發地址。

最后,依照上述獲得的轉發地址,讓其指向到調整之后的目標設備,再應用在基數樹基礎上的算法實施二次聚合,以此讓轉發地址改變之后所產生的新型流表項規則組當中的流表項數量得以降低。

這一需要重點關注的是,這一方式是非常經典的一種組合優化問題,也就是在多項式時間之中不能獲得最優解,所以這一問題的求解基本都是運用近似啟發式的算法這樣一來就能夠最快獲得解。其算法一般包含有最佳適應、下次適應、降序最佳等等。就拿降序最佳來求解,其具體過程為:先對所有路由規則之中所涵蓋的轉發總流量進行統計,再運用這一算法求解其裝箱問題,并對所有規則組轉發的總流量實施降序排序,將剩下的設備進行檢查,最終尋找到一個可以承載當下流量以及之后剩余資源最少的設備,再有效調整這些流量的下跳網絡地址指向到這一設備,不然就將流量引入到一個資源沒有被占用的新型設備之中,最后再依照求解的結果調整所有路由規則組之中的所有節點的下跳網絡地址。

(三)防御方式

依照上述算法,其具體防御步驟有四項:第一,對交換機流表占用狀況實施實時監測,如果超過了既定值,還應該要將路由聚合啟動開;第二,在該交換機之中,把流表項構建成為基數樹,再運用起算法對路由規則實施第一次聚合;第三,把聚合完成后的流表項根據前綴與后綴,劃歸流表項規則組,再使用裝箱優化的算法計算調整其規則組和轉發目標設備之間的相應轉發關系,以此進行二次聚合;第四,依照最終的結果下發更新相應的路由規則。

三、結束語

上述主要對其流表溢出的相關脆弱性問題和后果進行了分析,并給出了相應的防御思路??偟膩碚f,在其防御方式之中,應用的裝箱優化算法主要應用了這軟件定義網絡的基本特點,使在傳統算法的基礎上,運用裝箱優化實現了再次聚合流表。如果網絡使用數量比較多,或者是拓撲比較復雜的話,上述方式可能在實踐應用的時候會比較難,所以往后還應該要繼續研究更加寬松的聚合方式,得到更加便利的防御方式。

參考文獻

[1]宛考,羅雪峰,江勇,etal.軟件定義網絡系統中面向流的調度算法[J].計算機學報,2016,39(6):1208—1223.

[2]李新明,李藝,劉東.軟件脆弱性影響分析模型[J].計算機工程,20LO,36(17):63—65.

[3]趙鵬,基于SDN'的動態網絡防御系統的設計與實現[D].電子科技大學,20L7.

[4]唐菀.SDN數據中心網絡基于流表項轉換的流表調度優化[J].中南民族大學學報(自然科學版),20—7,36(3):111-ll7.

猜你喜歡
軟件定義網絡
面向未來的傳輸綜合網管系統演進研究
基于隊列樹的SDN控制器高效消息處理機制
中國聯通SDN的思考和應用實例
業務功能鏈技術及其應用探析
針對大規模軟件定義網絡的子域劃分及控制器部署方法
一種新的SDN架構下端到端網絡主動測量機制
超高吞吐率Wi—Fi融合應用新技術分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合