CN105939323A - 数据包过滤方法及装置 - Google Patents

数据包过滤方法及装置 Download PDF

Info

Publication number
CN105939323A
CN105939323A CN201511032058.5A CN201511032058A CN105939323A CN 105939323 A CN105939323 A CN 105939323A CN 201511032058 A CN201511032058 A CN 201511032058A CN 105939323 A CN105939323 A CN 105939323A
Authority
CN
China
Prior art keywords
decision tree
matching
rule
territory
packet filtering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201511032058.5A
Other languages
English (en)
Inventor
袁野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201511032058.5A priority Critical patent/CN105939323A/zh
Publication of CN105939323A publication Critical patent/CN105939323A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种数据包过滤方法及装置,该方法包括:对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;根据所述数据包的分类,对所述数据包进行相应处理。本发明通过使用决策树的方法,对数据包进行过滤,能够有效节省耗时,实现对数据包过滤规则的快速匹配。

Description

数据包过滤方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及一种数据包过滤方法及装置。
背景技术
数据包过滤是一种根据网络封包的源地址、目的地址,端口号及协议类型、标志位等元素确定是否允许分组数据包通过的技术,是防火墙等网络设备需要具备的一项基本功能。
现有技术中,可通过将数据包的相关字段所包含的信息与预先制定的过滤规则进行匹配,根据匹配结果对数据包进行相应处理。但是在大流量的数据采集和分析的应用场景下,需要数据包过滤精确每个IP(Internet Protocol,互联网协议)地址,可能需要配置较多的数据包过滤规则,有时可达到10万条过滤规则,现有技术的数据包过滤方法不能满足这种规模的过滤规则配置。
发明内容
本申请提供数据包过滤方法及装置,以解决现有数据包过滤方法不能满足过滤规则的配置条数多的数据包过滤的问题。
第一方面,提供一种数据包过滤方法,应用于网络设备中,包括:
对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;
根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到过滤规则的匹配标识;
根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
根据所述数据包的分类,对所述数据包进行相应处理。
第二方面,提供一种数据包过滤装置,应用于网络设备上,所述装置包括:
解析单元,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;
查找单元,用于根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到过滤规则的匹配标识;
获取单元,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
处理单元,用于根据所述数据包的分类,对所述数据包进行相应处理。
本申请的网络设备通过使用决策树的方法,对数据包进行相应处理,能够处理大规模的过滤规则的匹配,有效减少时延,节省耗时,实现数据包过滤规则的快速匹配。
附图说明
图1是本申请一种实施例中数据包过滤方法流程图;
图2是本申请一种实施例中决策树的编译方法流程图;
图3是本申请一种实施例中决策树使用二维规则进行编译的示意图;
图4是本申请一种实施例中决策树使用二维规则进行编译的另一示意图;
图5是本申请一种实施例中决策树的编译方法的另一流程图;
图6是本申请一种实施例中数据包过滤装置的所在硬件设备的硬件示意图;
图7是本申请一种实施例中数据包过滤装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现有技术中,对数据包过滤规则进行匹配时,由于数据包过滤精确每个IP地址,可能需要配置较多的数据包过滤规则,有时可达到10万条过滤规则,现有技术不能满足这种规模的过滤规则的匹配,因而设备存在较大的时延,如何快速匹配数据包过滤规则成为数据包过滤的关键。
参见图1,是本申请一种实施例中数据包过滤方法流程图,该方法应用于网络设备,例如防火墙设备上,包括以下步骤:
步骤101:对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息。
本实施例中,网络设备接收到数据包后,可对数据包进行解析得到的五元组信息,而网络设备根据接收数据包的入接口,以及发送端的MAC地址信息等可以获得数据包的出接口,由此可得到对应各匹配域的信息,即七个匹配域的信息,包括:源安全域、目的安全域、源端口、源IP地址、目的IP地址、四层协议和目的端口。
步骤102:根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识。
其中,数据包过滤规则包括匹配条件和动作条件,即匹配域的数据和匹配后要对数据包执行的处理操作。
决策树包括根节点、中间节点和叶节点,其中根节点和中间节点上存储有二分点,即匹配域的信息,而叶节点上存储有数据包过滤规则的匹配标识,其中数据包过滤规则的匹配标识是编译决策树的过程中为每个数据包过滤规则生成的唯一标识信息。
具体地,根据步骤101得到的数据包的七个匹配域的信息,网络设备可先匹配决策树的根节点,即将当前节点初始化为根节点V0,判断当前节点中的V.offest的值是否为0,如果当前节点中的V.offest的值是0,则说明当前节点下面没有其他节点,为叶节点,则可从当前节点获取数据包过滤规则的匹配标识;如果当前节点中的V.offest的值不为0,则获取当前节点的V.field对应域的值,判断当前节点的V.field对应域的值是否小于等于V.point,如果是,则将当前节点对应的空间进行二分后得到的子节点V2更新为当前节点,否则将当前节点对应的空间进行二分后得到的子节点V1更新为当前节点,继续执行判断当前节点中的V.offest的值是否为0的步骤。其中,V.field,V.point,V.offset为节点的数据结构中的三个信息,V.field为数据包过滤规则中的分类,V.point为规则的优先级,V.offset为节点是否为叶节点的标识信息。
步骤103:根据所述数据包过滤规则的匹配标识,获取所述数据包的分类。
根据数据包过滤规则匹配标识,可以得到数据包的分类。
步骤104:根据所述数据包的分类,对所述数据包进行相应处理。
根据数据包的分类,可以对数据包进行的相应处理包括:存储数据包、或者通过出接口转发数据包、或者丢弃数据包等。
结合图1的实施例可知,本申请中的网络设备可基于决策树实现数据包过滤规则得匹配,有效节省耗时,可快速实现数据包过滤规则的匹配。
其中,在步骤102中使用到了决策树,在本实施例中,需要基于数据包过滤规则预先生成决策树。参见图2,是本申请一种实施例中决策树的编译方法流程图,包括以下步骤:
步骤201:对数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各匹配规则在各匹配域上只有一个范围。
其中,对所述数据包过滤规则中的各个匹配域数据进行处理,得到若干个匹配规则,包括:对于所述匹配域数据包括两个或两个以上相交叉的范围时,将有重合的范围合并为一个范围;根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。
具体的,在某一个匹配域包括多个数据或数据范围时,需要根据多个数据之间的关系对这些范围进行处理。对于数据范围,具体而言,当某个匹配域包含的多个数据范围没有重合时,按照数据范围的大小顺序对各个匹配域的数据范围进行排序。某数据包过滤规则中的源IP地址引用多个IP地址对象,或一个IP地址对象中包含例外IP地址而将一个地址范围分为多个范围时,需要按照数据范围的大小进行排序,以便后续获取投影点。例如IP地址1.1.1-1.1.10排在IP地址1.1.12-1.1.20的前面,源端口3排在源端口1的后面。
在某个匹配域包含的多个数据范围存在重合或交叉时,可以将重合或交叉的范围进行结合得到完整的区间范围。例如IP地址1.1.1-1.1.13和IP地址1.1.12-1.1.20存在部分重合,则对两个地址进行结合得到IP地址1.1.1-1.1.20。
从上可以看出,由于每一个匹配域的范围不一定只有一个,因而可以按照每个匹配域所包含的范围的个数进行排列组合,得到若干条匹配规则,每条匹配规则包括匹配域及该匹配域的范围,且每一条匹配规则中的每个域只包含一个连续的区间范围。例如,一条数据包过滤规则包含的五个匹配域中,源IP地址包括2个,源端口包括3个,其他域各自只有1个,那么根据排列组合,最终将该数据包过滤规则拆分和组合为6条匹配规则。
需要说明的是,数据包过滤规则对应一个唯一的匹配标识,根据该匹配标识可获取要对匹配这一过滤规则的数据包要执行的处理操作。
步骤202:判断当前搜索空间是否满足停止拆分条件。
其中,拆分条件为:与所述当前搜索空间相交的匹配规则完全包含所述搜索空间中各个匹配域的最大范围。即,如果当前搜索空间对应的匹配规则完全包含当前搜索空间中各个匹配域的最大范围,则可停止拆分,否则继续拆分。
如果不满足停止拆分条件,则执行步骤203,否则执行步骤205。
步骤203:若不满足停止拆分条件,则从当前搜索空间的匹配域中确定拆分域,在拆分域中确定拆分点;当前搜索空间为满足当前匹配域及匹配条件的所有匹配规则的集合,通过拆分点对拆分域进行拆分。
当决策树只有一个节点时,根节点即叶节点;当决策树上有多于一个节点时,根节点和中间节点上存储的信息均为二分点,即匹配域的信息,而叶节点上存储有数据包过滤规则的匹配标识,其中数据包过滤规则的匹配标识是编译决策树的过程中为每个数据包过滤规则生成的唯一标识信息。
将首先确定的拆分域以及拆分点作为根节点,以该拆分点对拆分域进行拆分。在根节点不符合拆分条件的情况下,从根节点的匹配域中确定拆分域,并从拆分域中确定拆分点。
本实施例中,计算每条匹配规则在各个匹配域上的投影点,统计各个匹配域上的投影点个数,并将投影点个数总数最少的匹配域作为拆分域,也可称之为拆分维度;然后将该拆分域上两侧的投影点个数最接近的点作为二分点,即拆分点。
如图3所示,假设某一数据包过滤规则的七个匹配域拆分组合得到了五条匹配规则:r1、r2、r3、r4和r5,图3示出了该五条匹配规则在七个域的其中两个匹配域上的投影示意图。这里的X和Y表示任意两个匹配域,并以二进制数字表示其单位,当然也可以以其他数字来表示。为了绘制方便,这里仅示出了两个匹配域的示意图做示例,实际应用中,确定拆分域需要计算匹配规则在七个匹配域上的投影点的个数。
确定拆分点时,在拆分域上,以相邻的两个端点构成一个区间,如果共有m个点则构成m-1个区间,在该m-1个区间里计算投影点个数。其中m表示规则集合R中的所有规则r1、r2、r3、r4和r5在第f个域上的投影点构成的投影点的个数,其中1≤f≤d。
例如,在图3中,在X匹配域上,r1的范围是(-∞,1],r2的范围是(-∞,1],r3的范围是(1,2],r4的范围是(2,+∞),r5的范围也是(2,+∞),则该五个匹配规则r1、r2、r3、r4和r5在X匹配域上的投影点为-∞、1、2、+∞。结合图3所示的场景,在X域上,在00-01范围内,有匹配规则r1和r2的两个投影点;在01-10范围内,有匹配规则r1和r2的两个投影点;在10-11范围内,有匹配规则r3和r4的两个投影点;因而在X域上一共有六个投影点。在Y域上,在00-01范围内,有匹配规则r1、r2、r3和r5的四个投影点;在01-10范围内,有匹配规则r2、r3和r5的三个投影点;在10-11范围内,有匹配规则r2、r3和r5的三个投影点;因而在Y域上一共有十个投影点。
根据取小原则公式(1),将X域确定为拆分域。
F = min 1 ≤ F ≤ d 1 m Σ j = 1 m S r [ j ] 式(1)
其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的匹配规则的个数。
式(1)的意思是确定每一维度的Sr的平均值,即平均权重的值,然后再从中选出平均权重值最小的维度。
然后,根据二分点选择方法,基于公式(2),在X域中,端点01两侧的投影点的个数最相近,因而将端点01作为二分拆分点,然后,所选择的拆分域和拆分点构成决策树的根节点。初始搜索空间为七个匹配域中各个匹配域的最大范围的集合,拆分之后,搜索空间为拆分之后的各匹配域的最大范围的集合。
Σ j = 1 i S r [ j ] ≅ Σ j = i + 1 m - 1 S r [ j ] 式(2)
拆分之后,得到两个子空间,也可以称之为子匹配域。例如,对于某一初始搜索空间S,S={[0,232-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]},若第一次确定的拆分域为第1个域,在第1个域上确定的二分拆分点为P,则以点P在第1个域上进行二分后得到两个搜索子空间S 1={[0,P-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]},S2={[P,232-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]}。
在图4所示的实施例中,根节点即(X,01)。表示拆分域为X域,拆分点为01,经过拆分,搜索空间变为S1和S2,在x<01时,确定拆分域为Y,拆分点为00;在x>01时,确定拆分域为X,拆分点为10,并分别在S1和S2上继续拆分。
如果子空间能够继续拆分,则子空间为中间节点,如果不能够继续拆分,则该子空间对应的匹配规则为叶节点,规则集中与子空间相交的规则即为子空间对应的匹配规则。
此外,通过图3可以看出,生成根节点时(X,01),将源规则集(图中圆圈所示)分为两部分,在左侧部分的规则集再拆分时,X域上不需要再拆分,只需要在Y域上拆分,获得拆分点为(Y,00),所以决策树中的中间节点上的匹配域不是固定的。
继续判断拆分得到的两个子空间是否满足拆分条件,是则对满足条件的子空间进行拆分,即确定拆分域和拆分点。在不能够继续拆分时,所得到的叶节点指向与不能继续进行拆分的子空间相交的匹配规则。
步骤204:若是满足停止拆分条件,则对当前搜索空间停止拆分,将与当前搜索空间相交的匹配规则作为叶节点。
结合图2的实施例可知,本申请可通过启发式方法构建没有回溯的二分查找的决策树,本申请中的网络设备可基于该决策树快速实现数据包过滤规则的匹配。
参见图5,是本申请一种实施例中决策树的编译方法的另一流程图:
步骤501:生成匹配规则集合R0、搜索空间S0以及对应的根节点V0,并将其存入R’、S’、V’。
步骤502:将R’、S’和V’送入队列Q,其中,队列Q为先进先出队列。
步骤503:从队列Q中取R’、S’、V’,分别记为R、S、V。
步骤504:判断R中所有匹配规则是否都包含S的最大范围,如果判断为是,则执行步骤512,如果判断为否,则执行步骤505。
步骤505:选择拆分域F,并在拆分域F上按照二分点选择节内启发式算法,选择拆分点P(维度为F)。
步骤506:将S在拆分域F上以拆分点P进行空间划分,得到子空间S1和子空间S2。
步骤507:将R中所有与子空间S1有相交的匹配规则记为R1,将R中所有与子空间S2相交的匹配规则记为R2。
步骤508:生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续,即为V1和V2一起申请内存,进行顺序存储。
步骤509:将V设置为中间节点,并对V进行赋值:V.field=F,V.point=P,V.offset=V1的起始地址。
步骤510:生成新的一组R’、S’和V’,赋值为R1、S1和V1之后送入队列Q。
步骤511:生成新的一组R’、S’和V’,赋值为R2、S2和V2之后送入队列Q,返回执行步骤503。
步骤512:获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:V.field=r.action,V.point=r.pri,V.offset=0;其中,V.field,V.point,V.offset为节点的数据结构中的三个信息,V.field为数据包过滤规则中的分类,V.point为规则的优先级,V.offset为节点是否为叶节点的标识信息。
步骤513:判断当前队列Q是否为空,若是,执行步骤514,若否,返回执行步骤503。
步骤514:返回根节点V0,将其作为数据结构索引的起点。
此外,决策树以及编译结果均存储在策略表中。本实施例中网络设备上具有两个策略表,其中一个策略表中的决策树处于运行状态,另一个策略表中的决策树处于备份状态。当有新的数据包过滤规则下发时,启动决策树的编译,由于数据包过滤规则较多,决策树的编译过程需要花费一定的时间,因而这个时间段内如果接收到报文,则无法使用决策树对数据包进行过滤匹配。这种情况下,该最新的决策树在备份的策略表中进行编译。编译完成之后,将决策树的匹配进程切换到该最新的决策树下,另一个决策树转为备份状态,报文的匹配在该最新的决策树下进行。当再次接收到新的数据包过滤规则时,在处于备份的决策树上进行编译。
其中,编译结果即为编译所得的决策树,策略表中存储有:决策树、动作条件(即为要对数据包执行的处理操作)。
通过上述实施例,通过使用决策树的方法,能够有效减少时延,节省耗时,实现对数据包过滤规则的快速匹配。
参见图6,是本申请一种实施例中数据包过滤装置的所在硬件设备的硬件示意图。
本申请数据包过滤装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请网络地址转换规则的报文转换装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可以包括其他硬件,对此不再赘述。
参见图7,是本申请一种实施例中数据包过滤装置示意图,该装置可以包括网络设备,用于实现图1所示实施例的方法,该装置可以包括:解析单元710、查找单元720、获取单元730和处理单元740。
解析单元710,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;
查找单元720,用于根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;
获取单元730,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
处理单元740,用于根据所述数据包的分类,对所述数据包进行相应处理。
可选的,所述装置还包括:编译单元750(图7中未示出),用于编译所述决策树;所述编译单元包括:处理子单元751,用于对所述数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各所述匹配规则在各匹配域上只有一个范围;判断子单元752,用于判断当前搜索空间是否满足停止拆分条件;拆分子单元753,用于若不满足停止拆分条件,则从所述当前搜索空间的所述匹配域中确定拆分域,在所述拆分域中确定拆分点;所述当前搜索空间为满足当前匹配域及匹配条件的所有匹配规则的集合,通过所述拆分点对所述拆分域进行拆分;停止拆分子单元754,用于若满足停止拆分条件,则对所述当前搜索空间停止拆分,将与所述当前搜索空间相交的匹配规则作为叶节点。其中,所述拆分条件为:与所述当前搜索空间相交的匹配规则完全包含所述搜索空间中各个匹配域的最大范围。
所述处理子单元751包括:合并模块,用于对于所述匹配域数据包括两个或两个以上相交叉的范围时,将有重合的范围合并为一个范围;组合模块,用于根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。
所述拆分子单元753用于,基于式(1)确定所述拆分域:
F = min 1 &le; F &le; d 1 m &Sigma; j = 1 m S r &lsqb; j &rsqb; 式(1)
其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的匹配规则的个数。
所述拆分子单元用于,基于式(2)从所述拆分域中确定拆分点:
&Sigma; j = 1 i S r &lsqb; j &rsqb; &cong; &Sigma; j = i + 1 m - 1 S r &lsqb; j &rsqb; 式(2)
其中,Sr[j]表示位于第j个投影区间的匹配规则的个数。
可选的,所述决策树包括两个决策树,一个所述决策树处于运行状态,另一个所述决策树处于备份状态;
所述装置还包括:覆盖单元760(图7中未示出),用于当所述数据包过滤规则有变化时,基于新的数据包过滤规则编译决策树并覆盖处于备份状态的所述决策树;切换单元770(图7中未示出),用于当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作为正在运行的决策树,将原处于运行状态的决策树停止运行,进入备份状态。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种数据包过滤方法,应用于网络设备上,其特征在于,所述方法包括:
对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;
根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;
根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
根据所述数据包的分类,对所述数据包进行相应处理。
2.根据权利要求1所述的方法,其特征在于,所述决策树通过以下步骤编译得到:
对所述数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各所述匹配规则在各匹配域上只有一个范围;
判断当前搜索空间是否满足停止拆分条件,若不满足停止拆分条件,则从所述当前搜索空间的所述匹配域中确定拆分域,在所述拆分域中确定拆分点;所述当前搜索空间为满足当前匹配域及匹配条件的所有匹配规则的集合;
通过所述拆分点对所述拆分域进行拆分;
若满足停止拆分条件,则对所述当前搜索空间停止拆分,将与所述当前搜索空间相交的匹配规则作为叶节点;
其中,所述拆分条件为:与所述当前搜索空间相交的匹配规则完全包含所述搜索空间中各个匹配域的最大范围。
3.根据权利要求2所述的方法,其特征在于,所述对所述数据包过滤规则中的各个匹配域数据进行处理,得到若干个匹配规则,包括:
对于所述匹配域数据包括两个或两个以上相交叉的范围时,将有重合的范围合并为一个范围;
根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。
4.根据权利要求2所述的方法,其特征在于,所述从所述匹配域中确定拆分域,包括:
基于式(1)确定所述拆分域:
F = min 1 &le; F &le; d 1 m &Sigma; j = 1 m S r &lsqb; j &rsqb; 式(1)
其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的匹配规则的个数。
5.根据权利要求2所述的方法,其特征在于,所述从所述拆分域中确定拆分点,包括:
基于式(2)从所述拆分域中确定拆分点:
&Sigma; j = 1 i S r &lsqb; j &rsqb; &cong; &Sigma; j = i + 1 m - 1 S r &lsqb; j &rsqb; 式(2)
其中,Sr[j]表示位于第j个投影区间的匹配规则的个数。
6.根据权利要求1所述的方法,其特征在于,所述决策树包括两个决策树,一个所述决策树处于运行状态,另一个所述决策树处于备份状态;
所述方法还包括:
当所述数据包过滤规则有变化时,基于新的数据包过滤规则编译决策树并覆盖处于备份状态的所述决策树;
当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作为正在运行的决策树,将原处于运行状态的决策树停止运行,进入备份状态。
7.一种数据包过滤装置,应用于网络设备上,其特征在于,所述装置包括:
解析单元,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;
查找单元,用于根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;
获取单元,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
处理单元,用于根据所述数据包的分类,对所述数据包进行相应处理。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括编译单元,用于编译所述决策树;
所述编译单元包括:
处理子单元,用于对所述数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各所述匹配规则在各匹配域上只有一个范围;
判断子单元,用于判断当前搜索空间是否满足停止拆分条件;
拆分子单元,用于若不满足停止拆分条件,则从所述当前搜索空间的所述匹配域中确定拆分域,在所述拆分域中确定拆分点;所述当前搜索空间为满足当前匹配域及匹配条件的所有匹配规则的集合,通过所述拆分点对所述拆分域进行拆分;
停止拆分子单元,用于若满足停止拆分条件,则对所述当前搜索空间停止拆分,将与所述当前搜索空间相交的匹配规则作为叶节点;
其中,所述拆分条件为:与所述当前搜索空间相交的匹配规则完全包含所述搜索空间中各个匹配域的最大范围。
9.根据权利要求8所述的装置,其特征在于,所述处理子单元包括:
合并模块,用于对于所述匹配域数据包括两个或两个以上相交叉的范围时,将有重合的范围合并为一个范围;
组合模块,用于根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。
10.根据权利要求8所述的装置,其特征在于,所述拆分子单元用于:
基于式(1)确定所述拆分域:
F = min 1 &le; F &le; d 1 m &Sigma; j = 1 m S r &lsqb; j &rsqb; 式(1)
其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的匹配规则的个数。
11.根据权利要求8所述的装置,其特征在于,所述拆分子单元用于:
基于式(2)从所述拆分域中确定拆分点:
&Sigma; j = 1 i S r &lsqb; j &rsqb; &cong; &Sigma; j = i + 1 m - 1 S r &lsqb; j &rsqb; 式(2)
其中,Sr[j]表示位于第j个投影区间的匹配规则的个数。
12.根据权利要求7所述的装置,其特征在于,所述决策树包括两个决策树,一个所述决策树处于运行状态,另一个所述决策树处于备份状态;
所述装置还包括:
覆盖单元,用于当所述数据包过滤规则有变化时,基于新的数据包过滤规则编译决策树并覆盖处于备份状态的所述决策树;
切换单元,用于当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作为正在运行的决策树,将原处于运行状态的决策树停止运行,进入备份状态。
CN201511032058.5A 2015-12-31 2015-12-31 数据包过滤方法及装置 Pending CN105939323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511032058.5A CN105939323A (zh) 2015-12-31 2015-12-31 数据包过滤方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511032058.5A CN105939323A (zh) 2015-12-31 2015-12-31 数据包过滤方法及装置

