随着网络应用技术的飞速发展,人们对数据包的安全性检查已经不再局限于数据的传输层以下信息,对数据包中的包含的应用层信息的检查显得越发重要;网络中P2P、SIP等应用日益盛行,占用大量带宽、带宽消耗无计划性,此外,各种网络攻击日益猖獗,如DDOS攻击,蠕虫传播,VoIP服务劫持,信用卡诈骗等,具有识别、监测、控制的DPI技术应运而生。
DPI(深度包检测),一种基于数据包的应用层流量检测和控制技术,针对数据包的不同层信息(如IP地址、应用层端口、应用层协议、净荷内容等)进行深度检测和分析,从而得到整个数据流或数据包的应用层信息;然后按照系统定义的策略对流量进行统计分析和控制。DPI设备的解析识别能力是DPI技术中首要环节,是指通过对网络流量进行采集分析,然后基于一定的特征将该流量归类为某种协议或者应用的过程,如果解析识别能力不足,则无法满足设备对流量的归类统计以及后续对流量的分析控制等功能要求。因此,为了保证DPI设备解析识别能力符合要求,需要对其进行验证和测试。
DPI解析识别能力是DPI系统的基础能力,所有对流量应用层面的监控、管理以及统计都依赖于DPI识别的准确性,可以说,DPI的解析识别能力是DPI系统的灵魂。DPI解析识别能力除了具备传统的IP报文检测技术(即检测报文2层~4层内容),还要对应用层内容进行深层次检测,这也是DPI最重要的特点之一,因此考察DPI解析识别能力,最直观最实用的是通过DPI对应用或者业务的识别情况来反映。所以,能否对各种业务类型进行有效识别是评估DPI解释识别能力的重要体现。
随着网络中的应用业务不断发展,业务类型多种多样,如中国电信根据目前网络中主流业务应用按照即时通信、视频业务、游戏业务等方面定义了20多个大类、200多个小类和数千个业务细分应用。此外,网络中的应用还具有覆盖广、典型性、时效性强、业务特征明确等特点,同时,对于测试方法也希望能够具备调整灵活、易于在实验室实现等特点。为了能够满足以上测试需求,对于测试方法以及测试工具都提出了相当高的要求,针对DPI解析能力的测试,目前存在以下难点。
(1)业务种类多,难以全部覆盖;
(2)很多业务为私有协议,或者是基于标准协议,但做了很多私有的实现,借助一般的工具难以在实验室进行模拟;
(3)难以确保测试用例中模拟的流量带有准确的业务特征供DPI系统进行识别;
(4)难以在大流量高带宽的场景下模拟现网的真实压力,验证DPI系统的协议识别能力;
(5)业务识别的准确性如何衡量。
根据上述测试需求及难点,下面通过测试拓扑、测试流量构建、测试业务模型、测试结果分析和测试方法改进及展望5个方面探讨DPI识别能力的测试方法。
在现实网络中,DPI设备的接入方式一般有两种:串接形式及并接形式,由于这两种接入方式对DPI解析识别能力测试区别不大,只是DPI接入方式不同、流量输入输出不同,故本文以并接接入形式为例。如图1,模拟现实网络:测试仪模拟真实流量,通过路由器模拟现网中的一段传输真实流量的网络,并通过分光器把流量镜像分光到被测DPI设备。
图1 DPI解析能力识别测试拓扑
为保证测试流量能够比较真实地模拟现实流量,且又能够易于在实验室实现,测试中采用典型业务样包采样、报文回放等技术构建测试流量。
3.2.1 典型业务样包采集
典型业务样包的采集是模拟现实流量的重要方式,在进行业务报文采集的时候需要注意以下几点,以确保能够采集到纯净的、完整的、准确的业务样包。
(1)采集的终端多样化,PC、Andriod手机、iphone、iPAD等都可以包括,不同的终端特征可能有所不同,甚至不同的软件版本也会有差异,因此,采集的终端需保证多样化;
(2)采集业务报文的时候要保证过程尽可能完整,以确保在样包中包含流量特征。
(3)部分业务可能会包含多个流程、多个通道,比如FTP分为控制通道和数据传输通道、视屏点播业务包含RTSP播放控制交互和媒体流等,需要进行一些分析和处理以后才能用于回放,以保证业务的准确性。
(4)保证纯净的采集环境,例如可以采用虚拟机,减少杂包过多、环境对样包的干扰等因素。
(5)采集到的报文需要进行处理,将无关的杂包过滤掉,确定样包完整性以及准确性,避免对测试造成影响。
3.2.2 通过报文回放技术实现业务流量模拟
由于不同业务采用的协议和技术实现千差万别,要在实验室中模拟现网的业务流量,最好的办法是采用报文回放的方式。但是一般的报文回放技术会存在一些限制或不足。
(1)为准确抓取带有协议特诊的流量,通常只针对一个用户进行抓包,这也导致回放的时候只能回放一个用户的流量,在用户数、流量压力上都比较少
(2)一般的报文回放,是原始报文重放,在MAC地址、IP地址、协议端口号等都不会变化,对于测试来说,报文的转发、测试流量的变化性就有所不足
在测试过程中,为了避免上述不足,将采用Spirent公司Avalanche仪表上的应用层播放仿真引擎(Scalable Application Playback Emulation Engine,SAPEE)的回放技术进行报文回放。SAPEE功能的特点有:
(1)支持标准的PCAP格式报文导入,并进行分析之后,按流进行编辑处理和回放。
(2)可以修改流量的源、目标地址、协议端口号。
(3)可以通过变化源IP地址实现海量用户的仿真。
(4)可以在回放报文的载荷部分通过插入变量等方式进行修改,以适用于更加丰富的测试场景。
(5)可以修改原始报文的收发间隔,来模拟网络中网络传输时延的变化、服务器响应时间的变化等情况。
(6)回放报文重新构建真实的TCP/IP协议栈,回放报文在网络中可寻址、可路由,遵循真实的TCP、UDP报文传输机制,使测试流量更加具有真实性。
(7)回放报文可统计,为测试结果提供评判标准。
在测试过程中,业务模型需要按照现实网络流量适配,但又不仅仅局限于现实网络,故测试业务模型应包括以下类型。
(1)流量协议种类:应包含互联网各种主流应用,具备多样性,并达到一定的数量:HTTP文本、图像和视频流量、P2P流量、Web视频类/Web浏览类流量、游戏类、自营业务等。
(2)业务流量成分:IPv6和IPv4的混合流。
(3)新建并发连接数:为了更真实模拟现网流量压力,要求测试流量TCP并发连接数以及每秒新建数不低于指定值(如,并发连接数>5 000万/100 G链路、新建连接数>200万/100 G链路)。
(4)压力叠加:测试网络中总的流量压力要达到被测系统的标称值(如400 G平台);由于业务识别的测试流量难以达到如此高的规格,因此其他部分的流量需要用背景流量进行填充,为了避免被测系统有针对性地通过流量过滤的方式来减轻测试压力,背景流量应该模拟有意义的UDP或TCP业务,如DNS、HTTP等,且IP地址、协议端口号也应该符合一定的分布。
(5)被测DPI同时使能功能:被测DPI需要同时开启现网/测试要求的主要功能,正常上报话单或实施控制功能等,避免通过只开启协议识别模块来进行性能提升。
图2 DPI设备识别结果
通过上述构造流量以及业务模型,在实验室模拟现实网络拓扑,利用仪表把测试流量注入到被测DPI设备,DPI设备由此会产生识别话单;通过比对DPI设备的识别话单以及仪表回放流量的报文统计信息,可以评定DPI设备解析识别能力的强弱。能力强弱可以通过以下几点来评定。
(1)应用种类识别率。计算公式:应用种类识别率=识别的种类数/真实应用种类数;同等情况下,A设备能应用种类识别率比B设备高,A设备的解析识别能力明显比B设备强。
(2)单应用识别率。计算公式:单应用识别率=1-(单应用真实总流量-单应用识别流量)/单应用真实总流量;单应用识别率越高,说明该设备对该应用的解析识别能力强。
如某次实际测试中,两款DPI设备(A,B)测试结果如图2所示,设备A种类识别率比B的高,说明在A设备在多应用场景下的总体解析识别能力要强于B,而在某些应用中,B设备的单应用解析识别能力要强于A。因此,我们可以根据具体的需求,通过这些测试结果多方面来评定DPI设备的解析识别能力强弱。
目前有关DPI的测试历时不长,相关经验不多,DPI解析识别能力方法仍然还有不少提升和改进的空间,比如:
(1)业务种类的时效性和覆盖的全面性
互联网的业务日新月异,测试的流量库一定要及时更新,能反映现网的中最具有代表性的业务。
(2)业务流量的比例和吞吐量
目前测试中,由于测试手段的限制,业务的流量与现网差别较大,更多的是以海量的背景流量情况下产生少量的带有有效测试信息的测试业务流量。这种方法满足了测试流量的需求,但对真正现网运维提供的参考相对有限,未来也期望能够从流量和业务吞吐量上越来越接近真实现网。
(3)加密业务的识别和处理
现在互联网业务中,以SSL/TLS为代表的加密流量的比重越来越高,在这种情况下,DPI设备要进行业务识别的难度也越来越大,从测试的角度也需要考虑适应这种变化的趋势。
DPI解析识别能力的测试是评估DPI设备整体功能性能的最重要一环,同时也是DPI设备最本质的特点——深度报文检测的最直接体现。本文探讨的DPI解析识别能力的测试方法,为当前DPI设备解析识别能力测试提供一种有效可行的方案,提升了DPI测试的科学性与合理性。由于互联网业务变化快、应用新增多、应用更新快等特点,DPI解析识别能力的测试需要实时跟进业务应用的变化、增加测试的业务样包以及更新新的业务应用回放技术,并不断完善整体测试技术方案。