数据包过滤方法及装置的制造方法

文档序号:10578125阅读:214来源:国知局
数据包过滤方法及装置的制造方法
【专利摘要】本发明提供一种数据包过滤方法及装置,该方法包括:对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;根据所述数据包的分类,对所述数据包进行相应处理。本发明通过使用决策树的方法,对数据包进行过滤,能够有效节省耗时,实现对数据包过滤规则的快速匹配。
【专利说明】
数据包过滤方法及装置
技术领域
[0001 ]本申请设及网络通信技术领域,尤其设及一种数据包过滤方法及装置。
【背景技术】
[0002] 数据包过滤是一种根据网络封包的源地址、目的地址,端口号及协议类型、标志位 等元素确定是否允许分组数据包通过的技术,是防火墙等网络设备需要具备的一项基本功 能。
[0003] 现有技术中,可通过将数据包的相关字段所包含的信息与预先制定的过滤规则进 行匹配,根据匹配结果对数据包进行相应处理。但是在大流量的数据采集和分析的应用场 景下,需要数据包过滤精确每个IP( Internet Protocol,互联网协议)地址,可能需要配置 较多的数据包过滤规则,有时可达到10万条过滤规则,现有技术的数据包过滤方法不能满 足运种规模的过滤规则配置。

【发明内容】

