袁春蕾,欧阳志友,王 堃
(1.南京邮电大学先进技术研究院,江苏南京 210023;2.南京邮电大学物联网学院,江苏南京 210023)
基于nDPI的流量监控分析实验平台研究
袁春蕾1,欧阳志友2,王 堃2
(1.南京邮电大学先进技术研究院,江苏南京 210023;2.南京邮电大学物联网学院,江苏南京 210023)
流量监控分析是信息网络学科的重要内容,也是网络工程、计算机科学与技术、物联网等专业的实验教学体系中的核心内容之一。针对现有的网络流量监控分析实验平台大多过于简单,未能提供有关分光、端口镜像、深度报文检测等深层次的实验内容,该文提出一种基于nDPI的网络流量监控分析实验平台TMALab,不仅能提供基本的报文采集、协议分析等基础实验,同时还能为大学生创新、集中性实践教学以及科学研究提供实验条件。给出了其设计框架和系统的实现。实际测试结果表明,该系统可以较好满足流量监控分析实验教学的需要。
流量监控;流量分析;nDPI;深度报文检测;实验平台
网络流量监控分析是网络管理、流量工程和网络安全等网络研究与应用的基础[1],也是网络工程、计算机科学与技术、物联网等专业的重要内容。网络流量监控分析可以在不干扰网络运行的情况下,对网络中运行的业务、带宽利用情况、网络质量等进行实时或离线分析,是最有效的网络管理方式之一[2-4]。
目前网络流量监控分析实验大都采用开源软件wireshark来抓取本机的协议报文进行分析[5-6],这类工具存在两个很大的不足:(1)只能抓取到本机的协议报文进行分析,而本机的网络流量的特征与用流量监控分析来管理的骨干网的流量特征通常相差非常大;(2)对网络流量监控分析系统中用到的前沿技术,如光纤通信的分光、深度报文检测(deep packet inspection,DPI)[7]、深度流检测(deep flow inspection,DFI)[8]等都无法演示,不能满足高年级学生的课外创新活动和科学研究的需要。
本文总结了现有网络流量监控分析实验软件的弊端,结合高校对多层次实验教学平台建设[9]和大学生创业创新能力培养对实验平台的需要[10],提出了一种精简的、非常接近大型网络管理系统中实际部署的网络流量监控系统的网络流量监控分析实验平台(traffic monitor and analysis laboratory,TMA-Lab),该实验平台不仅兼顾了演示实际网络流量监控系统的施工部署技术(光纤分光、端口镜像等),更提供了千兆网络流量实时监控功能、深度报文检测的核心库及其扩展开发接口,可以为从本科生、研究生和教师的课内实验、开放性实验、大学生创业创新、科研等提供与网络流量监控分析相关的实验平台。
1.1 TMA-Lab的部署架构
在实际应用中,网络流量监控分析系统通常部署于企业网或者电信运营商的出口上,根据网络结构及设备的不同,通常采用端口镜像或者分光的方式来获取实时的网络流量并进行分析。需要分析的流量大小等也不尽相同,为此TMA-Lab实验平台需要兼顾考虑这些情况。TMA-Lab的部署架构见图1。
图1 TMA-Lab实验平台部署结构
在TMA-Lab中,根据实验教学中心的网络拓扑情况,将单个机房的网络当成企业网,将多个机房构成的实验教学中心当成电信运营商,分别演示不同的抓包技术。对实验中心到校园骨干网之间的光纤,采用分光器来获得整个机房的流量数据。在机房的出口交换机上,采用端口镜像方式来获取整个机房的流量数据。这些数据获得后,发送到TMA-Lab实验平台的采集器上,由采集器来完成报文获取与协议分析等功能。这里的采集器和控制器等均可以用普通的台式电脑或服务器,只需部署相应的软件即可。在实验经费不足的情况下,采集器和控制等还可以合并在一起,安装到同一台普通电脑上即可。
1.2 TMA-Lab的软件设计
TMA-Lab实验平台用于提供类似企业网和电信运营商网络中网络流量监控分析系统类似的功能,同时有别于其他网络流量监控系统。TMA-Lab还提供丰富全面的二次开发接口,为网络流量监控分析相关的实验教学、大学生创业创新以及科学研究等提供理论验证和算法研究的实验平台。为此,TMA-Lab需要提供网络流量监控分析系统涉及的所有相关技术,包括高速报文收发、协议识别、流量统计等技术及其相关的各类算法。考虑到TMA-Lab的主要目标是为学习和研究网络流量监控分析提供实验平台,因此,必须提供各层面的开发接口和高可扩展的体系结构。
TMA-Lab由流量采集引擎、协议识别引擎、内置规则库、扩展规则库和交互控制界面等几个部分构成,其体系结构如见图2。
图2 TMA-Lab体系结构
流量采集引擎主要完成采集网卡或者光口上的报文,并提供给上层的协议识别引擎进行协议识别和分析等。同时,流量采集引擎提供了从离线数据文件中读取网络流量报文以及将采集的实时网络流量报文转存到离线数据文件的功能。此外,流量采集引擎还提供扩展结构和基本的统计功能,允许实验者开发和使用新的流量采集技术。
规则库主要包括具体协议的识别特征及其检测算法的实现,以及常用网络应用的端口表,用于配合流量识别引擎完成对具体协议的识别。在TMA-Lab中,规则库由内置规则库和扩展规则库两部分组成,内置规则库有程序内置,提供一些标准协议的识别特征,可满足实验教学的需要。扩展规则库则主要针对新出现的、复杂的网络应用,允许研究人员或高年级学生自行开发和设计新协议的识别特征。
协议识别引擎是TMA-Lab的核心,在规则库的基础上,完成对网络流量的协议识别、统计分析等功能。TMA-Lab中的协议识别引擎基于nDPI[11]开发,内置超过120种常用协议的识别特征,同时允许开发人员开发扩展的协议识别特征和流识别功能。
交互控制界面则作为人机交互界面,主要提供用户操作和管理TMA-Lab实验平台的功能。
2.1 基于Winpcap的流量采集接口
考虑到对现有网络流量监控分析实验软件Wireshark的兼容性以及现有主流协议分析工具的数据规范,在TMA-Lab中,对底层所用的技术根据硬件平台、网卡驱动、操作系统等各种因素来决定,但经过封装,对上层提供统一的Winpcap[12]接口函数,并提供将实时采集的数据存储为离线数据文件,以及从离线数据文件中加载流量数据的功能。TMA-Lab中提供的利用Winpcap来实现流量采集的步骤及函数调用过程如下:
(1)获得本机网卡列表。采集机一般安装有多块网卡,一块网卡用于远程控制或数据传输(如将采集的数据分发给其他电脑用于开展实验),其他网卡用于采集分光或端口镜像方式发送过来的流量数据,因此要采集实时网络流量时,需要首先获取本机的网卡列表。在Winpcap接口体系中,可以通过pcap_findalldevs_ex函数来获得本机的所有网络适配器。
(2)打开指定网卡或数据文件。Winpcap提供了pcap_open_live函数来打开指定的网卡进行数据采集,也可以通过pcap_open_offline函数来打开离线存储的pcap数据文件来读取之前存储的数据。在TMA-Lab中,用户可以通过界面来选择要监控的网卡或读取的离线数据文件,其中要监控的网卡列表可以由第一步的pcap_findalldevs()函数来获取。
(3)设置过滤规则。根据不同的实验内容对网络流量监控分析的侧重点不同,可以通过设置过滤规则来选择要采集的报文,如只采集IP报文。在Winpcap中,可通过调用pcap_compile和pcap_setfilter两个函数来实现过滤规则的设置。
(4)报文处理。Winpcap提供了多种方式来处理采集到的报文:通过pcap_loop函数可以设置回调函数来实现报文的处理,也可以通过pcap_next_ex函数直接获得一个个的报文。在TMA-Lab中,由于采集的报文需要经由nDPI流量识别引擎来进行协议识别和开展其他实验,因此采用阻塞的多线程方式来实现,即通过在多线程中调用pcap_next_ex来获得报文,然后送到一个队列中,由nDPI读取队列来处理报文。
(5)资源清理。资源清理用于程序退出时关闭打开的网络适配器以及释放占用的资源等,可以通过调用pcap_freealldevs函数来释放设备列表。
2.2 基于nDPI的流量识别引擎的实现
nDPI是由ntop维护的一个openDPI[13]的扩展库,基于LGPL开源,可以免费用于各种开源或商业应用。nDPI在openDPI的基础上做了很多扩展,增加了对Windows系统的支持和提供了更多的协议识别特征,同时在性能上也做了优化。TMA-Lab的流量识别引擎采用的是在nDPI基础上进行扩展开发,并主要提供如下几个方面的改进:①将协议识别规则分为内置规则和扩展规则,并提供开发接口供用户开发扩展规则;②提供丰富的流量及协议的统计功能;③提供协议识别的扩展功能,为深度流检测及其他算法提供扩展接口;④针对Windows系统进一步优化性能。基于nDPI改进后的协议识别引擎的基本流程如下:
(1)初始化协议识别引擎。对协议识别引擎中用到的基本数据结构进行初始化,包括时间戳、调戏信息输出函数等。同时,调用ndpi_init_detection_module函数初始化nDPI引擎的检测模块和协议掩码。
(2)设置要识别的协议。通过调用NDPI_BITMASK_SET_ALL函数和ndpi_set_protocol_detection_bitmask2函数来设置要识别的协议。通常这里设置检测和识别nDPI支持的全部协议。在TMA-Lab中,实验平台支持的协议特征分为内置规则和扩展规则,其中的内置规则即nDPI支持的所有协议特征库,而扩展规则库则由实验平台的用户根据扩展接口开发相应的协议识别特征和识别函数后,由TMA-Lab在运行过程中动态加载。
(3)加载协议文件。通过调用dpi_load_protocols_file函数来加载现有的协议文件。
(4)识别协议报文。通过前面几个步骤,TMALab可以实现数据报文的检测和识别,通过调用ndpi_detection_process_packet函数可以获得报文的具体信息,包括协议流、报文的详细信息等数据。
(5)报文分类。在TMA-Lab实验平台中,需将采集的报文进行识别并根据其应用类别划分:将不支持的报文类型都设置成Unknown,将识别出来的报文按照TCP/IP分层协议的层次,依次将报文由下至上进行处理,解析出源地址、目的地址、源端口、目的端口和报文负载等通信五元组信息,并根据通信五元组的信息归并到对应的数据流,送交协议识别DPI算法或流识别DFI算法来进行协议识别分析。
(6)协议识别。根据协议报文的负载和端口信息进行协议特征匹配,详细分析报文,判断报文所属的具体协议。或根据TMA-Lab的配置,将报文组构成的协议流使用DFI算法进行协议识别分析。
(7)统计分析。对采集或者从离线文件中读取的原始报文的数量、流量大小、IP报文数量、IP报文大小、报文的协议类型、不同协议的报文数量和流量大小等数据进行详细统计,并根据TMA-Lab的设置来进行分析,包括对不同协议的通信起止时间、通信内容、每个报文的详细内容等进行分析。
为了测试TMA-Lab的效果,本文选取了千兆光纤网络接入的实验教学示范中心的出口网络进行了实际部署,TMA-Lab的运行结果见图3。由图3可见,TMA-Lab实验平台实现了网络流量的数据采集,也可以为开展协议分析和DPI算法研究提供基础。
图3 TMA-Lab运行结果界面
本文考虑到现有网络流量监控分析实验软件的不足,提出了一种名为TMA-Lab的网络流量监控分析实验平台,并给出了实验平台的设计方案和关键部分的实现方案,以及运行测试结果,对于网络流量监控分析系统开发、协议分析实验、网络安全实验平台建设等都有较高的参考价值。
(References)
[1]付文亮,嵩天,周舟.RocketTC:一个基于FPGA的高性能网络流量分类架构[J].计算机学报,2014,37(2):414-422.
[2]王文蔚.协议分析及其在网络管理中的应用[J].信息技术与信息化,2009(2):31-33.
[3]周杨.协议分析技术在入侵检测系统中的应用[J].计算机系统应用,2011,20(6):161-164.
[4]聂瑞华,黄伟强,吴仕毅,等.基于DPI技术的校园网络带宽管理[J].计算机技术与发展,2009,19(4):250-253.
[5]刘广钟,高军,刘旻,等.报文分析技术在计算机网络教学中的应用[J].计算机教育,2014(1):76-80.
[6]潘文婵,章韵.Wireshark在TCP/IP网络协议教学中的应用[J].计算机教育,2010(6):158-162.
[7]姚永锋,梅瑞,梅越.基于DPI的数据内容安全检测算法优化与实现[J].信息网络安全,2013(7):2-6.
[8]叶文晨,汪敏,陈云寰,等.一种联合DPI和DFI的网络流量检测方法[J].计算机工程,2011(10):102-104,107.
[9]周锦兰,王宏,聂进.多层次大学生创新实验平台的构建与实践[J].实验技术与管理,2011,28(4):16-18,21.
[10]毕大强.科研实验平台建设与使用的几点思考[J].实验技术与管理,2011,28(12):178-180.
[11]Deri L,Martine.nDPI:Open-source high-speed deep packet inspection[C]//IWCMC’14,2014.
[12]沈辉,张龙.基于WinPcap的网络数据监测及分析[J].计算机科学,2012(增刊2):15-18,29.
[13]魏永,周云峰,郭利超.OpenDPI报文识别分析[J].计算机工程,2011(增刊1):98-100,10.
Research on experimental platform with network traffic monitoring and analysis system based on nDPI
Yuan Chunlei1,Ouyang Zhiyou2,Wang Kun2
(1.Institute of Advanced Technology,Nanjing University of Posts &Telecommunications,Nanjing 210023,China;2.School of Internet of Things,Nanjing University of Posts &Telecommunications,Nanjing 210023,China)
The network traffic monitoring and analysis are one of the crucial parts for Information Network subject,as well as one of the most important roles in experiment architecture for Network Engineer,Computer Science and Technology,Internet of Things and so on.However,the existing network traffic monitoring and analysis experimental teaching platform is out-of-date that is a lack of supports for some advanced experiments related to light split,mirror port and Deep Packet Inspection.An nDPI-based network traffic monitoring and analysis experimental teaching platform is presented to support the basic experiments,like packet capturing,protocol parsing,as well as advanced experiments,which are related to the student’s innovation,practical teaching and academic research activities.The design and essential implementation for the platform are introduced,and the actual distribution experience proves that the platform is adequate for the requirement of network traffic monitoring and analysis experimental teaching.
traffic monitoring;traffic analysis;nDPI;deep packet inspection;experimental platform
TN915.04
A
1002-4956(2015)3-0097-04
2014-08-07
中央财政支持地方高校发展专项资金项目“物联网技术研究实验室”(2012);江苏省研究生教育教学改革研究与实践课题(JGLX13_03 4);南京邮电大学教学改革研究重点项目(JG016 13JX10);南京邮电大学实验室工作研究课题重点项目(2014XSG03)
袁春蕾(1981—),女,山东青岛,硕士,助理研究员,主要从事科研管理、计算机网络技术与应用、物联网等方面的教育管理及科研工作
欧阳志友(1982—),男,湖南永州,硕士,实验师,主要研究方向为信息网络、云计算与大数据分析.
E-mail:netivs@qq.com