Publications (1)

Publication Number Publication Date
CN105939323A true CN105939323A (zh) 2016-09-14

Family

ID=57153105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511032058.5A Pending CN105939323A (zh) 2015-12-31 2015-12-31 数据包过滤方法及装置

Country Status (1)

Country Link
CN (1) CN105939323A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657161A (zh) * 2017-02-28 2017-05-10 杭州迪普科技股份有限公司 数据包过滤的实现方法和装置
CN107688613A (zh) * 2017-08-03 2018-02-13 北京蓝海讯通科技股份有限公司 一种数据包的处理规则优化方法及计算设备
CN108965337A (zh) * 2018-09-17 2018-12-07 新华三信息安全技术有限公司 规则匹配方法、装置、防火墙设备及机器可读存储介质
CN109639743A (zh) * 2018-12-13 2019-04-16 成都亚信网络安全产业技术研究院有限公司 一种防火墙策略检测方法及设备
WO2019183962A1 (zh) * 2018-03-30 2019-10-03 北京大学深圳研究生院 一种基于等长度和等密度切割的网络数据包分类的方法
CN110909256A (zh) * 2019-11-20 2020-03-24 华育昌(肇庆)智能科技研究有限公司 计算机用的人工智能信息过滤系统
CN112685611A (zh) * 2020-12-31 2021-04-20 恒安嘉新(北京)科技股份公司 一种数据过滤方法、装置、存储介质及电子设备
CN116132187A (zh) * 2023-02-23 2023-05-16 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN118400200A (zh) * 2024-06-27 2024-07-26 杭州迪普科技股份有限公司 一种安全策略的编译、集中管控、转发并行方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224579A1 (en) * 2005-03-31 2006-10-05 Microsoft Corporation Data mining techniques for improving search engine relevance
CN101022407A (zh) * 2007-03-13 2007-08-22 中兴通讯股份有限公司 一种基于二叉树的流分类查找方法
CN102148709A (zh) * 2011-02-25 2011-08-10 中兴通讯股份有限公司 一种实现主备单板升级的方法及装置
CN102255788A (zh) * 2010-05-19 2011-11-23 北京启明星辰信息技术股份有限公司 报文分类决策构建系统及方法、报文分类系统及方法
CN102281196A (zh) * 2011-08-11 2011-12-14 中兴通讯股份有限公司 决策树生成方法及设备、基于决策树报文分类方法及设备
CN103841112A (zh) * 2014-03-18 2014-06-04 杭州华三通信技术有限公司 基于网包分类的分类规则处理方法及装置、匹配装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224579A1 (en) * 2005-03-31 2006-10-05 Microsoft Corporation Data mining techniques for improving search engine relevance
CN101022407A (zh) * 2007-03-13 2007-08-22 中兴通讯股份有限公司 一种基于二叉树的流分类查找方法
CN102255788A (zh) * 2010-05-19 2011-11-23 北京启明星辰信息技术股份有限公司 报文分类决策构建系统及方法、报文分类系统及方法
CN102148709A (zh) * 2011-02-25 2011-08-10 中兴通讯股份有限公司 一种实现主备单板升级的方法及装置
CN102281196A (zh) * 2011-08-11 2011-12-14 中兴通讯股份有限公司 决策树生成方法及设备、基于决策树报文分类方法及设备
CN103841112A (zh) * 2014-03-18 2014-06-04 杭州华三通信技术有限公司 基于网包分类的分类规则处理方法及装置、匹配装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李军: "《高性能网包分类理论与算法综述》", 《计算机学报》 *
韩伟涛、伊鹏等: "《一种基于几何区域分割的网包分类算法》", 《计算机应用研究》 *
马腾、陈庶樵等: "《改进的HyperSplit报文分类算法》", 《计算机工程》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657161B (zh) * 2017-02-28 2020-10-09 杭州迪普科技股份有限公司 数据包过滤的实现方法和装置
CN106657161A (zh) * 2017-02-28 2017-05-10 杭州迪普科技股份有限公司 数据包过滤的实现方法和装置
CN107688613A (zh) * 2017-08-03 2018-02-13 北京蓝海讯通科技股份有限公司 一种数据包的处理规则优化方法及计算设备
CN107688613B (zh) * 2017-08-03 2021-03-16 北京蓝海讯通科技股份有限公司 一种数据包的处理规则优化方法及计算设备
WO2019183962A1 (zh) * 2018-03-30 2019-10-03 北京大学深圳研究生院 一种基于等长度和等密度切割的网络数据包分类的方法
CN108965337A (zh) * 2018-09-17 2018-12-07 新华三信息安全技术有限公司 规则匹配方法、装置、防火墙设备及机器可读存储介质
CN109639743A (zh) * 2018-12-13 2019-04-16 成都亚信网络安全产业技术研究院有限公司 一种防火墙策略检测方法及设备
CN110909256A (zh) * 2019-11-20 2020-03-24 华育昌(肇庆)智能科技研究有限公司 计算机用的人工智能信息过滤系统
CN112685611A (zh) * 2020-12-31 2021-04-20 恒安嘉新(北京)科技股份公司 一种数据过滤方法、装置、存储介质及电子设备
CN116132187A (zh) * 2023-02-23 2023-05-16 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN116132187B (zh) * 2023-02-23 2024-05-14 北京京航计算通讯研究所 一种数据包过滤方法及系统
CN118400200A (zh) * 2024-06-27 2024-07-26 杭州迪普科技股份有限公司 一种安全策略的编译、集中管控、转发并行方法及装置
CN118400200B (zh) * 2024-06-27 2024-08-23 杭州迪普科技股份有限公司 一种安全策略的编译、集中管控、转发并行方法及装置

