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

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

【技术实现步骤摘要】

本申请涉及网络通信
,尤其涉及一种数据包过滤方法及装置
技术介绍
数据包过滤是一种根据网络封包的源地址、目的地址,端口号及协议类型、标志位等元素确定是否允许分组数据包通过的技术,是防火墙等网络设备需要具备的一项基本功能。现有技术中,可通过将数据包的相关字段所包含的信息与预先制定的过滤规则进行匹配,根据匹配结果对数据包进行相应处理。但是在大流量的数据采集和分析的应用场景下,需要数据包过滤精确每个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:对数据包过滤规则中的各个匹配域的数据进行处理,得到若干个匹配规则,各匹配规则在各匹配域上只有一个范围。其中,对所述数据包过滤规则中的各个匹配域数据进行处理,得到若干个匹配规则,包括:对于所述匹配域数据包括两个或两个以上相交叉的范围时,将有重合的范围合并为一个范围;根据各个所述匹配域所包含的范围个数进行排列组合,得到若干个匹配规则。具体的,在某一个匹配域包括多个数据或数据范围时,需要根据多个数据之间的关系对这些范围进行处本文档来自技高网
...

【技术保护点】
一种数据包过滤方法,应用于网络设备上,其特征在于,所述方法包括:对接收的数据包进行解析,并且根据所述网络设备接收所述数据包的入接口,得到所述数据包的七个匹配域的信息;根据所述七个匹配域的信息,查找预先根据数据包过滤规则编译的最新的决策树,得到所述数据包过滤规则的匹配标识;根据所述数据包过滤规则的匹配标识,获取所述数据包的分类;根据所述数据包的分类,对所述数据包进行相应处理。

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

【专利技术属性】
技术研发人员:袁野
申请(专利权)人:杭州迪普科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1