周永恒 王嘉春 紀 煒 趙 飛
?
面向園區網絡的IPv6overIPv4隧道識別技術研究與實現
周永恒 王嘉春 紀 煒 趙 飛
(北京空間飛行器總體設計部,北京 100094)

提出了一種基于決策樹的隧道分類模型,通過構建一棵IPv6overIPv4隧道的分類樹將網絡數據流量分為Teredo、6to4、Isatap、IPv6inGreinIPv4、其它IPv6overIPv4隧道以及非隧道類型6類。最后根據建立的決策樹共提取11條判定規則,并利用該模型中提取的特征和規則給出了隧道識別系統的實現,實驗結果表明應用該模型的準確識別率能到達到90%以上,分類效果明顯。
IPv6;決策樹;IPv6overIPv4;隧道識別
隨著IPv6的逐漸普及,隧道的使用越來越廣泛,其形式也越來越豐富。因此對隧道數據進行識別和研究十分迫切。國內對隧道本身的研究比較深入,但對識別技術的探討相對較少,大部分方法與研究P2P的方法有些類似,如楊岳湘等提出了基于雙重特征的數據流量檢測方法[1],張毅等探討了P2P流量控制[2],兩者采用的都是深層數據包分析技術。James Won Ki Hong提出了一種基于傳輸層特征的流量檢測方法[3],通過離線統計的方式找到P2P應用的常用端口。Subhabrata Sen等提出了另一種數據流量檢測方法[4],該方法基于應用簽名實現,通過檢查payload固定偏移量和變化偏移量實現流量檢測,效果良好。Thomas Karagiannis等提出了新的流量檢測方法[5],該方法基于傳輸層特征實現,能夠很好地檢測出新的P2P及其加密應用,但是方法比較復雜。王飛提出了基于WEB的隱蔽信道設計與檢測技術[6]。本文針對當前常見的IPv6overIPv4隧道提出了一種基于決策樹的隧道識別方法,對當前的IPv6overIPv4進行分類識別,識別當前主流的6to4、Isatap、Teredo、IPv6inGreinIPv4、其它IPv6overIPv4以及不屬于隧道的類型。
2.1 IPv6overIPv4隧道特征的提取
主要針對IPv6overIPv4的類型隧道進行識別,該類型的隧道有6to4、Teredo、Isatap、IPv6inGreinIPv4等[7]。
a. 6to4隧道
6to4隧道構成為IPv4+IPv6+傳輸層,同時因為6to4是一種自動創建的隧道,因此6to4接口上配置的是IPv6地址,該類地址是2002:/16開頭的。
b. Isatap隧道
Isatap是由IPv4+IPv6+傳輸層構成的,其中IPv6地址具有以下特征,0:5EFE:A.B.C.D或者200:5EFE: A.B.C.D,A.B.C.D是其對應的IPv4地址。
c. Teredo隧道
Teredo是由IPv4+UDP+IPv6構成的,隧道地址前綴為2001:/32。
d. IPv6inGreinIPv4隧道
GRE的本質是對數報文的重新再次封裝,構成方式為IPv4+Gre+IPv6+傳輸層。
e. 其它隧道
將不屬于上述類型的隧道定義為其它隧道,一般是IPv4+IPv6的構成形式。
歸納IPv6overIPv4隧道的特征,抽象出IP 類型、上層協議類型、IPv6地址、內層協議類型4個特征建立決策樹。
2.2 數據準備及預處理
本次樣本訓練數據來自某園區的網絡流量,數據包括常見的6to4、Gre、Isatap、Teredo等隧道數據包,并構造了一些其它隧道數據包,還有一些非隧道數據包構成。為提高分類準確率,選擇在不同的數據流中選擇樣本數據包,即同一個數據流中僅選擇一個IP數據包。以Isatap為例,通過配置Isatap隧道接入IPv6網絡,訪問一些IPv6的網站,捕獲大約10M左右的流量,過濾和篩選掉沒用的數據,在每個數據流當中選取一個Isatap包,共選擇100個這樣的數據包,保存為新的文件。類似的方法獲得Gre、6to4以及Teredo等各100個,最后選取200個非隧道包,含50個ICMP、100個純IPv6以及50個ARP。最后將700個數據包組合成一個新的文件,針對這個文件進行預處理,提取相應的特征信息。
2.3 決策樹的建立
采用C4.5算法進行隧道識別,首先隨機抽取66%的數據包訓練,通過對樣本數據的計算可以得出4項屬性的信息增益率。根據計算的信息增益和信息增益率可以看出IP類型屬性增益率值最大,選其為決策樹的第一個節點。
根據該節點的取值,可以劃分為IPv4、IPv6、Arp等多種類型,該決策樹至少將含多條分支,按照前文所提及的,若IP層協議非IPv4,那么其不可能為IPv6overIPv4隧道,所以可進行剪枝。按照此原則,可遞歸的向下生成分類決策樹。其中Ci(i=1,2,3,4,5,6)所代表是非隧道、6to4類型、Isatap、Gre、Teredo類型和其它隧道類型,最終的決策樹如圖1所示。

