针对网络服务提供商的一种流量分类和应用架构
2013-08-20范全润潘峰
范全润 潘峰
西安电子科技大学计算机学院 陕西 710071
0 引言
随着网络应用的不断发展,网络服务提供商(internet service providers,ISP)面临许多问题,其中就包括如何识别和控制网络上的数据流,如P2P流量,以及如何识别和阻止网络上的病毒或者网络入侵。
P2P网络中的节点在联入P2P网络、检索所需资源时,会大量发送洪泛性质的广播帧和连接请求。在下载资源时,由于大量资源都是视频等数据量很多的文件,因此P2P应用往往会占用大量的网络带宽,这使得原本有限的网络带宽资源变得更加捉襟见肘,导致网络上的其它服务无法提供或者使服务质量很差。
在网络安全方面,蠕虫及病毒等攻击变得越来越频繁,攻击或者传播的速度越来越快。传统的应对病毒和网络攻击的方法是在终端客户机上安装杀毒软件和防火墙。但是,为了应对新出现的病毒和攻击,就需要经常对杀毒软件和防火墙软件进行相应的更新。这样就存在很多问题,例如响应速度慢,维护成本高等。因此,更为有效的办法是尽早在通信子网中对这些网络病毒和攻击进行阻止,以避免对大量的终端客户造成损害。
要实现这些应用,首先必须进行网络数据流识别。网络数据流识别在企业、网络服务提供商和政府组织中都有着广泛的应用,这些应用领域包括网络入侵检测,防火墙,网络工程管理和服务质量控制。它们在速度、扩展性、可伸缩性和成本效益方面都有着严格的要求。
目前流行的分类方法主要有DPI和DFI两种。DPI被广泛用于实时数据流管理,用来识别和控制特定类型应用的网络带宽。它的典型应用是用来识别如 Bit Torrent或 eMule/eDonkey这样的P2P协议,进而根据需要采取封锁、带宽限制或者流量整形等措施。
网络数据流是以离散的数据包的形式出现的,这些数据包除了数据本身外,还包含源IP地址、目标IP地址、使用的IP协议号及目标端口号等信息。DPI设备检查网络上传递的数据包,不但查看包的头部,而且还要检查包的内容,以判定应用的类型。
DFI并没有一个公认的统一定义,有时候与之相关的技术也称为行为分析、启发式分析及行为模式识别等。因为有时候一些网络应用将数据包进行了伪装使得DPI难以识别,因此DFI被作为DPI技术的一种补充,它根据应用的行为来推断其类型。
DPI规则相对简单,它可以通过识别包的端口号、特征字符串、协议或者二进制位串等方法来找到应用的类似于指纹的信息来识别应用的类型。DFI则要求网络服务提供商对过分析来设定应用的行为模式,根据设定的模式来发现应用的类型。
DPI和DFI都有各自的优点和缺点。例如,虽然DPI可能更能准确地识别出应用所使用的协议和类型,但是因为DPI要检查每个包,所以DPI速度一般比DFI慢,此外,如果出现新的协议或者应用,DPI都必须针对新协议或应用进行相应的处理,因此在管理上存在困难。如果包的内容经过加密处理,或者经过协议封装,DPI技术就不再有效。DFI因为不需要分析包的内容,因而速度较快,但发现应用的行为模式也存在一定的困难,且可能出现误判的情况。因此,把DPI和DFI技术结合起来,综合利用它们的优势,可以取得更好的效果。
在本文中,我们针对网络服务提供商的需求,提出了一种分类架构。这种架构把DPI技术和DFI技术结合起来。为了更有效地发现分类规则,使用了数据挖掘服务器。数据挖掘服务器从主干网的边界路由器处收集数据包并将其存储到数据仓库中,然后运用数据挖掘工具从中发现数据包的分类规则。
本文第一节介绍相关的背景知识,第二节给出针对网络服务提供商的数据流分类和应用架构,最后是对全文的总结。
1 相关知识
网络服务提供商利用DPI和DFI技术来对通信子网上的数据流进行识别,并根据识别出的应用的类型来进行相应的处理。运用这一技术的关键是如何及时发现应用的分类规则,并快速地根据规则进行流量识别和处理,以满足通信子网的速度要求。
流量分类算法必须要和网络上的边界路由器和核心路由的处理速度相匹配,因此它对速度的要求非常高。分类规则和包处理规则可以有三种实现方式,即用软件、专用集成电路或者FPGA来实现。软件实现方式虽然灵活度高,但是往往无法达到速度上的要求。专用集成电路速度快,功耗低,但是它的非重复性工程费用高,且功能在芯片制造完成后无法改变,因此无法应对用网络上不断出现的各种新的应用或者网络攻击。
FPGA是一种可编程逻辑器件,在制造完成后,它的功能可以通过编程来进行修改。根据应用的需要,FPGA中实现的功能也可以通过网络来更新,因而它有着类似于软件的灵活性。虽然和专用集成电路相比它的速度和功耗不占优势,但它没有专用集成电路那样的非重复性工程成本,并且基于FPGA的设计实现周期也非常短。
此架构用专用集成电路来实现已知的分类规则或者处理规则,以提高处理速度。用FPGA来实现新发现的分类规则或者处理规则,以应对网络上不断出现的新应用和攻击。
为了发现基于DFI的分类规则,我们需要有更好的方法,比如机器学习。目前已经有很多基于DFI的分类算法,本文下一节提出了一种将DPI和DFI技术及数据挖掘技术相结合的网络应用架构,以更好地为ISP提供服务。
2 流量分类的应用框架
2.1 应用的基本架构
本文提出的数据流量分类基本框架如图1所示。对数据流的处理由多服务网关(Multi-service control gateway)来完成,多服务网关部署在边界路由器上。
图1 流量分类的基本架构
对于类型确定的数据流,如网络语音服务数据流,不需要进行任何处理就可以通过边界路由器。其它数据包需要经过多服务网关的分类处理模块。分类处理模块按照分类规则对数据包进行识别,并根据识别出的应用的类型来进行相应的处理。
已有的流量分类规则,包括DFI和DPI的分类规则,通过专用集成电路芯片来实现,这样可以通过硬件的并行机制来对数据流进行高速的分类处理。
由于某些方面的原因,很多现有的应用会改变他们的特征关键字或者行为模式,而且新的应用也会不断出现,这样就需要对流量分类规则进行修改或增加。如果只使用专用集成电路芯片,就需要重新设计和制造芯片,这样将会大大提高成本,因此,架构中使用FPGA芯片来处理变化或者新增的流量分类规则。FPGA芯片只需要重新编程就可以处理变化或者新增的分类规则,从而降低了系统成本。此外,目前大部分FPGA芯片都可以通过网络实现重新编程,因而也可以降低多服务网关的维护成本,同时提高系统更新的速度。
在这一架构中,最重的问题就是如何获取流量分类规则。下一小节就讨论如何在数据通信子网中获取分类规则。
2.2 应用在网络上的部署框架
图2给出了这一应用在网络上的部署架构。在部署架构中最重要的就是数据流量分类规则挖掘服务器,它负责发现流量分类规则,并将这些规则通过网络传递给边界路由器。因为DPI规则相对容易发现,所以数据流量分类规则挖掘服务器的主要任务就是发现DFI分类规则。
图2 系统部署架构
和 DPI不同的是,DFI需要从网络上收集大量的数据包,然后根据对这些数据包的分析来发现通过DPI技术无法发现的一些规律。
由于需要存储大量的数据,并且对这些数据进行分析处理,因此很难在路由器或者交换机上实现。我们提出用专门的数据挖掘服务器来实现这一功能,数据挖掘服务器从边界路由器中收集数据包,并将数据包存储到数据仓库中。因为所有的数据都要经过边界路由器,因此只需要从边界路由器上收集数据即可,不需要从核心路由器上收集数据。通过使用数据挖掘技术,如聚类、基于神经网络的分类等,可以发现某些应用或者网络攻击的行为模式,从而产生相应的数据流量分类规则。
这些新发现的分类规则将用FPGA来实现,FPGA芯片放在多服务控制网关上。如果有新的规则需要加入或者有过时的规则需要删除,通过网络对FPGA进行重新编程就可以简单地实现分类规则或者处理规则的维护。
3 结论
Internet的设计在很大程序上是基于“端到端”设计原则,网络上的终端客户对整个数据包的内容进行处理,而边界路由器则对数据包的头部进行处理,以决定是将数据包发送到另一个边界路由器还是核心路由器。核心路由器一般不处理数据外的载荷,有时甚至都不处理整个包头部,只简单地根据目标IP地址决定该包应如何转发。
Internet这种架构导致了它在安全和流量管理和控制方面存在一些问题。P2P应用或者网络攻击可以通过有效协议来伪装成合法或不应受控的数据包,这些数据的头部没有任何问题,因而可以通过边界路由器和核心路由器在网络上传播。要解决这些问题,就需要正确地识别出网络上的数据流。
在数据流分类中,最重要的就是DPI/DFI规则。很多网络数据流识别方法都是针对P2P的,因为P2P往往占用了网络上的大部分带宽。但是P2P应用往往通过数据加密和协议封闭都技术来避开网络检查。文献[6]提出了一种 P4P(Proactive network Provider Participation for P2P)的方法来优化P2P的网络连接应用,但是这种方法需要ISPs和P2P软件开发者之间的合作。但实际情况是网络服务提供商一般都不愿意和P2P软件提供商或者组织合作。
本文提出了一种网络数据流分类框架。这一框架从网络中的边界路由器上收集数据。收集到的数据被用于数据挖掘,根据挖掘产生的规则来对数据进行分类。分类算法在多服务控制网关上用FPGA来编程实现,也可以在边界路由器上实现。
因为数据流的分类和处理都是在路由器上进行,因此对速度的要求就特别高。但由于应用或者攻击的类型很多,因此一个数据包可能要与成千上万种特征数据进行比较。例如,网络入侵检测系统SNORT在2012年3月发布的2.9.2.2版本就包含21645种特征。因此,如何提高数据包的分类和处理速度以适应越来越高的网络速度需求,还需要进一步的研究。
[1]S.Zander,T.Nguyen,G.Armitage.Automated Traffic Classification and Application Identification using Machine learning.Proc.of the IEEE Conference on Local Computer Networks 30thAnniversary.2005.
[2]T.Nguyen,G.Armitage.A Survey of Techniques for Internet Traffic Classification using Machine Learning[J].IEEE Communications Surveys & Tutorials 4th edition.2008.
[3]I.Kuon, J.Rose.Measuring the Gap between FPGAs and ASICs[J].Proc.of the 2006 ACM/SIGDA 14th International Symposium on Field Programmable Gate Arrays.2006.
[4]U.Fayyad,G.Piatetsky-Shapiro,P.Smyth and R.Uthurusamy.Advances in Knowledge Discovery and Data Mining[M].The MIT Press.1996.
[5]J.Saltzer,D.Reed and D.Clark.End-to-end arguments in system design[J].ACM Transactions on Computer Systems,vol.2,1984.
[6]H.Xie,Y.Yang,A.Krishnamurthy.P4P:provider portal for applications[J].ACM SIGCOMM Computer Communication Review archive,Volume 38,Issue 4.2008.
[7]SNORT Network Intrusion Detecting System [CP/OL].[2012-10-26].http://www.snort.org.