一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种规则检测方法以及相关设备与流程

2022-04-02 02:01:51 来源:中国专利 TAG:


1.本技术实施例涉及数据处理领域,尤其涉及一种规则检测方法以及相关设备。


背景技术:

2.如今网络高速发展,全球网络的复杂程度与日俱增,网络安全的需求和复杂程度也在大幅提高。配置访问控制列表(acl,access control list)是网络配置中的重要一环,acl的作用在于识别哪些报文需要被转发或者直接屏蔽。acl中配置有大量的规则,每一条规则都会有优先级、报文空间和转发动作。当某一报文来到设备实际使用acl时,处理器会从最高优先级的规则往低优先级规则遍历,设备会使用优先级最高且命中报文的规则。在实际应用中,acl的配置可能会产生各种异常,使得实际使用的规则没有反映用户或者网络管理者的真实意图,设备会接收到不该接收的报文,即遭到攻击,或者扔掉不该扔掉的报文,造成信息丢失。为了防止acl配置带来的异常,需要对配置好的acl进行异常检测,使得用户或者网络管理者根据异常检测结果对acl中的规则进行调整。
3.理论上的规则检测方法,意图通过报文等价类算法(pec,packet equivalence class)创建一个基于pec包含关系而构成的哈斯图,将acl中的规则所对应的节点存放于该哈斯图中,通过识别节点实际包含的报文空间元素数量来检测异常。
4.pec算法只提供了一个理论框架,能检测的acl中的异常规则类型有限。


技术实现要素:

