面向园区网络的IPv6overIPv4隧道识别技术研究与实现

2017-07-06 15:01周永恒王嘉春
航天制造技术 2017年3期
关键词:状态机决策树数据包

周永恒 王嘉春 纪 炜 赵 飞



面向园区网络的IPv6overIPv4隧道识别技术研究与实现

周永恒 王嘉春 纪 炜 赵 飞

(北京空间飞行器总体设计部,北京 100094)

提出了一种基于决策树的隧道分类模型,通过构建一棵IPv6overIPv4隧道的分类树将网络数据流量分为Teredo、6to4、Isatap、IPv6inGreinIPv4、其它IPv6overIPv4隧道以及非隧道类型6类。最后根据建立的决策树共提取11条判定规则,并利用该模型中提取的特征和规则给出了隧道识别系统的实现,实验结果表明应用该模型的准确识别率能到达到90%以上,分类效果明显。

IPv6;决策树;IPv6overIPv4;隧道识别

1 引言

随着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 基于决策树的隧道识别研究

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

3 隧道识别系统实现

使用有限状态机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. 终结状态,表示单个数据包检测完毕。

4 实验结果

本次实验使用三台服务器和一个客户端PC,其中两台服务器安装千兆光卡用于捕包分析,一台作为日志服务器,实验部署如图3所示。

图3 实验部署图

4.1 实验测试步骤

a. 采用光纤引入大规模数据流给数据分析服务器,采取分光技术将数据流尽可能均衡分给两台数据分析服务器;

b. 数据分析服务器的网卡设为混杂模式,启动数据包捕获;

c. 启动日志服务器上数据库服务程序,准备接收分析结果;

d. 运行隧道识别程序,进行数据流量识别和分析,写入数据库。

e. 通过日志服务器查看分类结果。

4.2 实验结果分析

网络数据流量会随着时间段的不同实时变化,为更好地说明测试结果,选取一天中的各个时段进行测试,测试结果如图4所示。

图4 隧道数据对比图

测试结果表明一天中各时段的隧道类型存在一定的差异,但是差异不大,凌晨24:00到1:00期间数据量相对较大,其中6to4隧道比例最大,ISATAP隧道占据一部分,Teredo较少,Gre基本没有。由此得出结论,相当多的用户通过6to4接入IPv6网络,且非工作时间比工作时间隧道数据略多。

5 结束语

本文提出了一种基于决策树的隧道识别技术,总结了几种常用的隧道数据包的特征,根据所选的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

猜你喜欢
状态机决策树数据包
二维隐蔽时间信道构建的研究*
FPGA状态机综合可靠性探究 ①
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于有限状态机的交会对接飞行任务规划方法
C#串口高效可靠的接收方案设计
基于Spring StateMachine的有限状态机应用研究
决策树和随机森林方法在管理决策中的应用
决策树学习的剪枝方法
决策树多元分类模型预测森林植被覆盖
决策树在施工项目管理中的应用