圖1 分類決策樹
2.4 決策樹提取分類規則
從2.3節構建的決策樹的樹根開始作深度優先遍歷,每到一個葉節點可抽象出一條判定規則,共可抽取11條規則。
If IP類型!=Ipv4 then類型=C1
If IP類型=Ipv4 &上層協議!=Tcp &上層協議=Ipv6 &上層協議!=GRE & 上層協議!=Udp then類型=C1
If IP類型=Ipv4 & 上層協議=Ipv6 & Ipv6地址=2002:/16 then 類型=C2
If IP類型= Ipv4 & 上層協議= Ipv6 & (Ipv6地址=::0:5EFE:A.B.C.D or =::200:5EFE:A.B.C.D) then 類型=C3
If IP類型=Ipv4 & 上層協議=Ipv6 & Ipv6地址!=2002:/16 & Ipv6地址!=::0:5EFE:A.B.C.D & Ipv6地址!=::200:5EFE: A.B.C.D then 類型=C6
If IP類型=Ipv4 & 上層協議=GRE & 內層協議= Ipv6 then 類型=C4
If IP類型=Ipv4 & 上層協議=GRE & 內層協議!= Ipv6 then 類型=C1
If IP類型=Ipv4 & 上層協議=Udp & 內層協議= Ipv6 then類型=C5
If IP層協議=Ipv4 & 上層協議=Udp & 內層協議!=IPv6 then 類型=C1
If IP層協議=Ipv4 & 上層協議=Tcp & 內層協議=Ipv6 then 類型=C6
If IP層協議=Ipv4 & 上層協議=Tcp & 內層協議!=Ipv6 then 類型=C1
使用有限狀態機FSM實現隧道識別系統,一個成功的狀態機狀態必定是清晰的[8],因此首先明確狀態機的各個狀態和含義,如表1所示。
表1 形式化狀態表
符號名稱相關說明 S0初始狀態,當數據包分析指針處于數據包頭時處于該狀態 S1第一個識別為IP數據時跳轉到該狀態 S2數據包分析指針指向IP層上層數據包頭,包括GRE,UDP及TCP時處于該狀態 S3數據包分析指針指向GRE或者TCP或者UDP S4結束
此外,為構建一個穩定的狀態機需要對輸入進行清晰地定義,對狀態機的輸入形式化表述見表2。
表2 形式化輸入表
符號名稱相關說明 I0IPv4 I1IPv6 I2GRE I3TCP I4UDP
根據上述形式化定義構建狀態機,建立的狀態轉換圖如圖2所示。

圖2 識別狀態機
該算法描述如下:
a. 初始進行網絡數據包分析時,分析指針沒有偏移,狀態機處于S0狀態;
b. 指針偏移,指向IP數據包頭協議版本;判斷是否IPv4,若是IPv4轉入c;否則轉入f;
c. 狀態為S1,指針偏移至協議類型,判斷指針指向內容,如指向的內容為I0或者I1時轉入d,如指向的內容為I2,I3,I4的時候,轉入e,否則轉入f;
d. 狀態為S2,檢查一下數據包頭的合法性,合法判定該數據包是為隧道包,不合法則為非隧道包,轉入f;
e. 狀態為S3,根據I2、I3、I4的不同進行偏移,偏移后所指的內容為I1或者I0,則進入狀態S2,否則轉入f;
f. 終結狀態,表示單個數據包檢測完畢。
本次實驗使用三臺服務器和一個客戶端PC,其中兩臺服務器安裝千兆光卡用于捕包分析,一臺作為日志服務器,實驗部署如圖3所示。