Similar Documents

Publication Publication Date Title
CN105939323A (zh) 数据包过滤方法及装置
CN105939269A (zh) 基于网络地址转换规则的报文转换方法及装置
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
Hegeman et al. Toward optimal bounds in the congested clique: Graph connectivity and MST
CN105554065B (zh) 处理报文的方法、转换单元和应用单元
US6359886B1 (en) Method and apparatus for filtering and routing communications frames
CN103339887B (zh) 用于优化网络前缀列表搜索的方法
CN109952746A (zh) 在业务链网络环境中集成物理和虚拟网络功能
US20090097418A1 (en) System and method for network service path analysis
CN105989539A (zh) 一种金融交易行情获取系统以及获取方法
Cidon et al. New models and algorithms for future networks
CN105939284A (zh) 报文控制策略的匹配方法及装置
US10263852B2 (en) Network data model mapping based on matching strength
Bartolozzi et al. ns-3 RPL module: IPv6 routing protocol for low power and lossy networks
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN109639451A (zh) 端口配置方法、装置、存储介质及电子装置
Lopes et al. Network verification in the light of program verification
CN101242409B (zh) 一种多语言的网络数据包高效过滤的方法
CN104205745B (zh) 报文处理的方法与设备
CN102420797A (zh) 一种拓扑映射方法及系统
Foerster et al. Does preprocessing help under congestion?
Bifulco et al. OpenFlow rules interactions: definition and detection
CN112667640A (zh) 一种路由地址存储方法及装置
US8040882B2 (en) Efficient key sequencer
Ghassemi et al. Model checking mobile ad hoc networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant after: Hangzhou Dipu Polytron Technologies Inc

Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant before: Hangzhou Dipu Technology Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160914