互联网流量管理系统

互联网流量管理系统

 

1概述   随着互联网的快速发展,人们不断在互联网的数据采集和分析方面进行深入研究和系统开发,以期能向社会提供丰富的统计和决策分析信息,同时提高对互联网业务的控制和监管。国内外互联网数据采集分析方法主要分为3类,即采用SNMP协议、RMON协议或NetFlow技术采集数据。但是国内外同类产品在具体应用中都有一定的局限性[1]。考虑到应用的安全性,更希望能采用具有国内自主知识产权的产品。   本文对数据汇聚分发和采集分析进行了研究,开发了一套集数据汇聚、分发、采集和分析于一体的综合系统。   2互联网流量汇聚分发采集分析系统总体框架   本文系统主要用于提供复杂接入环境下多链路数据采集、互联网原始数据分发、综合数据、综合流量识别与分析等服务,系统的研制目标包括以下4个方面:   (1)多路接入环境下多条大容量链路数据进行汇聚,汇聚的接入链路包括光纤、电路2类,数据类型包括以太、ATM2种格式。   (2)对多条大容量链路数据进行分发,将多路汇聚后的数据向数据输出端若干组端口实时并行发送。数据分发的目的包括信息安全、国家安全、公共安全等。   (3)实时采集大容量多路原始数据,并生成网络数据会话流。   (4)基于应用协议进行数据识别及实时统计分析,为其他应用系统提供灵活的数据格式和分析结果。   3系统关键技术实现   本文系统的实现主要从数据汇聚分发和数据采集分析两方面进行关键技术研发。   3.1数据汇聚分发   数据汇聚分发的主要功能是在多路接入环境下将多条大容量链路的数据进行汇聚和分发。各链路数据进行汇聚分发时,系统数据输入端配置N个输入端口,数据输出端可以分不同组别进行分发。按照不同需求,系统输出可以分为4类:   (1)单/双端口万兆输出;(2)N个端口千兆输出;(3)M个端口千兆输出(M<N);(4)N个端口百兆输出。在研发中,基于H3CS9500系列核心交换机,联合杭州华三公司进行了二次定制开发,实现了数据的汇聚和分发系统,其关键技术包括:(1)利用虚拟管道使不同流量进入不同复制域虚拟管道是利用标签而衍生出来的,指汇聚分发的报文进入S9500后,S9500采用内部标签标识,利用标签技术对相应的报文增加不同的标签进行标识。对不同的输入端报文构建了不同的虚拟管道,不同输入端的报文可以不考虑其带有冲突的802.1q内容,从而为不同客户划定不同的复制域,这些复制域还同时具有防802.1q冲突的能力。   这里只需设置不同客户接入端口为虚拟管道入口,而各输出端口为各自的虚拟管道出口。在管道中,通过硬件底层下发访问控制列表(AccessControlList,ACL)规则,使流量只能从管道的入口进、管道的出口出,因此,不会出现环路风暴问题。   (2)以组播技术实现每个复制域内单播报文的多份复制IP组播报文在路由器、交换机的转发是一对多的转发,IP组播报文进入S9500后,直接进入硬件的组播交换引擎,查找组播硬件转发表,确定下一跳和出接口列表,并完成报文目的和源地址内容的修改,在组播引擎完成组播报文的多份复制后,从各个出接口送出。   3.2数据采集分析   在数据采集分析模块开发中,联合上海直真视通公司,实现该模块的关键技术包括:   (1)流量捕获   基于端口识别网络流量的传统方法已不适用于识别新型的、复杂互联网应用类型产生的流量,应用级流量采集与分析应采用数据包深度分析技术识别网络流量。本文系统采用了高性能网卡加Libpcap软件的方式捕获数据包。Libpcap是Unix/Linux平台下通用的数据包捕获函数包。捕获数据包时,Libpcap将网卡设置为混杂模式,在内核空间内复制网络驱动程序读取的数据包,再传递到用户空间。Libpcap捕获数据包需要二次内存复制,限制了其捕获性能,因此,采用了零拷贝和负荷平衡方法来改进Libpcap[2]。   (2)网络流生成   网络流生成是将链路上获取的原始数据包归并为网络流形式输出。网络流是对一个测量间隔内一些具有相同属性的数据包集合的抽象描述,可以定义为一个测量间隔内具有相同(源IP地址,目的IP地址,源端口,目的端口,协议类型)五元组的网络包集合,它是一种单向的、细粒度的流量聚合形式。   网络流生成过程如下:网络流生成器在内部维持当前活跃网络流的记录缓存结构,当捕获到新的原始数据包时,网络流生成器判断这个数据包是否属于当前活跃网络流,如果是,修改网络流相关信息;如果不是,创建新的网络流记录并设置网络流相关信息。   (3)网络流应用类型识别   本文系统的应用级流量采集与分析方法首先在网络流生成的同时,融合多种流量识别算法识别网络流的应用类型。   目前互联网上常见的协议和应用主要包括传统型(HTTP、研制了网络协议分析和识别系统TAS,其核心为iSIE互联网会话识别引擎。TAS由采集探针和协议分析引擎两部分组成,如图2所示。其中,采集探针负责采集宽带流量数据并进行预处理,将预处理结果提供给协议分析引擎;协议分析引擎能够接收一个或者多个探针的预处理数据,并对这些预处理数据进行综合分析,统计、识别协议类型,将分析结果存入数据库。   在具体实现时,将流量采集与分析分为多个阶段来实现,包括原始流量捕获、会话流生成、会话流存储、流量分析和信息呈现。其中的流量分析主要使用网络流应用类型识别和基于网络流关联识别应用类型的方式进行流量识别和实时统计。#p#分页标题#e#   FTP、Telnet、SSH、DNS等)、多媒体/流媒体(SIP、MMS、RTP、Q.931、H.245等)、P2P(thunder、pplive、ppstream等)、游戏和互联网磁盘等。按照通信模式或会话结构,可以将这些互联网应用采用的会话结构分为5类,针对上述5种不同会话结构的互联网应用,本文采用的流量识别和分析算法包括:   1)基于端口识别的方法   基于端口识别的方法适合TypeS-F-2类型的应用,准确度较高。该方法依据流量使用的端口识别应用类型,分3种情况:使用IANA组织分配的公认端口;企业开发的专用协议或应用使用在IANA组织注册的登记端口;国内开发的流行协议或应用也使用专用端口。   2)基于协议解析的方法   基于协议解析的方法适合TypeM-D-2类型的应用,用于识别一些使用动态端口的网络应用产生的流量。这类应用的特点是先通过一个公开的固定端口建立一个控制会话,在控制会话中协商出之后的数据会话的动态端口。有些应用则是在协商出数据会话的动态端口之前还有一个二级控制会话的端口协商过程。除了流量和流向外,这些应用往往还关注连接时长、适用的音视频编解码算法、音视频质量等信息,因此,有必要对有效负荷进行解析。首先建立一个描述控制会话端口的表CPT,再通过动态会话流端口解析算法DSPP(DynamicSessionPortParsing)解析协议,算法具体步骤如下:步骤1如果CPT中存在网络包主端口,且无FIN标志,执行步骤2~步骤5;否则,执行步骤6。   步骤2由分派函数指派相应的协议解析函数,对有效负荷进行协议分析。   步骤3如果协议分析结果正确,则为该应用建立会话流,并且解析出后续动态会话端口;否则,该网络包视为其他应用,参与其他应用的分析。   步骤4如果所属应用有二级会话,继续执行步骤2、步骤3,直至解析出数据会话端口。   步骤5所有属于二级控制会话和数据会话的网络包都属于该应用的这个会话流。步骤6如果收到断开连接的网络包或超时后会话流数据包不再到达,则会话流结束。   3)基于特征识别的方法   基于特征识别的方法适于部分TypeM-F-3和TypeM-D-3类型的应用,对机器性能要求高,且对大部分流量无效。该方法使用特征匹配技术发现已知应用和网络行为,可以将特征匹配技术应用于识别网络流量的应用类型[3]。基于特征识别方法是检查一个网络流前几个数据包的负载部分,确定是否存在预定义的应用特征码。   4)网络流关联识别的方法   网络流关联识别的方法适合TypeM-F-2、TypeM-F-3和TypeM-D-3的应用。在一般的网络应用分析中,采用传统基于数据包的模式匹配算法或会话数据流重组算法对网络行为进行管理[4]。本文提出基于网络流关联识别的加权会话流关联映射分组算法WSFRG(WeightedSessionFlowRelationship-mappingGrouping),将一些具有时间、空间属性相似性的网络流相关联,将获取的交互图与已知网络应用的会话结构做比较,由此识别应用类型。WSFRG算法将独立的网络流按照关联管理组合成网络流组,这些组属于同一种应用:首先按照属性依赖关系进行分组,称作属性依赖分组(PropertyDependencyGrouping,PDG),将网络流进行关联合并,形成PDG组。在此基础上,按照一定权重将在源、目的地址上存在关联关系的PDG组进行关联合并,称为LDG(LocationDependencyGrouping),最后形成LDG组。经过上述2个步骤合并后的网络流组的数目会有所减少,根据这些流组信息进行应用类型分析,对于未知应用类型的流组,包含的信息也可以提供给离线的应用分析作为参考。   4系统实施效果   本文系统经过一段时间的试用后,在应用协议识别和流量采集方面体现了较好的性能,可以识别90%以上流量中的应用协议,同时识别协议的种类超过2000种。经过上海市软件测评中心的第三方测试,系统与国内外同类型产品相比,具有较高的技术水平,尤其在协议识别、流量控制方面超过同类产品[5]。本文系统应用于上海互联网络交换中心后,明显节省了交换中心会员单位的重复建设费用、政府相关服务部门的数据采集费用以及互联网运营商的通信带宽费用。   5结束语   本文利用虚拟管道、组播、网络数据采集与协议分析等技术,设计实现了一个面向IP网络的数据汇聚分发采集分析系统。目前系统已经基本具备推广使用的基础,可以应用于政府、运营商、公益服务机构、信息安全等领域的互联网监管和应急防范。