[0004] 本申请提供数据包过滤方法及装置,W解决现有数据包过滤方法不能满足过滤规 则的配置条数多的数据包过滤的问题。
[0005] 第一方面,提供一种数据包过滤方法,应用于网络设备中,包括:
[0006] 对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得 到所述数据包的屯个匹配域的信息;
[0007] 根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策 树,得到过滤规则的匹配标识;
[000引根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
[0009] 根据所述数据包的分类,对所述数据包进行相应处理。
[0010] 第二方面,提供一种数据包过滤装置,应用于网络设备上,所述装置包括:
[0011] 解析单元,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数据 包的入接口,得到所述数据包的屯个匹配域的信息;
[0012] 查找单元,用于根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编译 的最新的决策树,得到过滤规则的匹配标识;
[0013] 获取单元,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;
[0014] 处理单元,用于根据所述数据包的分类,对所述数据包进行相应处理。
[0015] 本申请的网络设备通过使用决策树的方法,对数据包进行相应处理,能够处理大 规模的过滤规则的匹配,有效减少时延,节省耗时,实现数据包过滤规则的快速匹配。
【附图说明】
[0016] 图1是本申请一种实施例中数据包过滤方法流程图;
[0017] 图2是本申请一种实施例中决策树的编译方法流程图;
[0018] 图3是本申请一种实施例中决策树使用二维规则进行编译的示意图;
[0019] 图4是本申请一种实施例中决策树使用二维规则进行编译的另一示意图;
[0020] 图5是本申请一种实施例中决策树的编译方法的另一流程图;
[0021] 图6是本申请一种实施例中数据包过滤装置的所在硬件设备的硬件示意图;
[0022] 图7是本申请一种实施例中数据包过滤装置示意图。
【具体实施方式】
[0023] 运里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述设及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。W下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0024] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。 在本申请和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多数 形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指并包 含一个或多个相关联的列出项目的任何或所有可能组合。
[0025] 应当理解,尽管在本申请可能采用术语第一、第二、第=等来描述各种信息,但运 些信息不应限于运些术语。运些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本申请范围的情况下,第一信息也可W被称为第二信息,类似地,第二信息也可W被称为第 一信息。取决于语境,如在此所使用的词语"如果"可W被解释成为"在……时"或"当…… 时"或"响应于确定"。
[0026] 现有技术中,对数据包过滤规则进行匹配时,由于数据包过滤精确每个IP地址,可 能需要配置较多的数据包过滤规则,有时可达到10万条过滤规则,现有技术不能满足运种 规模的过滤规则的匹配,因而设备存在较大的时延,如何快速匹配数据包过滤规则成为数 据包过滤的关键。
[0027] 参见图1,是本申请一种实施例中数据包过滤方法流程图,该方法应用于网络设 备,例如防火墙设备上,包括W下步骤:
[0028] 步骤101:对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入 接口,得到所述数据包的屯个匹配域的信息。
[0029] 本实施例中,网络设备接收到数据包后,可对数据包进行解析得到的五元组信息, 而网络设备根据接收数据包的入接口,W及发送端的MAC地址信息等可W获得数据包的出 接口,由此可得到对应各匹配域的信息,即屯个匹配域的信息,包括:源安全域、目的安全 域、源端口、源IP地址、目的IP地址、四层协议和目的端口。
[0030] 步骤102:根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编译的最新 的决策树,得到所述数据包过滤规则的匹配标识。
[0031] 其中,数据包过滤规则包括匹配条件和动作条件,即匹配域的数据和匹配后要对 数据包执行的处理操作。
[0032] 决策树包括根节点、中间节点和叶节点,其中根节点和中间节点上存储有二分点, 即匹配域的信息,而叶节点上存储有数据包过滤规则的匹配标识,其中数据包过滤规则的 匹配标识是编译决策树的过程中为每个数据包过滤规则生成的唯一标识信息。
[0033] 具体地,根据步骤101得到的数据包的屯个匹配域的信息,网络设备可先匹配决策 树的根节点,即将当前节点初始化为根节点V0,判断当前节点中的V.Offest的值是否为0, 如果当前节点中的V.Offest的值是0,则说明当前节点下面没有其他节点,为叶节点,则可 从当前节点获取数据包过滤规则的匹配标识;如果当前节点中的V.Offest的值不为0,则获 取当前节点的V. field对应域的值,判断当前节点的V. field对应域的值是否小于等于 V.point,如果是,则将当前节点对应的空间进行二分后得到的子节点V2更新为当前节点, 否则将当前节点对应的空间进行二分后得到的子节点Vl更新为当前节点,继续执行判断当 前节点中的V. Offest的值是否为0的步骤。其中,V. field,V. point,V. off set为节点的数据 结构中的S个信息,V . f i e I d为数据包过滤规则中的分类,V . P 0 i n t为规则的优先级, V. 0 f f S e t为节点是否为叶节点的标识信息。
[0034] 步骤103:根据所述数据包过滤规则的匹配标识,获取所述数据包的分类。
[0035] 根据数据包过滤规则匹配标识,可W得到数据包的分类。
[0036] 步骤104:根据所述数据包的分类,对所述数据包进行相应处理。
[0037] 根据数据包的分类,可W对数据包进行的相应处理包括:存储数据包、或者通过出 接口转发数据包、或者丢弃数据包等。
[0038] 结合图1的实施例可知,本申请中的网络设备可基于决策树实现数据包过滤规则 得匹配,有效节省耗时,可快速实现数据包过滤规则的匹配。
[0039] 其中,在步骤102中使用到了决策树,在本实施例中,需要基于数据包过滤规则预 先生成决策树。参见图2,是本申请一种实施例中决策树的编译方法流程图,包括W下步骤:
[0040] 步骤201:对数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规 贝1J,各匹配规则在各匹配域上只有一个范围。
[0041] 其中,对所述数据包过滤规则中的各个匹配域数据进行处理,得到若干个匹配规 贝1J,包括:对于所述匹配域数据包括两个或两个W上相交叉的范围时,将有重合的范围合并 为一个范围;根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。
[0042] 具体的,在某一个匹配域包括多个数据或数据范围时,需要根据多个数据之间的 关系对运些范围进行处理。对于数据范围,具体而言,当某个匹配域包含的多个数据范围没 有重合时,按照数据范围的大小顺序对各个匹配域的数据范围进行排序。某数据包过滤规 则中的源IP地址引用多个IP地址对象,或一个IP地址对象中包含例外IP地址而将一个地址 范围分为多个范围时,需要按照数据范围的大小进行排序,W便后续获取投影点。例如IP地 址1.1.1-1.1.10排在IP地址1.1.12-1.1.20的前面,源端口 3排在源端口 1的后面。
[0043] 在某个匹配域包含的多个数据范围存在重合或交叉时,可W将重合或交叉的范围 进行结合得到完整的区间范围。例如IP地址1.1.1-1.1.13和IP地址1.1.12-1.1.20存在部 分重合,则对两个地址进行结合得到IP地址1.1.1-1.1.20。
[0044] 从上可W看出,由于每一个匹配域的范围不一定只有一个,因而可W按照每个匹 配域所包含的范围的个数进行排列组合,得到若干条匹配规则,每条匹配规则包括匹配域 及该匹配域的范围,且每一条匹配规则中的每个域只包含一个连续的区间范围。例如,一条 数据包过滤规则包含的五个匹配域中,源IP地址包括2个,源端口包括3个,其他域各自只有 1个,那么根据排列组合,最终将该数据包过滤规则拆分和组合为6条匹配规则。
[0045] 需要说明的是,数据包过滤规则对应一个唯一的匹配标识,根据该匹配标识可获 取要对匹配运一过滤规则的数据包要执行的处理操作。
[0046] 步骤202:判断当前捜索空间是否满足停止拆分条件。
[0047] 其中,拆分条件为:与所述当前捜索空间相交的匹配规则完全包含所述捜索空间 中各个匹配域的最大范围。即,如果当前捜索空间对应的匹配规则完全包含当前捜索空间 中各个匹配域的最大范围,则可停止拆分,否则继续拆分。
[0048] 如果不满足停止拆分条件,则执行步骤203,否则执行步骤205。
[0049] 步骤203:若不满足停止拆分条件,则从当前捜索空间的匹配域中确定拆分域,在 拆分域中确定拆分点;当前捜索空间为满足当前匹配域及匹配条件的所有匹配规则的集 合,通过拆分点对拆分域进行拆分。
[0050] 当决策树只有一个节点时,根节点即叶节点;当决策树上有多于一个节点时,根节 点和中间节点上存储的信息均为二分点,即匹配域的信息,而叶节点上存储有数据包过滤 规则的匹配标识,其中数据包过滤规则的匹配标识是编译决策树的过程中为每个数据包过 滤规则生成的唯一标识信息。
[0051] 将首先确定的拆分域W及拆分点作为根节点,W该拆分点对拆分域进行拆分。在 根节点不符合拆分条件的情况下,从根节点的匹配域中确定拆分域,并从拆分域中确定拆 分点。
[0052] 本实施例中,计算每条匹配规则在各个匹配域上的投影点,统计各个匹配域上的 投影点个数,并将投影点个数总数最少的匹配域作为拆分域,也可称之为拆分维度;然后将 该拆分域上两侧的投影点个数最接近的点作为二分点,即拆分点。
[0053] 如图3所示,假设某一数据包过滤规则的屯个匹配域拆分组合得到了五条匹配规 则:"^2^3^4和巧,图3示出了该五条匹配规则在屯个域的其中两个匹配域上的投影示 意图。运里的X和Y表示任意两个匹配域,并W二进制数字表示其单位,当然也可W W其他数 字来表示。为了绘制方便,运里仅示出了两个匹配域的示意图做示例,实际应用中,确定拆 分域需要计算匹配规则在屯个匹配域上的投影点的个数。
[0054] 确定拆分点时,在拆分域上,W相邻的两个端点构成一个区间,如果共有m个点则 构成m-1个区间,在该m-1个区间里计算投影点个数。其中m表示规则集合R中的所有规则rl、 r2、r3、r4和巧在第f个域上的投影点构成的投影点的个数,其中1含f < d。
[0化5] 例如,在图3中,在X匹配域上,rl的范围是(-〇〇,1],r2的范围是(-〇〇,1],r3的范围 是(l,2],r4的范围是(2,+w),巧的范围也是(2,+w),则该五个匹配规贝iJrl、r2、r3、r^P^ 在X匹配域上的投影点为-w、i、2、+w。结合图3所示的场景,在X域上,在OO-Ol范围内,有匹 配规则rl和r2的两个投影点;在01-10范围内,有匹配规则rl和r2的两个投影点;在10-11范 围内,有匹配规则r3和r4的两个投影点;因而在X域上一共有六个投影点。在Y域上,在OO-Ol 范围内,有匹配规则rl、r2、r3和巧的四个投影点;在01-10范围内,有匹配规则r2、r3和巧的 S个投影点;在10-11范围内,有匹配规则r2、r3和巧的S个投影点;因而在Y域上一共有十 个投影点。
[0056] 根据取小原则公式(1),将X域确定为拆分域。
[0057]
式(1)
[0058] 其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区 间的匹配规则的个数。
[0059] 式(1)的意思是确定每一维度的Sr的平均值,即平均权重的值,然后再从中选出平 均权重值最小的维度。
[0060] 然后,根据二分点选择方法,基于公式(2),在X域中,端点Ol两侧的投影点的个数 最相近,因而将端点Ol作为二分拆分点,然后,所选择的拆分域和拆分点构成决策树的根节 点。初始捜索空间为屯个匹配域中各个匹配域的最大范围的集合,拆分之后,捜索空间为拆 分之后的各匹配域的最大范围的集合。
[0061]
式(2)
[0062] 拆分之后,得到两个子空间,也可W称之为子匹配域。例如,对于某一初始捜索空 间S,S= {[0,232-1],[0,232-1],[0,216-1 ],[0,216-1 ],[0,28-1 ]},若第一次确定的拆分 域为第1个域,在第1个域上确定的二分拆分点为P,则W点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]}。
[0063] 在图4所示的实施例中,根节点即(X,01)。表示拆分域为X域,拆分点为01,经过拆 分,捜索空间变为Sl和S2,在x<01时,确定拆分域为Y,拆分点为00;在x〉01时,确定拆分域为 X,拆分点为10,并分别在Sl和S2上继续拆分。
[0064] 如果子空间能够继续拆分,则子空间为中间节点,如果不能够继续拆分,则该子空 间对应的匹配规则为叶节点,规则集中与子空间相交的规则即为子空间对应的匹配规则。
[0065] 此外,通过图3可W看出,生成根节点时(X,01),将源规则集(图中圆圈所示)分为 两部分,在左侧部分的规则集再拆分时,X域上不需要再拆分,只需要在Y域上拆分,获得拆 分点为(Y,00),所W决策树中的中间节点上的匹配域不是固定的。
[0066] 继续判断拆分得到的两个子空间是否满足拆分条件,是则对满足条件的子空间进 行拆分,即确定拆分域和拆分点。在不能够继续拆分时,所得到的叶节点指向与不能继续进 行拆分的子空间相交的匹配规则。
[0067] 步骤204:若是满足停止拆分条件,则对当前捜索空间停止拆分,将与当前捜索空 间相交的匹配规则作为叶节点。
[0068] 结合图2的实施例可知,本申请可通过启发式方法构建没有回溯的二分查找的决 策树,本申请中的网络设备可基于该决策树快速实现数据包过滤规则的匹配。
[0069] 参见图5,是本申请一种实施例中决策树的编译方法的另一流程图:
[0070] 步骤501:生成匹配规则集合RO、捜索空间SO W及对应的根节点VO,并将其存入R'、 S'、V'。
[0071] 步骤502:将R'、S'和V'送入队列Q,其中,队列Q为先进先出队列。
[0072] 步骤503:从队列Q中取R'、S'、V',分别记为R、S、V。
[0073] 步骤504:判断R中所有匹配规则是否都包含S的最大范围,如果判断为是,则执行 步骤512,如果判断为否,则执行步骤505。
[0074] 步骤505:选择拆分域F,并在拆分域F上按照二分点选择节内启发式算法,选择拆 分点P(维度为巧。
[0075] 步骤506:将S在拆分域F上W拆分点P进行空间划分,得到子空间Sl和子空间S2。
[0076] 步骤507:将R中所有与子空间SI有相交的匹配规则记为Rl,将R中所有与子空间S2 相交的匹配规则记为R2。
[0077] 步骤508:生成与Rl、S1对应的子节点VI,及与R2、S2对应的子节点V2,并使得Vl和 V2的存储地址空间连续,即为Vl和V2-起申请内存,进行顺序存储。
[007引步骤509:将V设置为中间节点,并对V进行赋值:V. field = F, V. point = P, V-Offset = Vl的起始地址。
[00巧]步骤510:生成新的一组R'、S'和V',赋值为31、別和¥1之后送入队列Q。
[0080] 步骤511:生成新的一组R'、S'和V',赋值为R2、S2和V2之后送入队列Q,返回执行步 骤503。
[0081] 步骤512:获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据 结构:V.field = r.action,V. PO int = r.pri,V.Offset = O;其中,V.field,V. point, V. of f set为节点的数据结构中的S个信息,V. f i e Id为数据包过滤规则中的分类,V. PO int 为规则的优先级,V.offset为节点是否为叶节点的标识信息。
[0082] 步骤513:判断当前队列Q是否为空,若是,执行步骤514,若否,返回执行步骤503。
[0083] 步骤514:返回根节点V0,将其作为数据结构索引的起点。
[0084] 此外,决策树W及编译结果均存储在策略表中。本实施例中网络设备上具有两个 策略表,其中一个策略表中的决策树处于运行状态,另一个策略表中的决策树处于备份状 态。当有新的数据包过滤规则下发时,启动决策树的编译,由于数据包过滤规则较多,决策 树的编译过程需要花费一定的时间,因而运个时间段内如果接收到报文,则无法使用决策 树对数据包进行过滤匹配。运种情况下,该最新的决策树在备份的策略表中进行编译。编译 完成之后,将决策树的匹配进程切换到该最新的决策树下,另一个决策树转为备份状态,报 文的匹配在该最新的决策树下进行。当再次接收到新的数据包过滤规则时,在处于备份的 决策树上进行编译。
[0085] 其中,编译结果即为编译所得的决策树,策略表中存储有:决策树、动作条件(即为 要对数据包执行的处理操作)。
[0086] 通过上述实施例,通过使用决策树的方法,能够有效减少时延,节省耗时,实现对 数据包过滤规则的快速匹配。
[0087] 参见图6,是本申请一种实施例中数据包过滤装置的所在硬件设备的硬件示意图。
[0088] 本申请数据包过滤装置的实施例可W应用在网络设备上。装置实施例可W通过软 件实现,也可W通过硬件或者软硬件结合的方式实现。W软件实现为例,作为一个逻辑意义 上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到 内存中运行形成的。从硬件层面而言,如图6所示,为本申请网络地址转换规则的报文转换 装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、W及非易失性存 储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可W包括其他硬件,对 此不再寶述。
[0089] 参见图7,是本申请一种实施例中数据包过滤装置示意图,该装置可W包括网络设 备,用于实现图1所示实施例的方法,该装置可W包括:解析单元710、查找单元720、获取单 元730和处理单元740。
[0090] 解析单元710,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数 据包的入接口,得到所述数据包的屯个匹配域的信息;
[0091 ]查找单元720,用于根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编 译的最新的决策树,得到所述数据包过滤规则的匹配标识;
[0092] 获取单元730,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分 类;
[0093] 处理单元740,用于根据所述数据包的分类,对所述数据包进行相应处理。
[0094] 可选的,所述装置还包括:编译单元750(图7中未示出),用于编译所述决策树;所 述编译单元包括:处理子单元751,用于对所述数据包过滤规则中的各个匹配域的数据进行 处理,得到若干个匹配规则,各所述匹配规则在各匹配域上只有一个范围;判断子单元752, 用于判断当前捜索空间是否满足停止拆分条件;拆分子单元753,用于若不满足停止拆分条 件,则从所述当前捜索空间的所述匹配域中确定拆分域,在所述拆分域中确定拆分点;所述 当前捜索空间为满足当前匹配域及匹配条件的所有匹配规则的集合,通过所述拆分点对所 述拆分域进行拆分;停止拆分子单元754,用于若满足停止拆分条件,则对所述当前捜索空 间停止拆分,将与所述当前捜索空间相交的匹配规则作为叶节点。其中,所述拆分条件为: 与所述当前捜索空间相交的匹配规则完全包含所述捜索空间中各个匹配域的最大范围。 [00M]所述处理子单元751包括:合并模块,用于对于所述匹配域数据包括两个或两个W 上相交叉的范围时,将有重合的范围合并为一个范围;组合模块,用于根据各个所述匹配域 所包含的范围个数进行排列组合,得到若干个匹配规则。
[0096] 航冰庶A革苗田旱每于式(1)确定所述拆分域;
[0097] 式(1)
[0098] 其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区 间的匹配规则的个数。
[0099] 所述拆分子单元用于,基于式(2)从所述拆分域中确定拆分点:
[0100]
式(2)
[0101] 其中,Sr[j]表示位于第j个投影区间的匹配规则的个数。
[0102] 可选的,所述决策树包括两个决策树,一个所述决策树处于运行状态,另一个所述 决策树处于备份状态;
[0103] 所述装置还包括:覆盖单元760(图7中未示出),用于当所述数据包过滤规则有变 化时,基于新的数据包过滤规则编译决策树并覆盖处于备份状态的所述决策树;切换单元 770(图7中未示出),用于当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作 为正在运行的决策树,将原处于运行状态的决策树停止运行,进入备份状态。
[0104] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的 实现过程,在此不再寶述。
[0105] 对于装置实施例而言,由于其基本对应于方法实施例,所W相关之处参见方法实 施例的部分说明即可。W上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可W是或者也可W不是物理上分开的,作为单元显示的部件可W是或者也可W 不是物理单元,即可W位于一个地方,或者也可W分布到多个网络单元上。可W根据实际的 需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付 出创造性劳动的情况下,即可W理解并实施。
[0106] W上所述仅为本申请的较佳实施例而已,并不用W限制本申请,凡在本申请的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1. 一种数据包过滤方法,应用于网络设备上,其特征在于,所述方法包括: 对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所 述数据包的屯个匹配域的信息; 根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得 到所述数据包过滤规则的匹配标识; 根据所述数据包过滤规则的匹配标识,获取所述数据包的分类; 根据所述数据包的分类,对所述数据包进行相应处理。2. 根据权利要求1所述的方法,其特征在于,所述决策树通过W下步骤编译得到: 对所述数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各所 述匹配规则在各匹配域上只有一个范围; 判断当前捜索空间是否满足停止拆分条件,若不满足停止拆分条件,则从所述当前捜 索空间的所述匹配域中确定拆分域,在所述拆分域中确定拆分点;所述当前捜索空间为满 足当前匹配域及匹配条件的所有匹配规则的集合; 通过所述拆分点对所述拆分域进行拆分; 若满足停止拆分条件,则对所述当前捜索空间停止拆分,将与所述当前捜索空间相交 的匹配规则作为叶节点; 其中,所述拆分条件为:与所述当前捜索空间相交的匹配规则完全包含所述捜索空间 中各个匹配域的最大范围。3. 根据权利要求2所述的方法,其特征在于,所述对所述数据包过滤规则中的各个匹配 域数据进行处理,得到若干个匹配规则,包括: 对于所述匹配域数据包括两个或两个W上相交叉的范围时,将有重合的范围合并为一 个范围; 根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。4. 根据权利要求2所述的方法,其特征在于,所述从所述匹配域中确定拆分域,包括: 基于式(1)确定所述拆分域:其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的 匹配规则的个数。5. 根据权利要求2所述的方法,其特征在于,所述从所述拆分域中确定拆分点,包括: 基于式(2)从所述拆分域中确定拆分点:其中,Sr [ j ]表示位于第j个投影区间的匹配规则的个数。6. 根据权利要求1所述的方法,其特征在于,所述决策树包括两个决策树,一个所述决 策树处于运行状态,另一个所述决策树处于备份状态; 所述方法还包括: 当所述数据包过滤规则有变化时,基于新的数据包过滤规则编译决策树并覆盖处于备 份状态的所述决策树; 当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作为正在运行的决策 树,将原处于运行状态的决策树停止运行,进入备份状态。7. -种数据包过滤装置,应用于网络设备上,其特征在于,所述装置包括: 解析单元,用于对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的 入接口,得到所述数据包的屯个匹配域的信息; 查找单元,用于根据所述屯个匹配域的信息,查找预先根据数据包过滤规则编译的最 新的决策树,得到所述数据包过滤规则的匹配标识; 获取单元,用于根据所述数据包过滤规则的匹配标识,获取所述数据包的分类; 处理单元,用于根据所述数据包的分类,对所述数据包进行相应处理。8. 根据权利要求7所述的装置,其特征在于,所述装置还包括编译单元,用于编译所述 决策树; 所述编译单元包括: 处理子单元,用于对所述数据包过滤规则中的各个匹配域的数据进行处理,得到若干 个匹配规则,各所述匹配规则在各匹配域上只有一个范围; 判断子单元,用于判断当前捜索空间是否满足停止拆分条件; 拆分子单元,用于若不满足停止拆分条件,则从所述当前捜索空间的所述匹配域中确 定拆分域,在所述拆分域中确定拆分点;所述当前捜索空间为满足当前匹配域及匹配条件 的所有匹配规则的集合,通过所述拆分点对所述拆分域进行拆分; 停止拆分子单元,用于若满足停止拆分条件,则对所述当前捜索空间停止拆分,将与所 述当前捜索空间相交的匹配规则作为叶节点; 其中,所述拆分条件为:与所述当前捜索空间相交的匹配规则完全包含所述捜索空间 中各个匹配域的最大范围。9. 根据权利要求8所述的装置,其特征在于,所述处理子单元包括: 合并模块,用于对于所述匹配域数据包括两个或两个W上相交叉的范围时,将有重合 的范围合并为一个范围; 组合模块,用于根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹 配规则。10. 根据权利要求8所述的装置,其特征在于,所述拆分子单元用于: 基于式(1)确定所述拆分域:其中,F表示拆分域的维度,d表示维度数,Sr[j]表示在F维度上位于第j个投影区间的 匹配规则的个数。11. 根据权利要求8所述的装置,其特征在于,所述拆分子单元用于: 基于式(2)从所述拆分域中确定拆分点:其中,Sr [ j ]表示位于第j个投影区间的匹配规则的个数。12. 根据权利要求7所述的装置,其特征在于,所述决策树包括两个决策树,一个所述决 策树处于运行状态,另一个所述决策树处于备份状态; 所述装置还包括: 覆盖单元,用于当所述数据包过滤规则有变化时,基于新的数据包过滤规则编译决策 树并覆盖处于备份状态的所述决策树; 切换单元,用于当编译完成时,发出决策树切换的提醒消息,将新编译的决策树作为正 在运行的决策树,将原处于运行状态的决策树停止运行,进入备份状态。
【文档编号】H04L29/06GK105939323SQ201511032058
【公开日】2016年9月14日
【申请日】2015年12月31日
【发明人】袁野
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1