具体实施方式
针对上述对现有技术的分析可以看出,如果能够按照所提供的服务对应用协议进行分类,然后针对这些服务进行网络流量管理,就能够把面向千百种协议的流量管理工作简化为面向十几种或者几十种服务的流量管理。本发明提供的网络流量分类处理方案就是基于服务的流量管理模型和实现方法,不仅能够带来流量管理上的易用性,并且具有良好的可扩展性和可移植性。下面,就结合附图和实施例,对本发明的技术方案做进一步的详细描述。
请参见图2,目前进行网络流量管理的模型为:服务树构建和策略配置->服务匹配->策略执行->服务统计->服务报表;其中,服务统计和服务报表是为了获取网络流量的统计信息,不是本发明改进的重点;本发明所提供的技术方案侧重于服务树构建与匹配,以及策略的配置和执行。
本发明提供了一种网络流量分类处理方法的一实施例,请结合图3,包括以下步骤:
S1、构建与服务分类结构对应的服务树;
具体来说,服务树是由多个服务结点组成的完整树型结构,与服务分类结构相对应。例如,请参考图4,为本发明一服务分类结构的示意图,Default(缺省)是所有服务的根服务,Game(游戏)等是服务树的中间服务,Quake(雷神之锤)服务是Game的子服务,且如果Quake下没有子服务,那么它就是叶子服务。
为了实现服务树与服务分类结构相对应,可以通过如下方式加以构建,请参考图5,包括:
S11、设置对应缺省服务的根服务结点;
S12、在所述根服务结点下逐级设置子服务结点;其中,上一级子服务结点与其下一级子服务结点分别对应一类服务与其子类服务。
其中,为了实现对服务结点的标识,可以在根服务结点上记录缺省服务ID,在子服务结点上分别记录相应的服务ID及其父服务ID。
通过以上设置,可以使服务树中每个结点都对应于提供相同服务的一类流量,例如E-mail服务、Multimedia(多媒体)服务等,并通过每个结点的服务ID加以标识;对于根服务结点以外的结点来说,都有父服务结点,从而实现服务树各层结点之间的互相关联。
显然,区别于现有技术中分类树基于协议平行展开或者仅有一层子结点的情况,通过上述步骤实现的服务树,具有上一级结点统领下一级结点的多层次特点。通过为下一级结点继续添加子服务结点,能够继续扩展服务树,从而提供更细粒度、更深层次的服务划分,而且这种纵深的服务划分不会改变整体服务树的结构。
与现有技术类似,每个结点必须指定具有什么属性的流量属于该服务,即为结点配置流量匹配参数,如下述步骤S2所示。
S2、分别为服务树的各结点配置流量匹配参数,使任一结点关联相应服务的流量属性;
具体来说,流量匹配参数可以包括协议匹配参数(protocolattribute)。所谓的协议匹配参数,是指承载该服务的协议,比如对于某一个承载在HTTP协议上的服务而言,其协议匹配参数应该是HTTP协议。
由于存在不同的服务使用同一类协议的情况,因此为了准确定义一个服务,可以在承载协议之上再加入一些内容匹配参数(signatureattribute);当然,内容匹配参数也可以独立使用。例如定义一个搜索服务:承载在HTTP协议之上,且URL=www.baidu.com,这个URL参数就是内容匹配参数。
用户可以基于系统发布的多种内容匹配参数模板,灵活定义内容匹配参数。具体的,参数模板可以采用PCRE(Perl Compatible RegularExpressions,正则表达式)加以描述,比如:
一个内容匹配参数=内容模板ID+参数操作符+内容特征;参数操作符包括:>(大于),<(小于),≠(不等于),≤(小于等于)和≥(大于等于);
一组内容匹配参数=内容特征+组合操作符+内容特征...,其中组合操作符包括:&(与),|(或),-(顺序)。举例来说,当一组内容匹配参数为{内容特征1|内容特征2}-{内容特征3}时,表示报文需先命中内容特征1或内容特征2,再命中内容特征3,才算命中此内容匹配参数。
进一步的,为了适应企业或运营商的组网环境,有时需要通过指定服务器IP地址或者一个服务器群组,才能精确细化一个服务,该服务器IP地址或者服务器群组作为服务器IP参数(server ip),也可以构成一种流量匹配参数。例如,指定特殊的服务器IP地址10.143.2.34;指定特殊的服务器群组10.143.2.34~10.143.2.36中的所有主机;指定特殊的服务器群组10.143.2.34~10.143.2.36中的任意一台主机;等等。
另外,现有技术中所定义的结点属性都是静态的报文特征,而非动态的流行为特征。而实际上,网络中正常的应用与恶意的应用在报文特征上往往难于区分,而需要通过流行为特征加以识别,比如指定时间内的会话数量。正由于现有技术中流量匹配参数中缺乏流行为特征参数,因此导致实际应用中存在明显的缺陷与不足。为了克服这一问题,实现安全服务管理功能,可以在流量匹配参数中配置流行为参数,包括定义安全行为的行为模式属性或者不安全行为的行为模式属性。例如:
根据指定秒数内的可信会话数阀值,能够识别出一个完整的TCP连接,该连接可以被认为是可信会话;
根据指定秒数内的不可信会话数阀值,能够识别出一个TCP半连接,该连接可以被认为是不可信会话;
以及,根据不可信会话数与可信会话数的比例阀值、指定秒数内的报文数阀值以及指定秒数内的某一内容匹配参数或某一组合内容匹配参数的命中次数阀值等识别相应的流行为。
请结合表1A、1B和1C,分别为IP话音(Voice over IP,简称VOIP)服务、视频会晤服务和即时消息服务的服务结点所对应流量匹配参数的形式示例;本领域技术人员容易理解,视频会晤服务和即时消息服务为VOIP的子服务。其中,在视频会晤服务使用会话初始化协议(SessionInitiation Protocol,简称SIP)实现时,其协议匹配参数为SIP;即时消息服务又可细分为子服务:MSN(Microsoff service Network)服务、QQ服务以及雅虎通服务等,在这些从属于即时消息服务的子服务使用H323协议实现时,其协议匹配参数为H323,且不同子服务的服务器IP参数会有所区别。
为了便于说明起见,在表1A、1B和1C中将大部分的流量匹配参数都用*替代,表明缺省,即匹配时无需考虑。具体的,表1A、1B和1C显示的IP话音服务、视频会晤服务和即时消息服务流量属性包括:当满足服务器IP参数为10.154.*.*(IP地址中的*代表掩码)时,即认为匹配到服务ID为1的IP话音服务(表1A);当满足协议匹配参数为SIP,内容匹配参数为SIP源域=p1.example.com,流行为参数为最大新建会话数100/s,即认为匹配到服务ID为2的视频会晤服务(表1B);当满足协议匹配参数为H323,服务器IP参数为10.165.*.*、10.168.*.*以及10.169.*.*时,即认为匹配到服务ID为3、4和5的即时消息服务(表1C):
服务ID |
协议匹配参数 |
服务器IP参数 |
内容匹配参数 |
流行为参数 |
1 |
* |
dip=10.154.*.* |
* |
* |
表1A
服务ID |
协议匹配参数 |
服务器IP参数 |
内容匹配参数 |
流行为参数 |
2 |
SIP |
* |
SIP源域 =p1.example.com |
最大新建会 话数:100/s |
表1B
服务ID |
协议匹配参数 |
服务器IP参数 |
内容匹配参数 |
流行为参数 |
3 |
h323 |
dip=10.165.*.* |
* |
* |
4 |
h323 |
dip=10.168.*.* |
* |
* |
5 |
h323 |
dip=10.169.*.* |
* |
* |
表1C
本领域技术人员可以理解,上述表1A、1B和1C所显示的流量匹配参数内容,仅为形式上的举例描述,并不代表这三种服务实际所对应流量匹配参数。但无论实际使用的流量匹配参数内容具体如何,都可以按照上述协议匹配参数、服务器IP参数、内容匹配参数和流行为参数进行归纳;当然,根据实际需要,本领域技术人员也可以相应添加流量匹配参数的分类。
进一步的,在实际使用中,必须将流量属性与相应的结点关联起来。显然,可以采取针对每个结点逐一进行流量匹配参数设置的方式,将流量匹配参数按照上表1A~1C的形式配置,并通过服务ID关联到结点。
但是,这种逐一关联的方案往往会造成一些相同流量匹配参数的重复配置,即对应每一个结点都要配置一次;同时,这种方式往往需要在执行匹配时逐一结点的加以匹配,容易导致效率降低。因此较佳的,可以通过统一配置流量匹配参数和统一关联的方式进行。以下描述了进行流量匹配参数配置的一较佳实施例,如图6所示:
S21、按照二维表的形式组织所有流量匹配参数的协议匹配参数和内容匹配参数,则报文可以按照精确匹配的方法,唯一命中该二维表的一个表项;
S22、为每一个二维表项构建服务器IP链表,该服务器IP链表由相应的二维表项索引,按照深度优先的顺序组织服务器IP匹配参数;其中,所谓的深度优先也可以称为精确优先,比如,当链表中具有四个服务器IP地址10.154.1.1、10.154.1.2、10.154.1.0(或者记为10.154.1.*)以及10.154.0.0(或者记为10.154.*.*)时,由于10.154.1.0最后一位是掩码,而10.154.0.0最后两位都是掩码,则按照深度优先原则,需要将10.154.1.1和10.154.1.2放在链表的前部,以利于精确匹配。至于10.154.1.1和10.154.1.2的顺序则可随机选择。
可以看出,一个链表中所具有的多个服务器I P地址都对应相同的协议匹配参数和内容匹配参数。
S23、按照一维表的形式组织流行为参数,并为所述服务器IP链表的每一项关联一流行为参数项;
具体的,可以通过为流行为参数行赋予行为索引(behavior index),并通过将该行为索引记录到服务器IP链表项,实现服务器IP链表项与流行为参数项的关联。
S24、为所述服务器IP链表的每一项关联相应结点,比如,可以通过服务ID关联,从而将结点与相应服务的流量属性关联起来。
按照图6所示方式进行流量匹配参数配置的一个具体实施例如图7所示。其中,T1为记录所有流量匹配参数的协议匹配参数和内容匹配参数的二维表;T2按照深度优先的顺序组织服务器IP匹配参数的服务器IP链表,其每一项还关联了服务id、服务统计(g-counter)id以及行为索引;T3中每个表项包括:每秒可信会话数统计值/阀值(t-sessioncounter/limit per-second)、每秒不可信会话数统计值/阀值(u-sessioncounter/limit per-second)、不可信会话数比例/阀值(u-sessioncounter/limit radio)、每秒报文统计值/阀值(packets counter/limitper-second);该表T3中的所有counter值用于实时统计,并由一个定时器执行每秒清零,所有limit值用于与当前counter值进行对比,检查是否超出指定阀值参数。
由图7可以看出,仅仅通过三张表T1、T2和T3,就可以将各个结点分别与相应的流量属性关联起来(通过服务ID),其具体匹配过程将在后续内容中加以描述。
通过步骤S1和步骤S2,构建了一个能够体现基于服务的通用流量模型的服务树。该服务树的规模较小,根结点下仅有十几个或者几十个服务结点,易于配置;该服务树与实际流量无关,具有良好的可移植性,因此可由厂商或者管理员先期定义并下发给实际用户,从而避免对实际接口流量的依赖;该服务树易于扩展,可以在移植后根据实际需要加以添加补充,以实现不同粒度和深度的流量分类。
由于进行网络流量处理需要根据执行策略进行,相应的,本发明也对执行策略的配置加以改进,如步骤S3所描述。
S3、配置执行策略;其中任一执行策略包括多条策略规则,每一策略规则定义了一类服务的处理动作;
较佳的,可以基于不同的情况应用不同的执行策略,以达到细化网络流量控制的目的。例如,执行策略可以为一个或多个,分别适用于不同物理组网下的服务树。
对于每一个执行策略来说,都是基于真实的流量分布于网络管理要求所配置的一组基于服务的策略规则。每一策略规则包括所适用的服务ID和动作集,动作集包括通知、捕获和/或下列动作之一:通过、过滤、隔离、限速。此外,策略规则还可以包括状态记录和/或时间分组。在一个具体的实施例中,一策略规则包括名称、服务ID、状态、动作集和时间分组、状态记录:
1)名称:唯一描述一条策略规则;
2)服务结点标识:比如服务ID,用于描述该策略规则应用于哪个服务结点;
3)时间分组:如果执行策略引用了一个时间表,例如一个时间表包含了多个时间分组,而一个时间分组能够将一周7×24小时分成多个时间段,则该执行策略的策略规则就可以引用其中的任何一个时间分组;一旦时间分组确定,则该规则就可以基于不同时间段定义不同的动作集;
4)动作集(actionset),即针对服务的动作或者动作组合,可以包括:
通过;
过滤(block)或隔离(quarantine)。隔离是一种更高等级的阻断动作,在隔离期间,该用户仅能访问受限地址,或者哪儿都不能访问;在隔离期间,能够为用户发出隔离提示信息,告知用户被隔离的原因;
限速(ratelimit);
捕获,捕获流量的关键信息,为高级网络管理员提供网络分析数据;
通知,能够向远程日志主机、控制台、Email服务器等方向发送通知消息,告知网络管理员当前网络中的关键流量信息;
5)状态记录(State):策略规则的使能或禁止状态,使能标识该规则当前为有效的,否则为无效规则。
请结合表2,为一个执行策略的列表:
策略规则 |
服务ID |
状态记录 |
动作集 |
1 |
VOIP |
使能Enable |
限速 |
2 |
视频会议服务 |
使能Enable |
隔离 |
3 |
即时消息服务 |
使能Enable |
自动过滤 |
表2
在执行策略配置完成后,就可以向下执行步骤S4。
S4、对于接收到的网络流量,根据所述服务树执行匹配,并按照匹配结果调用相应的执行策略加以处理。
其中,请参考图8,根据图7所示流量匹配参数配置执行匹配的一实施例包括以下步骤:
S41-1、对所述网络流量执行DPI深度检测,识别出其报文承载协议和应用层协议特征;通过本步骤可以精确匹配到表T1中的一个表项;
S41-2、对于匹配成功的情况,按照深度优先的顺序进行服务器IP参数的匹配;
即从T1中该表项索引的服务器IP链表T2的链首开始,依次匹配每个服务器IP地址。对于命中的服务器IP地址,在关联有流行为参数项的情况下,进一步执行步骤S41-3,否则执行S41-4。在本实施例中,顺序执行步骤S41-3。
S41-3、对于匹配成功的情况,对其进行流行为参数的匹配;
具体包括,通过行为索引唯一定位到T3的一个表项,刷新对应counter值;如果当前counter值超过limit值,则执行步骤S41-3-Y,否则执行步骤S41-3-N;
S41-3-Y、认为当前流量命中该流量行为,报文返回命中表T3;则表明报文命中对应服务,返回对应的服务ID;
S41-3-N、认为当前流量没有命中该流量行为,报文返回未命中表T3;则报文未命中对应服务,重新进行步骤S41-2,查找下一个链表结点;
S41-4、对于匹配成功的情况,返回对应的服务ID;其中,当不存在匹配成功结点的情况时,即报文没有命中任何链表结点,返回缺省服务ID,即相当于命中根服务结点。
对于匹配后获得的服务ID,需要调用相应的执行策略加以处理,策略执行的基本方法如下:
报文根据物理组网等因素找到对应的执行策略后,以匹配的服务ID找到对应的策略规则,并执行该策略规则;特别是,策略规则的执行方法可以支持服务的嵌套父子关系:
若对一个服务ID定义了规则,则当前服务结点及其子服务结点都执行该规则;
若没有对一个服务ID定义规则,则执行其父服务结点的规则,若父服务结点也没有定义规则,则继续沿服务树向上查找,直到找到一条使能的规则,如果查找到根服务结点,仍未找到使能的规则,则执行缺省操作,比如该服务的流量允许直接通过;
若对一个服务ID定义了规则,但是该规则没有使能,仍执行其父服务结点的规则。
其中,由于每一个服务结点都记录有其父服务ID,因此很容易查找到其父服务结点。
利用上述方法,在定义执行策略时,用户只需对所关心的服务定义策略规则即可,其它隐藏的策略规则都由服务树的父子关系默认决定,可以大大降低管理复杂度,使策略定义与应用更加简单。
请结合图9,在通过服务ID关联匹配规则、策略规则以及服务结点的情况下,一策略执行的实施例包括以下步骤:
S42-1、识别匹配结果即识别返回的服务ID,如果未匹配到则为缺省服务ID,即匹配到根服务结点,执行步骤S42-2,否则执行步骤S42-3;
S42-2、根据缺省服务ID定位其策略规则;对于使能的策略规则,执行其动作集动作;对于禁止的策略规则,执行预设缺省动作;
S42-3、识别当前匹配的服务ID是否配置有一策略规则,是则执行步骤S42-4,否则执行步骤S42-5;
S42-4、查看策略规则是否使能,是则执行步骤S42-4-Y,否则为禁止的策略规则,执行步骤S42-5;
S42-4-Y、执行其动作集动作,并执行步骤S42-5;
S42-5、获取所述匹配结点的父服务ID,并对所述父服务ID重新执行步骤S42-1。
在步骤S4执行完成后,基本完成了对网络流量分类处理的改进。可以看出,通过本发明提供的上述网络流量分类处理方法,从原来的以接口具体流量为模型基于协议对网络流量进行分类和处理,转变为采用全局服务树,基于服务进行网络流量的分类和处理,使对网络流量的控制更加高效、灵活。
较佳的,在分类处理后的服务统计环节,本发明所提供的网络流量分类处理方法也提供了一种改进方案,包括:
在步骤S1中,任一结点还记录有相应的服务统计ID,具体可以通过以下方式实现:系统缺省为每个服务结点分配一个服务统计ID,达到可定制统计的目的,如图7中的服务统计ID。
其中,为了能够按服务类进行网络流量统计,通常一个服务与其子服务结点的服务统计ID相同,例如:Bittorrent服务被分配为Bittorrent服务统计ID,同时其子服务结点Bittorrent-TRACKER、Bittorrent-P2P、Bittorrent-DHP也被分配为这个Bittorrent服务统计ID,这样就能统计所有Bittorrent服务的流量。
当然,为了进行细分统计,可以为子服务结点再单独创建一个新服务统计ID,达到单独统计该服务的目的。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
S1、构建与服务分类结构对应的服务树;
S2、配置流量匹配参数,使所述服务树的任一结点关联相应服务的流量属性;
S3、配置执行策略;其中任一执行策略包括多条策略规则,每一策略规则定义一服务结点的处理动作;
S4、对于接收到的网络流量,执行与流量匹配参数的匹配;以及按照匹配结果,根据服务树结构调用相应的执行策略加以处理;
所述的存储介质包括:ROM/RAM、磁碟或者光盘等。
本发明还提供了网络流量分类处理装置,如图10所示,其一实施例包括:
服务树构建模块100,用于构建与服务分类结构对应的服务树,其中,任一结点可以记录相应的服务ID;其中,所构建服务树的根服务结点记录缺省服务ID;在根服务结点下,上一级子服务结点与其下一级子服务结点分别对应一类服务与其子类服务,且在子服务结点上分别记录相应的服务ID及其父服务ID。
服务树保存模块300,与该服务树构建模块100连接,用于保存该服务树;可以看出,服务树保存模块300所保存的服务树面向服务设置结点,其规模要远小于按照协议配置的情况。
流量匹配参数配置模块200,与该服务树保存模块300连接,用于配置流量匹配参数,使服务树的任一结点关联相应服务的流量属性;该流量属性可以包括协议匹配参数、内容匹配参数、服务器IP参数和/或流行为参数。作为一个实施例,请结合图11,该流量匹配参数配置模块200包括:
协议匹配参数配置单元201,用于配置协议匹配参数;
内容匹配参数配置单元202,用于配置内容匹配参数;
服务器IP参数单元203,用于配置服务器IP参数;
流行为参数单元204,用于配置流行为参数。
在本实施例中,协议匹配参数配置单元201和内容匹配参数配置单元202联合构成二维表;服务器IP参数单元203为按照深度优先的顺序排列的服务器IP链表且每一项关联相应结点的服务ID,由相应的二维表项索引;流行为参数单元204为一维表,其流行为参数项分别与服务器IP链表的每一项关联。
执行策略配置模块400,用于为每一执行策略配置多条策略规则,每一策略规则定义一服务结点的处理动作;特别是,由于执行策略与服务树关联,因此服务树结点的父子关系使降低执行策略配置工作成为可能,亦即,策略规则的执行方法可以支持服务的嵌套父子关系。这样,用户只需对所关心的服务定义策略规则即可,其它隐藏的策略规则都由服务树的父子关系默认决定,可以大大降低管理复杂度,使策略定义与应用更加简单。
执行策略保存模块500,与该执行策略配置模块400连接,用于保存执行策略;需要指出,执行策略保存模块500可以为一个或多个;对于多个执行策略保存模块500的情况,每一个执行策略保存模块500分别保存不同物理组网下的执行策略。
流量匹配执行模块600,与流量匹配参数配置模块200连接,用于对于接收到的网络流量执行与流量匹配参数的匹配;
流量匹配处理模块700,分别与该服务树保存模块300、流量匹配执行模块600和执行策略保存模块500连接,用于按照匹配结果,根据服务树结构调用相应的执行策略加以处理。
较佳的,请结合图11,流量匹配处理模块700可以包括:
匹配结果识别单元701,用于识别流量匹配执行模块600的匹配结果,相应触发缺省服务处理单元702和命中识别单元703;
缺省服务处理单元702,用于对使能的策略规则执行其动作集动作,对禁止的策略规则,执行预设缺省动作;
命中识别单元703,用于识别当前匹配的服务结点是否配置有一策略规则,是则触发匹配服务处理单元704,否则触发向上索引单元705;
匹配服务处理单元704,用于对于使能的策略规则,执行其动作集动作并触发向上索引单元705,对于禁止的策略规则直接触发向上索引单元705;
向上索引单元705,用于获取所述匹配结点的父服务结点,并将其作为匹配结果,触发所述匹配结果识别单元701。
通过上述对流量匹配处理模块700的细化,能够实现以下的策略处理:若对一个服务ID定义了规则,则当前服务结点及其子服务结点都执行该规则;若没有对一个服务ID定义规则,则执行其父服务结点的规则,若父服务结点也没有定义规则,则继续沿服务树向上查找,直到找到一条使能的规则,如果查找到根服务结点,仍未找到使能的规则,则执行缺省操作,比如该服务的流量允许直接通过;若对一个服务ID定义了规则,但是该规则没有使能,仍执行其父服务结点的规则。
特别是,当执行策略涉及时间分组时,流量匹配处理模块700还包括动作集选择单元706,分别与缺省服务处理单元702以及匹配服务处理单元704连接,用于确定相应时间分组的动作集。
通过以上描述的网络流量分类处理装置,从原来的以接口具体流量为模型基于协议对网络流量进行分类和处理,转变为采用全局服务树,基于服务进行网络流量的分类和处理,使对网络流量的控制更加高效、灵活。
较佳的,本发明所提供的网络流量分类处理装置还包括流量统计模块800,与流量匹配执行模块600连接,用于统计流量匹配执行模块600返回的服务统计ID的网络流量。由于用户能够方便的创建基于服务的统计结点,因此能够实现不同粒度和深度的流量统计。
综上所述,最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。