圖3 實驗部署圖
4.1 實驗測試步驟
a. 采用光纖引入大規模數據流給數據分析服務器,采取分光技術將數據流盡可能均衡分給兩臺數據分析服務器;
b. 數據分析服務器的網卡設為混雜模式,啟動數據包捕獲;
c. 啟動日志服務器上數據庫服務程序,準備接收分析結果;
d. 運行隧道識別程序,進行數據流量識別和分析,寫入數據庫。
e. 通過日志服務器查看分類結果。
4.2 實驗結果分析
網絡數據流量會隨著時間段的不同實時變化,為更好地說明測試結果,選取一天中的各個時段進行測試,測試結果如圖4所示。

圖4 隧道數據對比圖
測試結果表明一天中各時段的隧道類型存在一定的差異,但是差異不大,凌晨24:00到1:00期間數據量相對較大,其中6to4隧道比例最大,ISATAP隧道占據一部分,Teredo較少,Gre基本沒有。由此得出結論,相當多的用戶通過6to4接入IPv6網絡,且非工作時間比工作時間隧道數據略多。
本文提出了一種基于決策樹的隧道識別技術,總結了幾種常用的隧道數據包的特征,根據所選的4個特征建立了分類決策樹,通過剪枝最終得到所用的隧道分類的決策樹,并提取出11條分類規則,給出了隧道識別系統的實現方法。利用該決策樹將數據分為6to4、Isatap、Teredo、IPv6inGreinIPv4的Gre隧道,其它IPv6overIPv4隧道和非隧道6種類型,根據本文建立的決策樹分類正確率有90%以上,分類效果明顯。最后利用該模型在真實網絡環境中進行了測試,發現6to4所占的比例最大,有20%左右,同時Isatap和Teredo等也占了一部分,且非工作時間的隧道流量要略大于工作時間的隧道流量。
1 楊岳湘,李強. 基于雙重特征的P2P流量檢測方法[J]. 通信學報,2006,27(11A):134~138
2 張毅. 如何進行.P2P精細化運營[S/OL],2007,http://www.huawei.com/cn/ publications/view.pdf.
3 Han S H, Kim M S, Ju H T, et al. The architecture of NG-MON: a passive network monitoring system forhigh speed ip networks[J], Lecture notes in computer science, 2002(8):33~45
4 Sen S, Spat scheck O, Wang D. Accurate, Scalable network identification of P2P traffic using application signatures[C]. In: Proceedings of the 13th international conference on World Wide Web. N Y: ACM Press, 2004:512~521
5 Sen S, Wang J. Analyzing peer to peer traffic across large networks[C], IEEE/ACM Transactions on Networking. NJ:IEEE Press, 2004:219~232
6 王飛. 基于WEB的隱蔽信道設計與檢測技術研究[D]. 合肥:中國科學技術大學碩士學學位論文,2014
7 周永恒. 基于決策樹的隧道識別技術研究[D]. 哈爾濱:哈爾濱工業大學碩士學學位論文,2011
8 趙麗敏. 自動機理論在協議開發中的應用[J]. 開發研究與設計技術,2007(9):784~785
Research and Implementation of IPv6overIPv4 Tunnel Recognition Technology Based on Campus Network
Zhou Yongheng Wang Jiachun Ji Wei Zhao Fei
(Beijing Institute of Spacecraft System Engineering, Beijing 100094)
A model of tunnel classification is proposed based on decision tree in this paper, by classifying property, a tree of classification is built and the network flow is divided into Teredo, 6to4, Isatap, IPv6inGreinIPv4, other IPv6overIPv4, and not belonging to tunnel 6 classes. Finally eleven decision rules is extracted by using the decision tree, and the tunnel identification system is implemented by using the extracted features and rules. Experimental results show that the accuracy rate of classification can be 90% and classification results are significant.
IPv6;decision tree;IPv6overIPv4;tunnel Identification
“十二五”國防基礎科研項目(C0320110002)。
周永恒(1986),工程師,計算機科學與技術專業;研究方向:網絡信息內容安全、云計算及其在航天器研制中的應用。
2017-04-23