5.本技术实施例提供了一种规则检测方法以及相关设备,能够增加异常规则检测的覆盖度。
6.本技术实施例第一方面提供了一种规则检测方法,包括:
7.获取到第一规则对应的第一初始优先级、第二规则对应的第二当前优先级以及第一规则与第二规则之间的包含关系后,根据这三者确定第一规则对应的第一当前优先级。其中,第一初始优先级表示acl中配置的第一规则对应的优先级。第二当前优先级是指在当前时刻第二规则使用的优先级,可能与第二初始优先级相同,也可能与第二初始优先级不同。第一规则与第二规则的包含关系,是指规则对应的初始报文空间范围之间的包含,例如,规则1的源地址是100.0.1.0/25,目的地址是0.0.0.0/2,规则2的源地址是100.0.1.0/24,目的地址是0.0.0.0/0,规则1和规则2的初始报文空间范围包括源地址和目的地址,由于规则2的源地址和目的地址分别包含了规则1的源地址和目的地址,因此规则2对应的初始报文空间范围覆盖了规则1对应的初始报文空间范围,也即是规则2包含了规则1。确定出第一当前优先级后,根据第一当前优先级和第一初始优先级的关系,可以判断第一规则是否与其他规则之间发生了异常。
8.本技术实施例中,引入了规则优先级传递进行异常规则的检测,能够实际应用于检测acl中的各种规则异常情况,增加了识别异常的覆盖度。
9.结合本技术实施例第一方面,本技术实施例第一方面的第一种实现方式中,可以
根据初始报文空间范围确定第一规则与第二规则的包含关系。每条规则都有与之对应的初始报文空间范围,该初始报文空间范围包括每个特征的值域,该特征可以是规则对应的源地址,目的地址,源端口号,以及目的端口号中的至少一种。第一规则对应于第一初始报文空间范围,第二规则对应于第二初始报文空间范围。若第二初始报文空间范围包含第一初始报文空间范围,则可以确定第二规则包含第一规则,初始报文空间范围的包含是指每个特征的值域都包含。
10.若第二规则包含第一规则,则可以确定在哈斯图数据结构中,第二规则对应的第二节点是第一规则对应的第一节点的祖先节点。该祖先节点可以是父节点,也可以是祖父节点等,根据具体的情况进行确定。
11.本技术实施例中,可以根据不同规则对应的初始报文空间范围,确定不同规则之间的包含关系,以及规则对应的节点在哈斯图中的位置关系,提升了方案的可实现性。
12.结合本技术实施例第一方面,本技术实施例第一方面的第二种实现方式中,可以通过比较第一初始优先级和第二当前优先级,确定第一当前优先级,其中,第二节点是第一节点的至少一个父节点中当前优先级最高的节点。若第二当前优先级高于第一初始优先级,则发生优先级的传递,第一节点的当前优先级变与第二当前优先级相同。若第二当前优先级低于第一初始优先级,则第一节点的当前优先级变与第以初始优先级相同。
13.本技术实施例中,可以比较第一初始优先级和第一节点的至少一个父节点中当前优先级最高的节点对应的第二当前优先级,确定第一当前优先级,比较的方式简单。
14.结合第一方面的第一种实现方式或第二种实现方式,本技术实施例第一方面的第三种实现方式中,在确定出第一当前优先级之后,还可以根据第一目标节点确定第一目标值。其中,第一目标节点是指当前优先级与第一初始优先级相同的节点。第一目标值是指第一目标节点对应的报文空间大小之和,第一目标节点对应的报文空间大小表示的是第一目标节点与其后代节点之间未重合的元素数量。
15.确定第一目标值之后,可以根据第一初始优先级,第一当前优先级,以及第一目标值确定第一规则是否发生了异常。在第一目标值为0的情况下,若第一初始优先级与第一当前优先级相同,则可以确定第一规则与第一节点的祖先节点对应的第三规则之间发生了异常,若第一初始优先级与第一当前优先级不同,则可以确定第一规则与第一节点的后代节点对应的第四规则之间发生了异常。
16.本技术实施例中,通过确定第一目标值,比较第一初始优先级和第一当前优先级的关系,进一步确定出第一规则与哪些规则发生异常,使得异常情况进一步明确。
17.结合第一方面的第三种实现方式,本技术实施例第一方面的第四种实现方式中,可以通过比较第一转发动作和第二转发动作,确定第一规则与第三规则之间具体发生何种异常。其中,第一转发动作是指第一规则对应的操作指令,第二转发动作是指第三规则对应的操作指令,需要注意的是,第三规则的当前优先级与第二当前优先级相同。在第一方面的第三种实现方式的基础上,若第一转发动作与第二转发动作相同,则可以确定第一规则与第三规则之间发生第一类冗余异常,反之,则可以确定第一规则与第三规则之间发生屏蔽异常。
18.本技术实施例中,结合规则之间的转发动作,进一步确定出规则之间具体的异常类型,使得方案可以应用到多个场景中,增强了的方案的灵活性。
19.结合第一方面的第三种实现方式,本技术实施例第一方面的第五种实现方式中,可以根据第一节点的后代节点确定第四规则,第四规则对应的第四节点是第一节点的后代节点中当前优先级高于第一当前优先级的节点。确定出第四规则后,可以明确第一规则与第四规则之间发生多重屏蔽异常。
20.本技术实施例中,在确定第一目标值为0,第一初始优先级与第一当前优先级相同的情况下,通过第四节点可以确定与第一规则发生多重屏蔽异常的第四规则,使得异常类型进一步明确,提升了方案检测异常规则的准确度。
21.结合第一方面的第二种实施方式至第五种实施方式中的任一种,本技术实施例第一方面的第六种实现方式中,获取第一目标值的方式是通过优先级列表获取,优先级列表包括k个初始优先级、k个目标值、k个节点,用来指示初始优先级,目标值,以及节点之间的一一对应关系,其中,k为大于或于1的整数。
22.结合第一方面的第六种实现方式,本技术实施例第一方面的第七实现方式中,在确定第一目标值之前,可能会有第五节点添加到哈斯图中,此时,优先级列表会进行更新。根据第五节点的初始报文空间范围,可以确定出第五节点的具体位置,进而确定第二目标节点对应的第二目标值,其中,第二目标节点是指当前优先级与第五初始优先级相同的节点。第五节点的添加可能会影响其他节点的当前优先级或目标值,需要注意的是第n目标值始终表示当前优先级为n的所有节点的报文空间大小之和。将第二目标值存储至待更新的优先级列表中,若有其他的目标值发生变更,则将变更后的结果存入待更新的优先级列表中,最终确定更新后的优先级列表。
23.本技术实施例中,添加新的节点会使得优先级列表发生变化,可以及时进行更新,使得规则检测更为准确。
24.结合第一方面、第一方面的第一种实施方式至第七实现方式中的任一种,本技术实施例第一方面的第八实现方式中,在检测到异常规则后,可以向用户或网络管理者发出告警,用于提示用户或网络管理者注意异常情况。告警的表现形式可以是文本,也可以是语音提示,只要能够引起用户或网络管理者的注意即可。
25.本技术实施例中,在确定异常后,会向用户或网络管理者发出告警,提示异常信息,更符合实际使用的需要,提升了方案的可实现性。
26.本技术实施例第二方面提供了一种规则检测方法,包括:
27.在哈斯图数据结构中,获取子节点和父节点的初始优先级,通过比较子节点与父节点初始优先级的高低,确定子父节点对应的规则之间是否发生了异常。
28.结合第二方面,本技术实施例第二方面的第一实现方式中,若子节点的初始优先级高于父节点的初始优先级,可以确定子父节点对应的规则之间发生了异常。
29.本技术实施例中,通过比较子父节点的初始优先级确定子父节点对应的规则之间是否发生了异常,比较的方式简单、便捷。
30.结合第二方面的第一种实施方式,本技术实施例第二方面的第二实现方式中,可以结合子父节点对应的转发动作,进一步确定子父节点对应的规则之间发生了何种异常。若两者的转发动作相同,则可以确定子父节点对应的规则之间发生第二类冗余异常,反之,则可以确定子父节点对应的规则之间发生泛化异常。
31.本技术实施例中,通过结合子父节点对应的转发动作,进一步确定出子父节点对
应的规则之间发生的具体异常情况,使得检测结果更加准确。
32.结合第二方面、第二方面的第一种实施方式至第二实现方式中的任一种,本技术实施例第二方面的第三实现方式中,在检测到异常规则后,可以向用户或网络管理者发出告警,用于提示用户或网络管理者注意异常情况。告警的表现形式可以是文本,也可以是语音提示,只要能够引起用户或网络管理者的注意即可。
33.本技术实施例中,在确定异常后,会向用户或网络管理者发出告警,提示异常信息,更符合实际使用的需要,提升了方案的可实现性。
34.本技术实施例第三方面提供了一种规则检测方法,包括:
35.通过比较两个规则之间是否产生相交,确定两个规则之间是否发生了相关异常。规则之间相交是指两个规则对应的初始报文空间范围存在部分重合的区域。若两个规则之间产生相交,则可以确定这两个规则之间发生相关异常。
36.本技术实施例中,通过确定两个规则之间相交,便可以确定两个规则之间发生了相关异常,比较方式简单,提升了方案的灵活性。
37.结合第三方面,本技术实施例第三方面的第一种实施方式中,在检测到异常规则后,可以向用户或网络管理者发出告警,用于提示用户或网络管理者注意异常情况。告警的表现形式可以是文本,也可以是语音提示,只要能够引起用户或网络管理者的注意即可。
38.本技术实施例中,在确定异常后,会向用户或网络管理者发出告警,提示异常信息,更符合实际使用的需要,提升了方案的可实现性。
39.本技术实施例第四方面提供了一种规则检测装置,包括:
40.获取单元,用于获取第一规则对应的第一初始优先级,还用于获取第二规则对应的第二当前优先级。
41.确定单元,用于根据所述第一初始优先级,所述第二当前优先级,和所述第一规则与所述第二规则的包含关系,确定所述第一规则对应的第一当前优先级,还用于根据所述第一初始优先级和所述第一当前优先级,确定所述第一规则是否发生异常。
42.该规则检测装置用于执行前述第一方面的方法。
43.本技术实施例第五方面提供了一种规则检测装置,包括:
44.获取单元,用于获取第一规则对应的第一初始优先级,所述第一规则对应于所述哈斯图数据结构中的第一节点,所述第一初始优先级存储于所述第一节点中,还用于获取所述第二节点对应的第二初始优先级,所述第二节点在所述哈斯图数据结构中为所述第一规则节点的父节点。
45.确定单元,用于根据所述第一初始优先级和所述第二初始优先级,确定所述第一规则与所述第二规则之间是否发生异常。
46.该规则检测装置用于执行前述第二方面的方法。
47.本技术实施例第六方面提供了一种规则检测装置,包括:
48.获取单元,用于获取第一规则对应的第一初始报文空间范围,还用于获取第二规则对应的第二始报文空间范围。
49.确定单元,用于根据第一初始报文空间范围和第二始报文空间范围,确定第一规则与第二规则之间是否发生异常。若第一初始报文空间范围和第二始报文空间范围相交,则确定第一规则与第二规则之间发生相关异常。
50.该规则检测装置用于执行前述第三方面的方法。
51.本技术实施例第七方面提供了一种计算机设备,包括:
52.处理器、存储器、输入输出设备以及总线。其中处理器、存储器、输入输出设备与所述总线相连。处理器用于执行以下步骤:
53.获取第一规则对应的第一初始优先级,以及获取第二规则对应的第二当前优先级。然后根据第一初始优先级,第二当前优先级,和第一规则与所述第二规则的包含关系,确定第一规则对应的第一当前优先级。并根据第一初始优先级和第一当前优先级,确定第一规则是否发生异常。
54.该计算机设备用于执行前述第一方面的方法。
55.本技术实施例第八方面提供了一种计算机设备,包括:
56.处理器、存储器、输入输出设备以及总线。其中处理器、存储器、输入输出设备与所述总线相连。处理器用于执行以下步骤:
57.获取第一规则对应的第一初始优先级,所述第一规则对应于哈斯图数据结构中的第一节点,第一初始优先级存储所述第一节点中,以及获取第二节点对应的第二初始优先级,第二节点在哈斯图数据结构中为第一规则节点的父节点。并根据第一初始优先级和第二初始优先级,确定第一规则与第二规则之间是否发生异常。
58.该规则检测装置用于执行前述第二方面的方法。
59.本技术实施例第九方面提供了一种计算机设备,包括:
60.处理器、存储器、输入输出设备以及总线。其中处理器、存储器、输入输出设备与所述总线相连。处理器用于执行以下步骤:
61.获取第一规则对应的第一初始报文空间范围,以及获取第二规则对应的第二始报文空间范围。并根据第一初始报文空间范围和第二始报文空间范围,确定第一规则与第二规则之间是否发生异常。
62.该规则检测装置用于执行前述第三方面的方法。
63.本技术实施例第十方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有程序,当该计算机执行程序时,执行前述第一方面、第二方面和第三方面的方法。
64.本技术实施例第十一方面提供了一种计算机程序产品,当该计算机程序产品在计算机上执行时,该计算机执行前述第一方面、第二方面和第三方面的方法。
附图说明
65.图1为本技术实施例中acl的一个应用架构示意图;
66.图2为本技术实施例中伪代码的一个示意图;
67.图3a为本技术实施例中哈斯图数据结构的一个示意图;
68.图3b为本技术实施例中哈斯图数据结构的更新示意图;
69.图4为本技术实施例规则检测方法的一个实施例示意图;
70.图5为本技术实施例规则检测方法的另一实施例示意图;
71.图6为本技术实施例规则检测方法的另一实施例示意图;
72.图7为本技术实施例规则检测方法的另一实施例示意图;
73.图8为本技术实施例规则检测方法的另一实施例示意图;
74.图9为本技术实施例规则检测装置的一个结构示意图;
75.图10为本技术实施例规则检测装置的另一结构示意图;
76.图11为本技术实施例计算机设备的一个结构示意图;
77.图12为本技术实施例计算机设备的另一结构示意图。
具体实施方式
78.本技术实施例提供了一种规则检测方法,能够增加检测规则异常的覆盖度。
79.acl是一种基于包过滤的访问控制技术,可以根据设定的条件对接口上的数据包进行过滤,允许其通过或者丢弃,从而提升网络安全。acl可以应用在如图1所示的架构中。
80.acl可以配置在多种网络元件中,可以应用于图1所示的路由器和交换机中,还可以应用在防火墙上,具体此处不做限定,本技术实施例仅以路由器和交换机作为示例。
81.acl中配置有至少一条规则,这些规则用来描述报文的匹配条件,每条规则有与之对应的优先级、报文空间大小和转发动作。acl中配置的规则可以如下表1所示,需要说明的是,这些匹配条件可以是报文的源地址、目的地址,也可以是在此基础上加入源端口号、目的端口号和使用协议等,表1中的地址均为掩码形式。表1仅为acl中规则配置的一个例子,使用源地址和目的地址来说明,在实际应用中可以根据实际的需要进行配置,具体此处不做限定。
82.表1
83.序号优先级源地址目的地址转发动作11100.0.0.0/240.0.0.0/0转发220.0.0.0/0200.0.0.0/24拒绝33100.0.1.0/240.0.0.0/2转发44100.0.0.0/250.0.0.0/0拒绝55100.0.1.0/250.0.0.0/2转发66100.0.1.0/240.0.0.0/0转发77100.0.0.0/230.0.0.0/0拒绝880.0.0.0/0200.0.0.0/16转发
84.利用acl处理报文时,会从优先级最高的规则往低优先级的规则遍历,设备会使用优先级最高且命中报文的规则,执行该规则对应的转发动作。在本技术实施例中,数字越小代表优先级越高,在实际应用中优先级还可以使用其他的形式表示,比如数字越大优先级越高,或者使用26个英文字母表示优先级,优先级从“a”到“z”逐级降低,具体此处不做限定。在实际应用中,acl的配置可能会产生各种异常使得最终执行的动作没有实际反映用户或者网络管理者的真实意图。acl中的规则异常有以下几种情况:
85.1、屏蔽异常,该种异常是指高优先级的规则包含了低优先级的规则,也即高优先级对应的报文空间范围覆盖了低优先级的规则对应的报文空间范围,且两条规则对应的转发动作不同,比如表1中的规则1和规则4。报文空间范围包括多个特征的值域,报文空间范围的覆盖是指每个维度都被覆盖,如表1所示的规则4的源地址和目的地址分别被规则1的源地址和目的地址覆盖,所以规则4对应的报文空间范围完全包含于规则1中,命中规则4的报文也会命中规则1,由于规则1的优先级高于规则4,所以规则4不会被启用,此时用户的真
实意图可能无法实现。屏蔽异常中存在实际上未被使用的规则,因此屏蔽异常属于严重的错误类型。
86.2、第一类冗余异常,该种异常与屏蔽异常相似,同样是高优先级的规则包含了低优先级的规则,但是两条规则所对应的转发动作相同,比如表1中的规则3和规则5,由于规则3的存在使得规则5冗余,由于规则3的优先级高,所以规则5不会被启用,但两条规则对应的优先级相同,会导致占用额外的空间同时在规则搜索时浪费时间。第一类冗余异常中会存在实际上未被使用的规则,因此第一类冗余异常和屏蔽异常一样,都属于严重的错误类型。
87.3、多重屏蔽异常,该种异常情况发生在多条规则之间,低优先级的规则对应的报文空间范围被多条高优先的规则对应的报文空间范围完全覆盖的情况,比如表1中规则1、规则6和规则7。由于规则7对应的报文空间范围被规则1和规则6完全覆盖,且规则7的优先级最低,所以规则7不会被启用。多重屏蔽异常和屏蔽异常以及第一类冗余异常一样,实际上存在未被使用的规则,属于严重的错误类型。
88.4、泛化异常,该种异常是指低优先级的规则包含高优先级的规则,且两条规则对应的转发动作不同,比如表1中的规则2和规则8。当报文命中规则2对应的空间时,设备会执行规则2对应的动作,当报文命中规则8对应的但不在规则2对应的报文空间范围时,设备会执行规则8对应的动作。泛化异常中,每条规则都会被使用,因此不是严重的错误类型,但需要提醒用户注意确认规则2是否为规则8的特例,需要单独设置一条新的规则来反映安全策略。
89.5、第二类冗余异常,该种异常是指低优先级的规则包含高优先级的规则,且两条规则对应的转发动作相同,且没有任何转发动作不同的规则对应的空间和优先级均处于两者之间,比如表1中的规则3和规则6。在表1所示的acl列表中,由于规则3对应的报文空间范围被规则6对应的报文空间范围完全覆盖,且两者转发动作相同,则在表1所示的acl中规则3是可以删除的。但是,如果规则3和规则6之间存在规则9,规则9的优先级为4,源地址为100.0.1.0/24,目的地址为0.0.0.0/1,转发动作为拒绝的规则,此时删除规则3之后,规则3对应的报文实际上会使用规则9的转发动作,在这种情况下,规则3不再属于可以被删除的规则。因此,对于第二类冗余异常需要更加谨慎地对待。
90.6、相关异常,该种异常是指两条规则对应的报文空间范围相交,且转发动作不同,比如表1中的规则1和规则2.相关异常在acl的配置中较为常见,但是需要谨慎对待,如果两条规则的优先级互换,则会产生一些报文的转发动作发生变化。例如,一条来自100.0.0.0,去往200.0.0.0的报文,如果规则1和规则2的优先级互换,则这条报文会由被转发变为被拒绝。
91.本技术实施例可以通过图2所示的伪代码实现对异常规则的检测,下面对图2所示的伪代码进行简单介绍。
92.图2所示伪代码的第2行至第17行可以确定新添加至哈斯图数据结构中的节点的位置,并确定该新添加的节点是否与已经存在于哈斯图数据结构中的节点产生了相交节点。若产生了相交节点,则可以确定相交节点在哈斯图数据结构中的位置。
93.图2所示伪代码的第19行至第22行,可以及时刷新新添加节点的当前优先级,若新添加节点的当前优先级会对新添加节点的子节点的优先级产生影响,会启动伪代码的第23
行,对新添加节点的子节点的优先级进行刷新。
94.需要注意的是,图2所示的伪代码只是本技术实施例的一种实现方式,体现的是本技术实施例的逻辑流程,在实际应用中具体使用的代码形式会基于该伪代码进行一定程度的优化,使得实际使用的代码更符合实际应用的需求,具体此处不做限定。
95.为了检测出acl中的各种异常规则,本技术实施例将acl规则放置于哈斯图数据结构中,请参阅图3a,图3a为本技术实施例中哈斯图数据结构的一个示意图。
96.现有如下表2所示的3条规则,将这3条规则添加到哈斯图数据结构中,得到图3a所示的示意图。其中,规则使用的传输协议可以是传输控制协议(tcp,transmission control protocol),也可以是用户数据报协议(udp,user datagram protocol),还可以是互联网控制消息协议(icmp,internet control message protocol),具体此处不做限定,本技术实施例以tcp协议为例。
97.表2
[0098][0099]
图3a中的3个节点分别对应于表2中的3条规则,例如节点1对应规则1。将规则添加到哈斯图数据结构中,没有必然的先后顺序,但需要注意的是,不论是读取一个完整的acl来输出各种异常,还是将单条规则添加至现有的acl中检测这条规则是否产生异常,添加方式都是将规则逐条添加至整个数据结构中。以表2中的规则为例,可以先添加规则1,再添加规则3,最后添加规则2。也可以先添加规则3,再添加规则2,最后添加规则1。具体的添加顺序根据实际应用中的需要进行选择,具体此处不做限定。
[0100]
本技术实施例仅以先添加规则2,再添加规则1,最后添加规则3的顺序为例。在添加规则1的时候,需要确定规则1与规则2是否有包含关系,若规则2包含规则1,则节点1在哈斯图中为节点2的子节点。对比规则1和规则2的源地址、目的地址以及源端口号和目的端口号,可知,规则1对应的报文空间范围完全覆盖规则2对应的报文空间范围,因此节点1在哈斯图中为节点2的父节点。再将规则3添加至哈斯图中时,需要从根节点,也即节点1遍历,确定节点3的位置。最终得到的哈斯图如图3a所示。
[0101]
在将规则添加至哈斯图的过程中,初始优先级对应的目标值会发生改变,在数据结构中会单独创建如下表3所示的优先级列表,以初始优先级为索引,用来指示每个初始优先级对应的目标值。
[0102]
表3
[0103]
优先级目标值265536316777216416760373248
[0104]
目标值表示的是所有当前优先级为n(n为大于或等于1的正整数)的规则对应的报文空间大小之和,以表3中的优先级为4的目标值为例,因为当前优先级为4的规则只有规则
1,所以该目标值即为规则1对应的报文空间大小。计算方法为规则1对应的初始报文空间大小减去规则2和规则3对应的初始报文空间大小。规则1对应的初始报文空间大小为2
(32-24)
×2(32-32)
×
1000
×
65536=16777216000,规则2对应的初始报文空间大小为2
(32-24)
×2(32-32)
×1×
65536=16777216,规则3对应的初始报文空间大小为2
(32-32)
×2(32-32)
×1×
65536=65536,因此优先级4对应的目标值为16777216000-16777216-65536=16760373248。
[0105]
本技术实施例中,低优先级的规则1包含了高优先级的规则2和规则3,同时规则1和规则2的转发动作相同,规则1和规则3的转发动作不同,因此,规则1与规则2之间发生了第二类冗余异常,规则1和规则3之间发生了泛化异常。处理器在检测出异常的时候,可以发出告警,用来提醒用户。
[0106]
当有新的规则添加到哈斯图中时,新规则会从根节点遍历,直至找到的正确的位置,将该新规则对应的节点添加至哈斯图中。新节点的添加,可能会引起其他节点对应的优先级和节点对应的当前报文空间大小的改变,由此引起目标值的改变。请参阅图3b,本技术实施例中哈斯图数据结构更新的一个示意图。
[0107]
以新添加规则4为例,规则4的优先级为1,源地址为134.58.26.33/32,目的地址为78.48.35.246/32,源端口号为500:999,目的端口号为0:65535,使用的协议为tcp,转发动作为屏蔽。规则4对应的节点4先与根节点对比,因为规则1包含规则4,所以节点4为节点1的后代节点。规则4分别与规则2、规则3对比,规则2与规则4不存在包含关系,规则4包含规则3由此确定节点4为节点3的父节点,同时节点4与节点2相交产生了相交节点。
[0108]
节点4的添加,会引起节点优先级的传递和优先级列表中目标值的变化,最终得到的哈斯图如图3b所示,优先级列表如下表4所示。
[0109]
表4
[0110]
优先级目标值13276800020316711680416727736320
[0111]
如图3b所示,虽然节点1为节点4的父节点,但节点4的初始优先级高于节点1的当前优先级,因此节点4的当前优先级与节点4的初始优先级相同,为1。节点4为节点3的父节点,且节点4的当前优先级高于节点3的初始优先级,因此节点3的优先级更新为节点4的优先级,即节点3的当前优先级与节点4的当前优先级相同,为1。节点2与节点3相交产生了相交节点,相交节点对应的报文空间范围为节点2和节点4共同覆盖的报文空间范围。由于相交节点在acl中并没有实际的规则与之对应,因此相交节点不存在初始优先级,相交节点的当前优先级来源于相交节点的至少一个父节点中当前优先级最高的节点,由于节点2和节点4均为相交节点的父节点,节点4的当前优先级高于节点2的当前优先级,因此,相交节点的当前优先级为节点4的当前优先级。在本技术实施例中,哈斯图数据结构中的节点不仅会存储本身对应的规则的初始信息,还会存储节点在当前时刻对应的当前优先级。
[0112]
由于节点的当前优先级发生改变,因此初始优先级对应的目标值也发生了变化。以初始优先级为2的目标值为例,在当前的哈斯图中,不存在当前优先级为2的节点,因此该目标值为0。以初始优先级为1的目标值为例,当前优先级为1的节点有3个,分别是节点3、节
点4和相交节点,该目标值即为这3个节点对应的报文空间大小之和。
[0113]
本技术实施例中,规则2与规则4产生了相交节点,规则3与规则4之间发生了相关异常。规则3的当前优先级与初始优先级不同,且规则3与规则4对应的转发动作相同,且规则3对应的初始优先级的目标值为0,因此规则3与规则4之间发生了第一类冗余异常。处理器在检测出异常的时候,可以发出告警,用来提醒用户。
[0114]
为便于理解,下面对本技术实施例中的具体流程进行描述,本技术实施例可以检测第一规则与第一节点在哈斯图数据结构中的父节点对应的规则之间发生何种异常,也可以检测第一规则与第一节点在哈斯图数据结构中的后代节点对应的规则之间发生何种异常,下面分别进行说明:
[0115]
一、第一规则与父节点对应规则的异常。
[0116]
在哈斯图数据结构中,一个节点可能只有一个父节点,也可能有众多父节点,不同情况下的异常类型可能会不同,下面分别进行说明:
[0117]
1、第二节点为第一节点的唯一父节点。
[0118]
请参阅图4,本技术实施例中规则检测的一个实施例,包括:
[0119]
401、处理器确定包含关系;
[0120]
根据第一规则对应的第一初始报文空间范围以及第二规则对应的第二初始报文空间范围的包含关系,确定第一规则和第二规则之间的包含关系。
[0121]
初始报文空间范围包括多个特征的值域,可以是包括源地址和目的地址,也可以包括源地址、目的地址以及源端口号和目的端口号,具体此处不做限定。报文空间范围的包含是指多个特征均包含,例如源地址0.0.0.0/0,目的地址0.0.0.0/1的规则1包含了源地址100.0.0.1/32,目的地址0.0.0.0/2的规则2。若存在规则3的源地址与规则2相同,目的地址为0.0.0.0/0,由于规则3的目的地址没有被规则1的目的地址包含,因此规则3与规则1之间没有包含关系。
[0122]
若第二规则包含第一规则,则确定第二规则对应的第二节点在哈斯图数据结构中为第一规则对应的第一节点的父节点。本技术实施例以规则2包含规则1为例进行说明。
[0123]
402、处理器获取第一初始优先级;
[0124]
acl中每条规则都有与之对应的初始优先级,表示的是该规则在配置时对应的优先级。处理器有多种方式获取第一初始优先级,可以从acl列表中获取,也可以从第一规则对应的第一节点中获取,具体此处不做限定。
[0125]
403、处理器获取第二当前优先级;
[0126]
第二当前优先级表示的是第二规则在当前时刻对应的优先级,可能与第二初始优先级相同,也可能与第二初始优先级不同。
[0127]
需要注意的是,步骤402、403之间没有必然的先后顺序,在实际应用中可以先执行步骤402,也可以先执行步骤403,具体此处不做限定。
[0128]
404、处理器确定第一当前优先级;
[0129]
第一当前优先级表示的是第一规则在当前时刻对应的优先级,可能与第一初始优先级相同,也可能与第一初始优先级不同。需要根据第一规则与第二规则的包含关系,以及第一初始优先级,以及第二当前优先级,确定第一当前优先级。
[0130]
若第一初始优先级高于第二当前优先级,则第一当前优先级为第一初始优先级,
没有发生优先级传递。若第一初始优先级低于第二当前优先级,则第一当前优先级由第一初始优先级刷新为第二当前优先级,发生了优先级的传递。
[0131]
405、处理器确定第一目标值是否为0,若是,则执行步骤407,若否,则执行步骤406;
[0132]
第一目标值由第一目标规则确定,第一目标规则的当前优先级为第一初始优先级,第一目标值等于第一目标规则对应的报文空间之和。规则对应的报文空间由该规则对应的初始报文空间大小,和该规则对应的节点在哈斯图中的后代节点的报文空间大小确定。报文空间大小包括至少一个元素数量,每个元素数量对应于一个元素类型,元素类型可以是源地址、目的地址,也可以是源地址、目的地址以及源端口号和目的端口号,具体此处不做限定。
[0133]
406、处理器确定第一规则与第三规则之间发生第二类异常;
[0134]
若第一目标值不为0,则可以确定第一初始优先级高于第二当前优先级,第一规则与第三规则之间发生第二类异常,第二类异常为第二类冗余异常或泛化异常。
[0135]
需要注意的是,第三规则可能是第二规则,也可能是第二节点的祖先节点对应的规则,但是需要确定第三规则对应的第三初始优先级与第二当前优先级相同。
[0136]
结合第一规则和第三规则对应的转发动作,可以确定出具体是哪一种第二类异常。若第一规则和第二规则对应的转发动作相同,则可以确定第一规则与第三规则之间发生第二类冗余异常,若第一规则和第三规则对应的转发动作不同,则可以确定第一规则与第三规则之间发生泛化异常。
[0137]
407、处理器确定第一初始优先级是否等于第一当前优先级,若是,则执行步骤408,若否,则执行步骤409。
[0138]
若第一目标值为0,可以确定的是第一规则发生了异常,但具体是第一规则与哪些规则发生异常,具体发生什么样的异常还需要结合第一初始优先级和第一当前优先级的关系进行确定。
[0139]
408、处理器确定第一规则与第四规则之间发生多重屏蔽异常;
[0140]
若第一目标值为0,且第一初始优先级等于第一当前优先级,则可以确定第一规则与第四规则之间发生多重屏蔽异常。其中,第四规则对应的节点为第一节点的后代节点,且第四规则的当前优先级高于第一当前优先级。
[0141]
409、处理器确定第一规则与第三规则之间发生第一类异常;
[0142]
若第一目标值为0,且第一初始优先级与第一当前优先级不同,则可以确定第一规则与第三规则之间发生第一类异常。第一类异常为第一类冗余异常或屏蔽异常。
[0143]
需要注意的是,第三规则可能是第二规则,也可能是第二节点的祖先节点对应的规则,但是,第三规则对应的第三初始优先级要与第二当前优先级相同。
[0144]
结合第一规则和第三规则对应的转发动作,可以确定第一类异常为第一类冗余异常还是屏蔽异常。若第一规则和第三规则对应的转发动作相同,则可以确定第一规则与第三规则之间发生第一类冗余异常,若第一规则和第三规则对应的转发动作不同,则可以确定第一规则与第三规则之间发生屏蔽异常。
[0145]
本技术实施例中,通过引入规则的优先级进行异常规则的检测,增加了异常规则检测的覆盖度。
[0146]
进一步的,通过确定第一目标值是否为0,确定第一初始优先级与第一当前优先级是否相同,比较规则对应的转发动作是否相同,可以确定出第一规则具体与哪些规则发生什么样的异常,提升了识别异常规则的准确度。
[0147]
2、第二节点为第一节点的多个父节点中当前优先级最高的节点。
[0148]
请参阅图5,本技术实施例中规则检测的一个实施例,包括:
[0149]
501、处理器确定包含关系;
[0150]
502、处理器获取第一初始优先级;
[0151]
503、处理器获取第二当前优先级;
[0152]
504、处理器确定第一当前优先级;
[0153]
505、处理器确定第一目标值是否为0,若是,则执行步骤507,若否,则执行步骤506;
[0154]
本实施例中,步骤501至505与前述图4所示实施例中步骤401至405类似,此处不再赘述。
[0155]
506、处理器确定第一规则与任一父节点对应的规则之间发生第二类异常;
[0156]
若第一目标值不为0,说明第一当前优先级与第一初始优先级相同,第一规则的优先级没有发生改变,也即第一节点的初始优先级高于第二当前优先级。因为第二当前优先级在第一节点的多个父节点对应的当前优先级中是最高的,则可以说明第一节点的初始优先级高于任一父节点的当前优先级,可以确定第一规则与任一父节点对应的规则之间发生第二类异常。
[0157]
其中,第二类异常为第二类冗余异常或泛化异常,需要结合规则对应的转发动作进行进一步的确认,得到具体是第二类异常中的哪种情况。若第一规则的转发动作与任一父节点对应规则的转发动作相同,则可以确定第一规则与该父节点对应规则之间发生第二类冗余异常,反之,则可以确定第一规则与该父节点对应规则之间发生泛化异常。
[0158]
507、处理器确定第一初始优先级是否等于第一当前优先级,若是,则执行步骤508,若否,则执行步骤509;
[0159]
508、处理器确定第一规则与第四规则之间发生多重屏蔽异常;
[0160]
本实施例中,步骤507至508与前述图4所示实施例中步骤407至408类似,此处不再赘述。
[0161]
509、处理器确定任一父节点的当前优先级是否高于第一初始优先级,若是,则执行步骤510,若否,则执行步骤511;
[0162]
若第一目标值为0,且第一初始优先级与第一当前优先级不同时,可以说明第一规则被第一节点的父节点对应的规则包含,可能是任一父节点对应的规则均包含了第一规则,也可能是部分父节点对应的规则均包含了第一规则,不同情况对应的异常有所不同,需要进一步结合父节点的当前优先级与第一初始优先级的关系进行判断。
[0163]
510、处理器确定第一规则与任一父节点对应规则之间发生第一类异常;
[0164]
若任一父节点的当前优先级均高于第一初始优先级,则说明任一父节点对应的规则均包含了第一规则,可以确定第一规则与任一父节点对应的规则之间发生第一类异常。
[0165]
其中,第一类异常为第一类冗余异常或屏蔽异常,需要结合规则对应的转发动作进行进一步的确认,得到具体是第一类异常中的哪种情况。若第一规则的转发动作与任一
父节点对应规则的转发动作相同,则可以确定第一规则与该父节点对应规则之间发生第一类冗余异常,反之,则可以确定第一规则与该父节点对应规则之间发生屏蔽异常。
[0166]
511、处理器确定第一规则与第三规则之间发生第一类异常,与低优先级规则之间发生第二类异常;
[0167]
在第一目标值为0,且第一初始优先级与第一当前优先级不同的情况下,若存在一个父节点的当前优先级低于第一初始优先级,则说明第一规则与不同父节点对应的规则之间发生的异常情况有所不同。
[0168]
由于第一初始优先级与第一当前优先级不同,可以确定发生了优先级的传递,第一规则与第三规则之间发生了第一类异常。其中,第三规则是指当前优先级为第二优先级的规则,第一类异常为第一类冗余异常或屏蔽异常。需要结合规则对应的转发动作进一步的确认具体是第一类异常中的哪种情况。若第一规则的转发动作与第三规则的转发动作相同,则可以确定第一规则与第三规则之间发生第一类冗余异常,反之,则可以确定第一规则与第三规则之间发生屏蔽异常。
[0169]
还可以确定第一规则与低优先级规则之间发生了第二类异常,其中,低优先级规则是指第一节点的父节点中当前优先级低于第一初始优先级的规则,第二类异常为第二类冗余异常或泛化异常,可以结合规则对应的转发动作进行确认,得到具体是第二类异常中的哪种情况。若第一规则的转发动作与低优先级规则的转发动作相同,则可以确定第一规则与该低优先级规则之间发生第二类冗余异常,反之,则可以确定第一规则与该低优先级规则之间发生泛化异常。
[0170]
本技术实施例中,通过引入规则的优先级进行异常规则的检测,增加了异常规则检测的覆盖度。
[0171]
进一步的,在第一规则有多个父节点的情况下,通过确定第一目标值是否为0,比较父节的当前优先级与第一初始优先级的关系,比较规则对应的转发动作是否相同,可以确定出第一规则是否与其他规则发生异常,以及发生了何种异常,提升了识别异常规则的准确度。
[0172]
二、第一规则与后代节点对应规则的异常。
[0173]
请参阅图6,本技术实施例中规则检测的一个实施例,包括:
[0174]
601、处理器获取第一当前优先级;
[0175]
第一规则对应的第一当前优先级可能与第一初始优先级相同,也可能不同,需要在哈斯图数据结构中根据第一节点的父节点的当前优先级进行确定,具体的确定过程与图4所示实施例中步骤404类似,此处不再赘述。
[0176]
602、处理器获取第一初始优先级;
[0177]
acl中每条规则都有与之对应的初始优先级,表示的是该规则在配置时对应的优先级。处理器有多种方式获取第一初始优先级,可以从acl列表中获取,也可以从第一规则对应的第一节点中获取,具体此处不做限定。
[0178]
需要注意的是,步骤601与步骤602没有必然的先后顺序,可以先执行步骤601,也可以先执行步骤602,具体此处不做限定。
[0179]
603、处理器确定第一当前优先级是否等于第一初始优先级,若是,则执行步骤605,若否,则执行步骤604;
100=0。由此得到规则4的目标值为0 0=0。
[0193]
在此种情况下,规则4并非与节点4的所有后代节点之间发生都发生多重屏蔽异常,比如规则4与规则5之间发生的就是第一类异常。因此需要明确第一规则与哪些规则之间发生了多重屏蔽异常,限定条件即为这些规则的当前优先级高于第一当前优先级。
[0194]
607、处理器确定第一规则与不同后代节点对应规则之间发生不同的异常;
[0195]
若第一目标值不为0,则说明第一规则的初始报文空间范围没有被第一节点的后代节点完全覆盖,此时的异常情况并不是多重屏蔽异常,需要结合后代节点的当前优先级进行确认。
[0196]
若后代节点的当前优先级与第一当前优先级相同,则处理器可以确定第一规则与该后代节点对应规则之间发生第一类异常。结合两者对应的转发动作,可以确定异常具体是第一类异常中的哪种情况,具体确定第一类异常的步骤与图4所示实施例中的步骤409类似,此处不再赘述。不同之处在于,步骤409中与第一规则发生第一类异常的是第三规则,本实施例中与第一规则发生第一类异常的是第一节点的后代节点对应的规则。
[0197]
若后代节点的当前优先级高于第一当前优先级,则处理器可以确定第一规则与该后代节点对应规则之间发生第二类异常。结合两者对应的转发动作,可以确定异常具体是第二类异常中的哪种情况,具体的确定步骤与图4所示实施例中的步骤406类似,此处不再赘述。不同之处在于,步骤406中与第一规则发生第二类异常的是第三规则,本实施例中与第一规则发生第二类异常的是第一节点的后代节点对应的规则。
[0198]
本技术实施例中,通过引入规则的优先级进行异常规则的检测,增加了异常规则检测的覆盖度。
[0199]
进一步的,在对第一规则与后代节点对应规则进行异常检测时,通过确定第一目标值是否为0,以及比较第一当前优先级和子节点对应的当前优先级的关系,可以确定出第一规则与子节点对应规则之间具体发生何种异常,对于不同的情况有不同的处理方法,增加了方案的灵活性,同时也提升了识别的准确度。
[0200]
在具体应用本技术实施例使用的规则检测方法时,处理器会创建优先级列表,随着规则对应的节点逐渐添加到哈斯图中,优先级列表会进行更新。
[0201]
请参阅图7,本技术实施例中规则检测的一个实施例,包括:
[0202]
701、处理器确定第五节点的位置;
[0203]
第五节点对应第五规则,根据第五规则对应初始报文空间范围确定第五节点在哈斯图中的位置。在已有的哈斯图中,从根节点开始往子节点遍历,通过比较第五节点的初始报文空间范围与已有节点的初始报文空间范围,确定第五节点的位置。
[0204]
702、处理器确定第五节点的当前优先级;
[0205]
根据第五节点的位置,确定第五节点的父节点,若第五节点没有父节点,则可以确定第五当前优先级为第五初始优先级。若第五节点有父节点,则需要根据第五规则对应的第五初始优先级与第五节点的父节点的当前优先级的关系,确定第五当前优先级。具体的确定方式与图4所示实施例中的步骤404类似,此处不再赘述。
[0206]
703、处理器更新优先级列表;
[0207]
第五节点添加到哈斯图中时,优先级列表会创建一条新的索引,用来存储第五初始优先级和第五初始优先级对应的目标值,以及指示实际使用优先级为第五初始优先级的
节点是哪些。
[0208]
第五节点对应的当前优先级的不同会使得更新后的优先级列表有所不同,添加第五节点可能会改变第五节点的后代节点的当前优先级,从而改变该后代节点在添加第五节点之前对应的优先级,也可能不会改变第五节点的后代节点的当前优先级,具体此处不做限定。添加第五节点可能还会改变第五节点的当前优先级,第五节点的当前优先级可能与第五节点的初始优先级相同,也可能会不同,取决于第五初始优先级与第五节点的父节点的当前优先级的关系,具体此处不做限定。但需要注意的是,初始优先级为n(n为大于或等于1的正整数)的目标值始终为所有当前优先级为n的规则对应的报文空间大小之和。
[0209]
本技术实施例中,通过引入规则的优先级进行异常规则的检测,增加了异常规则检测的覆盖度。
[0210]
进一步的,在优先级列表中存储目标值,并且在添加节点的过程中更新优先级列表,提升了方案的灵活性和可实现性。
[0211]
在具体应用本技术实施例使用的规则检测方法时,还可以通过比较父子节点间的初始优先级来检测异常,具体的,请参阅图8,本技术实施例中规则检测的一个实施例,包括:
[0212]
801、处理器获取第一初始优先级;
[0213]
acl中每条规则都有与之对应的初始优先级,表示的是该规则在配置时对应的优先级。处理器有多种方式获取第一初始优先级,可以从acl列表中获取,也可以从第一规则对应的第一节点中获取,具体此处不做限定。
[0214]
802、处理器获取第二初始优先级;
[0215]
处理器有多种方式获取第二初始优先级,可以从acl列表中获取,也可以从第二规则对应的第二节点中获取,具体此处不做限定。需要注意的是,第二节点在哈斯图数据结构中为第一节点的父节点。
[0216]
803、处理器确定第一初始优先级是否高于第二初始优先级,若是,执行步骤804,若否,执行步骤805;
[0217]
获取第一初始优先级和第二初始优先级之后,处理器需要确定第一初始优先级与第二初始优先级的高低关系。
[0218]
804、处理器确定第一规则与第二规则之间发生第二类异常;
[0219]
若第一初始优先级高于第二初始优先级,则确定第一规则与第二规则之间发生第二类异常。还可以结合第一节点和第二节点对应的转发动作,可以确定异常具体是第二类异常中的哪种情况,具体的确定步骤与图4所示实施例中的步骤406类似,此处不再赘述。
[0220]
805、处理器确定第一规则与第二规则之间发生第一类异常;
[0221]
若第一初始优先级低于第二初始优先级,则确定第一规则与第二规则之间发生第一类异常。还可以结合第一节点和第二节点对应的转发动作,可以确定异常具体是第一类异常中的哪种情况,具体的确定步骤与图4所示实施例中的步骤409类似,此处不再赘述。
[0222]
本技术实施例中,通过引入规则的优先级进行异常规则的检测,增加了异常规则检测的覆盖度。
[0223]
进一步的,通过比较子节点的初始优先级与父节点的初始优先级之间的高低关系,可以确定子节点对应规则与父节点对应规则之间是否发生第二类异常,确定是否发生
异常的方式简单,节省步骤。
[0224]
下面对本技术实施例中规则检测装置进行描述:
[0225]
请参阅图9,图9为本技术实施例中规则检测装置900的一个示意图,本技术中规则检测装置900的一个实施例包括:
[0226]
获取单元901,用于获取第一规则对应的第一初始优先级,以及获取第二规则对应的第二当前优先级。
[0227]
确定单元902,用于根据第一初始优先级,第二当前优先级,和第一规则与第二规则的包含关系,确定第一规则对应的第一当前优先级。还用于根据第一初始优先级和第一当前优先级,确定第一规则是否发生异常。
[0228]
在本技术的一些可选实施例中,确定单元902,还用于:
[0229]
根据第一规则对应的第一初始报文空间范围,和第二规则对应的第二初始报文空间范围,确定第一规则与第二规则的包含关系,第一初始报文空间范围包括每个第一特征的值域,第二初始报文空间范围包括每个第二特征的值域。
[0230]
若第二初始报文空间范围包含第一初始报文空间范围,则确定第二规则包含第一规则,第二节点在哈斯图数据结构中为第一节点的祖先节点,第一规则对应于哈斯图数据结构中的第一节点,第二规则对应于哈斯图数据结构中的第二节点。
[0231]
在本技术的一些可选实施例中,确定单元902,还用于:
[0232]
若第二节点在哈斯图数据结构中为第一节点的父节点,且第二节点为至少一个父节点中优先级最高的节点,则确定第一初始优先级是否高于第二当前优先级。
[0233]
若第一初始优先级高于第二当前优先级,则确定第一当前优先级为第一初始优先级。
[0234]
若第一初始优先级低于第二当前优先级,则确定第一当前优先级为第二当前优先级。
[0235]
在本技术的一些可选实施例中,规则检测装置900还包括处理单元903。
[0236]
确定单元902,还用于根据哈斯图数据结构确定第一目标节点,第一目标节点对应的当前优先级与第一初始优先级相同。还用于确定第一目标节点对应的初始报文空间大小,初始报文空间大小表示第一目标节点对应的至少一个元素数量,每个元素数量对应于一个元素类型。
[0237]
获取单元901,还用于根据哈斯图数据结构获取第一目标节点的子节点的报文空间大小,子节点的报文空间大小表示子节点与子节点的后代节点之间未重合的元素数量。
[0238]
确定单元902,还用于根据初始报文空间大小以及子节点的报文空间大小,确定第一目标节点的报文空间大小,第一目标节点的报文空间大小表示第一目标节点与第一目标节点的后代节点之间未重合的元素数量。
[0239]
处理单元903,用于对第一目标节点的报文空间大小进行求和,得到第一初始优先级对应的第一目标值。
[0240]
确定单元902,还用于根据第一初始优先级,第一当前优先级,和第一目标值确定第一规则是否异常;
[0241]
若第一初始优先级与第一当前优先级不同,且第一目标值为0,则确定第一规则与第三规则之间发生异常,第三规则对应的第三节点在哈斯图数据结构中为第一节点的祖先
节点。若第一初始优先级与第一当前优先级相同,且第一目标值为0,则确定第一规则与第四规则之间发生异常,第四规则对应的第四节点在哈斯图中为第一节点的后代节点。
[0242]
在本技术的一些可选实施例中,确定单元902,还用于根据第二当前优先级确定第三规则,第三规则对应的第三初始优先级与第二当前优先级相同。
[0243]
获取单元901,还用于获取第一规则对应的第一转发动作,以及获取第三规则对应的第二转发动作。
[0244]
确定单元902,还用于若第一初始优先级与第一优先级不同,且第一目标值为0,且第一转发动作与第二转发动作相同,则确定第一规则与第三规则之间发生第一类冗余异常。若第一初始优先级与第一优先级不同,且第一目标值为0,且第一转发动作与第二转发动作不同,则确定第一规则与第三规则之间发生屏蔽异常。
[0245]
在本技术的一些可选实施例中,确定单元902,还用于根据第四节点确定第四规则,第四节点在哈斯图数据结构中为第一节点的后代节点,且第四节点对应的第四当前优先级高于第一当前优先级。确定第一规则与第四规则之间发生多重屏蔽异常。
[0246]
在本技术的一些可选实施例中,获取单元901,还用于根据优先级列表获取第一初始优先级对应的第一目标值,优先级列表包括k个初始优先级、k个目标值以及k个节点,初始优先级、目标值与k个节点之间具有一一对应的关系,k为大于或等于1的整数。
[0247]
在本技术的一些可选实施例中,处理单元903,还用于在哈斯图数据结构中添加第五规则对应的第五节点;
[0248]
确定单元902,还用于根据第二目标节点确定第五初始优先级对应的第二目标值,第二目标节点的当前优先级与第五初始优先级相同;
[0249]
处理单元903,还用于在待更新优先级列表中存储第五节点对应的第五初始优先级和第二目标值,并根据第二目标值更新待更新优先级列表,得到优先级列表。
[0250]
本实施例中,规则检测装置可以执行前述图4,图5,图6,或图7所示实施例中处理器所执行的操作,具体此处不再赘述。
[0251]
请参阅图10,图10为本技术实施例中规则检测装置1000的一个示意图,本技术中规则检测装置1000的一个实施例包括:
[0252]
获取单元1001,用于获取第一规则对应的第一初始优先级,第一规则对应于哈斯图数据结构中的第一节点,第一初始优先级存储于第一节点中。
[0253]
获取单元1001,还用于获取第二节点对应的第二初始优先级,第二节点在哈斯图数据结构中为第一规则节点的父节点。
[0254]
确定单元1002,用于根据第一初始优先级和第二初始优先级,确定第一规则与第二规则之间是否发生异常。
[0255]
在本技术的一些可选实施例中,确定单元1002,还用于若第一初始优先级高于第二初始优先级,则确定第一规则与第二规则之间发生异常。
[0256]
在本技术的一些可选实施例中,获取单元1001,还用于获取第一规则对应的第一转发动作,以及获取第二规则对应的第二转发动作。
[0257]
确定单元1002,还用于若第一转发动作与第二转发动作相同,则确定第一规则与第二规则之间发生第二类冗余异常。若第一转发动作与第二转发动作不同,则确定第一规则与第二规则之间发生泛化异常。
[0258]
本实施例中,规则检测装置可以执行前述图8所示实施例中处理器所执行的操作,具体此处不再赘述。
[0259]
图11是本技术实施例提供的一种计算机设备的结构示意图,该计算机设备1100可以包括一个或一个以上中央处理器(central processing units,cpu)1101和存储器1105,该存储器1105中存储有一个或一个以上的应用程序或数据。
[0260]
其中,存储器1105可以是易失性存储或持久存储。存储在存储器1105的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器1101可以设置为与存储器1105通信,在计算机设备1100上执行存储器1105中的一系列指令操作。
[0261]
计算机设备1100还可以包括一个或一个以上电源1102,一个或一个以上有线或无线网络接口1103,一个或一个以上输入输出接口1104,和/或,一个或一个以上操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等。
[0262]
该计算机设备1100可以执行前述图2至图7所示实施例中处理器所执行的操作,具体此处不再赘述。
[0263]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0264]
图12是本技术实施例提供的一种计算机设备的结构示意图,该计算机设备1200可以包括一个或一个以上中央处理器(central processing units,cpu)1201和存储器1205,该存储器1205中存储有一个或一个以上的应用程序或数据。
[0265]
其中,存储器1205可以是易失性存储或持久存储。存储在存储器1205的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器1201可以设置为与存储器1205通信,在计算机设备1200上执行存储器1205中的一系列指令操作。
[0266]
计算机设备1200还可以包括一个或一个以上电源1202,一个或一个以上有线或无线网络接口1203,一个或一个以上输入输出接口1204,和/或,一个或一个以上操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等。
[0267]
该计算机设备1200可以执行前述图8所示实施例中处理器所执行的操作,具体此处不再赘述。
[0268]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0269]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0270]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0271]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0272]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0273]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献