CN102811227A - IPsec协议下标准方式ACL规则的一种管理机制 - Google Patents
IPsec协议下标准方式ACL规则的一种管理机制 Download PDFInfo
- Publication number
- CN102811227A CN102811227A CN 201210313161 CN201210313161A CN102811227A CN 102811227 A CN102811227 A CN 102811227A CN 201210313161 CN201210313161 CN 201210313161 CN 201210313161 A CN201210313161 A CN 201210313161A CN 102811227 A CN102811227 A CN 102811227A
- Authority
- CN
- China
- Prior art keywords
- rule
- node
- rule index
- source address
- isn
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了IPsec协议下标准方式ACL规则的一种管理机制,属于数据通信领域。该方法将标准方式ACL规则中的地址信息划分为段落码和段内码两部分,定义了标准方式ACL规则的规则索引,并将标准方式ACL规则的管理分为源地址范围规则索引和目的地址范围规则索引两个独立部分,在同一个二叉树数据结构中进行。该方法涉及的数据结构包括了二叉树、段内码链表和规则索引数组三部分。本发明的显著特点是:对于具有任意地址范围、重叠地址范围、多级地址范围的标准方式ACL规则,实现其增加、查找和删除操作方便快捷,系统开销小。
Description
技术领域
本发明涉及IPsec协议下标准方式ACL规则的一种处理机制,一种基于二叉树和双向链表的数据结构,支持任意地址范围、重叠地址范围、多级地址范围ACL规则的增加、删除与查找操作。
背景技术
随着现代信息技术的高速发展,网络已经普及到社会的各个方面,但是网络在提供开放和共享资源的同时,也不可避免的存在着安全隐患。如何确保信息系统安全,有效地保障机密信息在网络中安全传输,已经成为人们日益关注的焦点。本发明涉及的IPsec(IP Security)协议依据密码技术提供的认证和加密机制,是一个应用广泛的三层安全协议。
IPsec协议中的安全联盟(Security Associations, SA)是为安全目的创建的一个单向逻辑链接,即针对一条特定的数据流,SA既记录该数据流的特点(如地址信息、端口信息、上层协议等),也记录对该数据流进行安全处理的策略、算法和数据,所有经过相同SA的数据流会得到相同的安全保护。
访问控制列表(Access Control List, ACL)是Cisco公司为网际操作系统提供的一种访问控制技术。ACL使用包过滤技术,在路由器上读取第三层和第四层包头中源地址、目的地址、源端口、目的端口、协议号等信息,根据预先定义的规则对包进行过滤,从而达到访问控制的目的。IPsec协议中的ACL规则仅通过地址信息对IP包进行过滤,具体而言,IPsec协议中的ACL规则定义了允许/阻止对系统进行访问的源/目的地址信息。在实际应用中,一个ACL下可以定义多条不同的ACL规则,用于管理不同数据流,此外,一个ACL有标准、聚合、主机三种定义方式,在实际配置中,对于主机方式的ACL,安全系统针对每个具体的源地址/目的地址生成SA;对于聚合方式的ACL,安全系统只生成一个SA,该SA保护组内所有数据流;对于标准方式的ACL,安全系统生成对应每个ACL的规则,即每条数据流生成一个SA。
在处理IP报文时,IPsec协议根据该报文的地址信息查找属于哪个ACL规则,从而确定与该数据流对应的SA,以便对IP报文进行安全处理,封装发送。因此,如何通过IP报文中的地址信息找到与之匹配的ACL规则是IPsec协议实现的关键之一,其核心是标准方式ACL规则的查找,因为标准方式ACL是一个规则对应一个SA,即一条数据流对应一个SA,而数据流的源地址和目的地址位于一个范围内,例如:rule 1 permit ip source 192.128.64.23-192.128.64.79 destination 192.128.65.23-192.128.65.79。
针对标准方式ACL规则管理的常用方法是采用Radix树,其优点是性能较好,Radix树的扩大对性能影响较小,内存占用较少,添加/删除节点方便,但是Radix树只支持子网掩码方式的地址范围查找,不能用于标准方式ACL规则中任意地址范围的查找。针对任意地址范围查找,通常采用HIPACK方法,其基本原理是根据各条规则的地址范围将整个地址范围分段,既满足源地址范围,又满足目的地址范围的规则即为所求规则。该方法的优点是性能稳定,一般采用折半查找方式定位范围;能满足任意地址范围查找,支持多级查找,但HIPACK方法内存占用高;多级查找时,优先级难以确定;添加/删除操作复杂、效率低,甚至可能需要重构整个范围表。
发明内容
鉴于常用标准方式ACL规则管理方法存在的不足,本发明的目的是设计一种数据结构,该数据结构支持具有任意地址范围、重叠地址范围、多级地址范围(IPsec协议标准方式ACL规则是两级)的ACL规则的添加、查找与删除操作,能有效解决IPsec协议中标准方式ACL规则的管理问题。
为了实现上述目的,本发明针对一个标准方式ACL规则,采用以下步骤进行处理:
步骤一、确定标准方式ACL规则中地址范围的段落码和段内码:设一个地址范围为W至V,将W和V中首个值不等的比特之前的部分定义为地址范围的段落码,剩余部分定义为地址范围的段内码;一个标准方式ACL规则包括源地址范围和目的地址范围,按照上述定义分别确定源地址范围段落码和段内码以及目的地址范围段落码和段内码;对于特定地址范围,其段落码是一固定值(也可能为零),段内码是一个范围,例如地址范围192.128.64.23-192.128.64.79,其段落码和段内码如图1所示。
步骤二、确定标准方式ACL规则的规则索引:将标准方式ACL规则的规则索引分为源地址范围规则索引和目的地址范围规则索引,定义为RuleIndex= Type+RuleNumber,其中RuleIndex为规则索引;Type用于区分该规则索引的类型,Type=00表示源地址范围类型,Type=01表明目的地址范围类型;RuleNumber为该规则索引的规则号。
为了实现上述目的,本发明设计的数据结构的特征在于:数据结构由二叉树、段内码链表和规则索引数组组成,段内码链表挂接在二叉树节点上,规则索引数组挂接在段内码节点上,如图2所示,二叉树节点上的数字表示节点的深度。二叉树节点分为内部节点和外部节点,其区别在于外部节点指向下一级节点的子树指针为空。二叉树节点的数据字段中有指向其父节点的指针gz_parent,指向左子树的指针gz_L,指向右子树的指针gz_R,指示在该节点处的比特测试位的gz_bit,还有指向段内码链表的指针gz_dnmlist。在标准方式ACL规则的添加、查找、删除过程中,二叉树节点作为一个路径节点存在。从二叉树的顶点开始,根据所经历节点中指示的比特测试位gz_bit进行测试,由源地址范围段落码在该比特测试位的取值是1还是0确定是继续往右还是继续往左遍历,直到段落码的最后一个比特。
数据结构中段内码节点记录了地址范围的段内码信息。由IP地址的特点可知,不同地址范围段落码可能相同,例如192.128.64.23-192.128.64.79和192.128.64.27-192.128.64.76,其段落码都为11000000 10000000 01000000 0。对于这种情况,我们利用同一个二叉树节点下挂的不同段内码节点区分,对于上述的两个地址范围,虽然其段落码相同,但段内码分别为0010111-1001111和0011011-1001100,在段内码链表中对应于两个不同节点。因此,通过一个二叉树节点和该节点下挂的一个段内码节点可以唯一确定一个地址范围。
数据结构中规则索引数组记录了规则的规则索引。在标准方式ACL规则中,一个规则包括了源地址范围和目的地址范围,可能出现不同规则的源地址范围和目的地址范围相同的情况,此时,我们通过同一个段内码节点下挂的规则索引数组中的不同规则索引进行区分,即同一个段内码节点下的规则索引数组记录了具有相同地址范围信息的不同规则索引,例如:Rule 1 permit IP source 192.128.64.23-192.128.64.79 destination 195.128.64.27-195.128.64.76,Rule 21 permit IP source 192.128.64.23-192.128.64.79 destination 193.129.68.27-193.129.68.79,Rule 34 permit IP source 194.139.78.27-194.139.78.79 destination 192.128.64.23-192.128.64.79三个规则中,规则1的源地址范围、规则21的源地址范围、规则34的目的地址范围均为192.128.64.23-192.128.64.79,其规则索引分别为:00000001,00010101,01100010,三个规则索引记录在同一个段内码节点下挂的规则索引数组中,如图3所示。
标准方式ACL规则的添加包括以下步骤:
S1、提取标准方式ACL规则中源地址范围的段落码、段内码、规则索引;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一个比特,这条自上而下的遍历路径由段落码决定,遍历路径上最后一个二叉树节点即为该段落码确定的段内码节点在二叉树中的位置;在遍历过程中,若根据段落码某个比特指示的子树节点不存在,则需要添加该节点;
S3、写入源地址范围规则索引,包括以下步骤:
S31、判断S2所确定的二叉树节点下挂的段内码链表是否为空,若为空,则创建段内码为源地址范围段内码的节点并挂接到二叉树节点上,再将源地址范围规则索引写入该节点下挂的规则索引数组;
S32、若段内码链表不为空,则遍历该链表中的节点,通过比较段内码判断链表中是否已经添加了段内码为该源地址范围段内码的节点,若没有添加,则创建段内码为源地址范围段内码的节点,添加到链表,并将源地址范围规则索引写入其规则索引数组;
S33、若段内码链表中已经添加了段内码为该源地址范围段内码的节点,则需要比较规则索引值判断新添加的源地址范围规则索引是否已经存在于该节点下挂的规则索引数组中,若存在,属于相同规则重复添加,不处理;若不存在,表示有地址范围相同但规则索引不同的新规则加入,将该源地址范围规则索引写入规则索引数组;
S4、以上过程将一个标准方式ACL规则的源地址范围规则索引写入数据结构,该规则的目的地址范围规则索引的写入过程与源地址范围规则索引相同,两个规则索引都写入后该标准方式ACL规则的添加完成。
标准方式ACL规则的查找包括以下步骤:
S1、以源地址作为查找键进行规则索引查找,由以下步骤组成:
S11、从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址S在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到到达根据源地址S的某个比特指示的子树不存在的节点为止,用L表示这个自上而下的遍历路径;
S12、设路径L是通过源地址S的前n个比特决定的遍历路径,第1个节点到第i个节点的遍历路径为,,第i个二叉树节点的高度为,令源地址S的前个比特为,其余个比特为,则对应路径;
S13、对于路径L上的第i个节点,首先判断该节点下挂的段内码链表是否为空,若为空,则沿着路径L继续向下,若不为空,遍历该段内码链表的全部节点,判断源地址S的部分是否包含在节点的段内码中,若该段内码链表中不存在包含的节点,则沿着路径L继续向下,若存在包含的节点,则将这些节点下挂的规则索引数组中源地址范围类型的规则索引归入规则索引集A中,规则索引集A记录了路径L上所有满足源地址S的规则索引;
S2、以目的地址作为查找键的规则索引查找与以源地址作为查找键的规则索引查找在同一颗二叉树中进行,过程相同,用B表示满足目的地址D的规则索引集;
S3、取规则索引集A和B的交集,得到既满足源地址S又满足目的地址D的规则C,即。
标准方式ACL规则的删除包括以下步骤:
S1、提取标准方式ACL规则中源地址范围的段落码、段内码、规则索引;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址范围段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一比特,这条自上而下的遍历路径由段落码决定,遍历路径上最后一个二叉树节点即为该段落码确定的段内码节点在二叉树中的位置;
S3、删除源地址范围规则索引:遍历S2所确定的二叉树节点下挂的链表中的段内码节点(段内码链表为空时不处理),判断是否存在段内码和当前待删除的段内码相等的节点,若不存在,直接返回,若存在,则通过比较规则索引值判断该节点下挂的规则索引数组中是否存在与当前待删除的规则索引相等的索引,若不存在,直接返回;若存在,将该规则索引从规则索引数组中删除;
S4、删除无效的段内码节点或二叉树节点:规则索引被删除后,若规则索引数组不为空,则直接返回,否则将挂接它的段内码节点删除;段内码节点删除后,判断段内码链表是否为空,若不为空,直接返回;若为空,继续判断挂接该链表的二叉树节点是否有子树,若有,直接返回,若没有,记录该节点的父节点,删除该节点,并将其父节点中指向该节点的指针字段置为空;二叉树节点删除后,再继续对其父节点进行相同的判断和处理,这样从源地址范围规则索引所在的二叉树节点自下而上删除冗余的二叉树节点;
S5、以上过程将一个标准方式ACL规则的源地址范围规则索引从数据结构中删除,该规则的目的地址范围规则索引的删除过程与源地址范围规则索引相同,两个规则索引都删除后该标准方式ACL规则的删除完成。
综上所述,本发明的有益效果是:
1、支持具有任意地址范围规则的查找,支持具有重叠地址范围规则的查找,支持具有多级地址范围规则的查找,能有效解决IPsec协议中标准方式ACL规则的管理。
2、数据结构以二叉树和双向链表为基础,结构简单、应用广泛,规则的添加、删除和查找操作方便;内存占用与规则数有关,资源消耗较少;二叉树规模的扩大对性能影响非常小,段内码链表和规则索引数组对性能的影响小。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明中地址范围段落码和段内码划分;
图2是本发明中数据结构的模型;
图3是本发明数据结构中同一段内码节点下记录多个规则索引;
图4是本发明中标准方式ACL规则的添加流程图;
图5是本发明中通过段落码确定二叉树节点的遍历路径;
图6是本发明中将规则索引写入特定段内码节点下挂的规则索引数组;
图7是本发明中查找满足源地址的规则索引集A的流程图;
图8是本发明中通过源地址查找规则索引集的遍历路径;
图9是本发明中查找规则索引集A的遍历路径上段内码节点及其下挂的规则索引数组中的信息;
图10是本发明中标准方式ACL规则的删除流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
IPsec协议下标准方式ACL规则的一种管理机制,其特征在于对一个标准方式ACL规则,首先采用以下步骤处理:
步骤一、确定规则中地址范围的段落码和段内码:设一个地址范围为W至V,将W和V中首个值不等的比特之前的部分定义为地址范围的段落码,剩余部分定义为地址范围的段内码;一个标准方式ACL规则包括源地址范围和目的地址范围,按照上述定义分别确定源地址范围段落码和段内码以及目的地址范围段落码和段内码;
步骤二、确定规则的规则索引:将标准方式ACL规则的规则索引分为源地址范围规则索引和目的地址范围规则索引,定义为RuleIndex= Type+RuleNumber,其中RuleIndex为规则索引;Type用于区分该规则索引的类型,Type=00表示源地址范围类型,Type=01表示目的地址范围类型;RuleNumber为该规则索引的规则号。
IPsec协议下标准方式ACL规则的一种管理机制涉及的数据结构具有以下特征:数据结构由二叉树、段内码链表和规则索引数组组成,段内码链表挂接在二叉树节点上,规则索引数组挂接在段内码节点上;在二叉树中,每个节点的数据字段既有指向下级节点的子树指针、指向上级节点的父指针,也有指向段内码链表的指针;在段内码链表中,节点记录了某个地址范围的段内码信息,并且下挂有满足这个段内码节点的规则索引数组;规则索引数组记录了标准方式ACL规则的规则索引。
基于上述对标准方式ACL规则的处理以及数据结构的特征,以rule 1 permit IP source 192.128.64.23-192.128.64.79 destination 192.128.65.23-192.128.65.79为例,规则的添加流程如图4所示,主要包括以下步骤:
S1、计算ACL规则中源地址范围的段落码、段内码、规则索引:源地址范围192.128.64.23-192.128.64.79的段落码为11000000 10000000 01000000 0,段内码为0010111-1001111,规则索引为00000001;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址范围段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一个比特,这个自上向下的遍历路径由段落码决定,该遍历路径上最后一个二叉树节点即为段内码节点在二叉树中的位置;在遍历过程中,若根据段落码某个比特指示的子树节点不存在,则需要添加该节点;如图5所示,段落码11000000 10000000 01000000 0将段内码节点在二叉树中的位置定位于节点25,节点25在二叉树中的深度为25,深度值等于段落码长度;
S3、写入源地址范围规则索引,包括以下步骤:
S31、判断S2所确定的二叉树节点下挂的段内码链表是否为空,若为空,则创建段内码为源地址范围段内码0010111-1001111的节点挂接在二叉树节点上,并将源地址范围规则索引00000001写入该节点下挂的规则索引数组;
S32、若段内码链表不为空,则遍历该链表中的节点,通过比较段内码判断该链表中是否已经添加了段内码为源地址范围段内码0010111-1001111的节点,若没有添加,则创建段内码为0010111-1001111的节点并添加到段内码链表,再将源地址范围规则索引00000001写入其规则索引数组;
S33、若段内码链表中已经添加了源地址范围段内码0010111-1001111,则需要通过比较规则索引值判断新添加的源地址范围规则索引00000001是否已经存在于该节点下挂的规则索引数组中,若存在,属于相同规则的重复添加,不处理;若不存在,表示有地址范围相同但规则索引不同的新规则加入,则将该索引值00000001写入规则索引数组中,如图6所示;
S4、以上过程将一个标准方式ACL规则的源地址范围规则索引写入数据结构,该规则的目的地址范围规则索引的写入过程与源地址范围规则索引相同,两个规则索引都写入后该标准方式ACL规则的添加完成。
基于对标准方式ACL规则的处理以及数据结构的特征,假设存在一条源地址S为192.128.64.98,目的地址D为192.128.64.25的数据流,该数据流的规则查找过程包括以下步骤:
S1、以源地址作为查找键进行规则索引的查找,其流程如图7所示,由以下步骤组成:
S11、从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址S在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到到达根据源地址S的某个比特指示的子树不存在的节点为止,用L表示这个自上而下的遍历路径,对于源地址11000000 10000000 01000000 01100010,其遍历路径如图8所示。
S12、设路径L是通过源地址S的前n个比特决定的遍历路径,第1个节点到第i个节点的遍历路径为,,第i个二叉树节点的高度为,令源地址S的前个比特为,其余个比特为,则对应路径;
S13、对于路径L上的第i个节点,首先判断该节点下挂的段内码链表是否为空,若为空,则沿着路径L继续向下,若不为空,遍历该段内码链表的全部节点,判断源地址S的部分是否包含在节点的段内码中,若该段内码链表中不存在包含的节点,则沿着路径L继续向下,若存在包含的节点,则将这些节点下挂的规则索引数组中源地址范围类型的规则索引归入规则索引集A中,规则索引集A记录了路径L上所有满足源地址S的规则索引;
设在遍历路径L上节点19、25、26和27下挂的段内码链表不为空,段内码链表中各自只有一个段内码节点,4个段内码节点记录的段内码信息以及下挂的规则索引数组如图9所示。节点19对应地址范围192.128.64.10-192.128.87.128, 节点25对应地址范围192.128.64.23-192.128.87.79, 节点26对应地址范围192.128.64.84-192.128.87.99, 节点27对应地址范围192.128.64.97-192.128.87.117。包含源地址192.128.64.98的地址范围有192.128.64.10-192.128.87.128, 192.128.64.84-192.128.87.99, 192.128.64.97-192.128.87.117,对应二叉树节点19,26,27,这3个节点下挂的规则索引数组中中满足源地址类型的规则索引有100000,100001,100011,由此求出规则索引集A={100000,100001,100011};
S2、以目的地址作为查找键的规则索引查找与以源地址作为查找键的规则索引查找在同一颗二叉树中进行,过程相同,设由此求出的满足目的地址D的规则索引集B={100001,100101,101011};
S3、取规则索引集A和B的交集,得到既满足源地址S又满足目的地址D的规则C,即={100001}。
基于对标准方式ACL规则的处理以及数据结构的特征,以rule 1 permit IP source 192.128.64.23-192.128.64.79 destination 192.128.65.23-192.128.65.79为例,规则的删除流程如图10所示,包括以下步骤:
S1、计算ACL规则中源地址范围的段落码、段内码、规则索引:源地址范围192.128.64.23-192.128.64.79的段落码为11000000 10000000 01000000 0,段内码为0010111-1001111,规则索引为00000001;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址范围段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一比特,这条自上而下的遍历路径由段落码决定,遍历路径上最后一个二叉树节点即为该段落码确定的段内码节点在二叉树中的位置。如图5,对于段落码11000000 10000000 01000000 0,将源地址范围段内码节点在二叉树中的位置定位到图中所示的节点25;
S3、删除源地址范围规则索引:遍历S2所确定的二叉树节点下挂的链表中的段内码节点(段内码链表为空时不处理),判断是否存在段内码和当前待删除的段内码相等的节点,若不存在,直接返回,若存在,则通过比较规则索引值判断该节点下挂的规则索引数组中是否存在与当前待删除的规则索引相等的索引,若不存在,直接返回;若存在,将该规则索引从规则索引数组中删除;
S4、删除无效的段内码节点或二叉树节点:规则索引被删除后,若规则索引数组不为空,则直接返回,否则将挂接它的段内码节点删除;段内码节点删除后,判断段内码链表是否为空,若不为空,直接返回;若为空,继续判断挂接该链表的二叉树节点是否有子树,若有,直接返回,若没有,记录该节点的父节点,删除该节点,并将其父节点中指向该节点的指针字段置为空;二叉树节点删除后,再继续对其父节点进行相同的判断和处理,这样从源地址范围规则索引所在的二叉树节点自下而上删除冗余的二叉树节点;
S5、以上过程将一个标准方式ACL规则的源地址范围规则索引从数据结构中删除,该规则的目的地址范围规则索引的删除过程与源地址范围规则索引相同,两个规则索引都删除后该标准方式ACL规则的删除完成。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (5)
1.IPsec协议下标准方式ACL规则的一种管理机制,其特征在于对一个标准方式ACL规则,按照以下步骤处理:
步骤一、确定标准方式ACL规则中地址范围的段落码和段内码:设一个地址范围为W至V,将W和V中首个值不等的比特之前的部分定义为地址范围的段落码,剩余部分定义为地址范围的段内码;一个标准方式ACL规则包括源地址范围和目的地址范围,按照上述定义分别确定源地址范围段落码和段内码以及目的地址范围段落码和段内码;
步骤二、确定标准方式ACL规则的规则索引:将标准方式ACL规则的规则索引分为源地址范围规则索引和目的地址范围规则索引,定义为RuleIndex= Type+RuleNumber,其中RuleIndex为规则索引;Type用于区分该规则索引的类型,Type=00表示源地址范围类型,Type=01表示目的地址范围类型;RuleNumber为该规则索引的规则号。
2.IPsec协议下标准方式ACL规则的一种管理机制,涉及的数据结构具有以下特征:数据结构由二叉树、段内码链表和规则索引数组组成,段内码链表挂接在二叉树节点上,规则索引数组挂接在段内码节点上;在二叉树中,每个节点的数据字段既有指向下级节点的子树指针、指向上级节点的父指针,也有指向段内码链表的指针;在段内码链表中,节点记录了某个地址范围的段内码信息,并且下挂有满足这个段内码节点的规则索引数组;规则索引数组记录了标准方式ACL规则的规则索引。
3.根据权利要求1所述的对标准方式ACL规则的处理步骤,以及权利要求2所述的数据结构,规则的添加包括以下步骤:
S1、按照权利要求1获取标准方式ACL规则中源地址范围的段落码、段内码、规则索引;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一个比特,这条自上而下的遍历路径由段落码决定,遍历路径上最后一个二叉树节点即为该段落码确定的段内码节点在二叉树中的位置;遍历过程中,若根据段落码某个比特指示的子树节点不存在,则需要添加该节点;
S3、写入源地址范围规则索引,其特征在于包括以下步骤:
S31、判断S2所确定的二叉树节点下挂的段内码链表是否为空,若为空,则创建段内码为源地址范围段内码的节点并挂接到二叉树节点上,再将源地址范围规则索引写入该节点下挂的规则索引数组;
S32、若段内码链表不为空,则遍历该链表中的节点,通过比较段内码判断链表中是否已经添加了段内码为该源地址范围段内码的节点,若没有添加,则创建段内码为源地址范围段内码的节点,添加到链表,并将源地址范围规则索引写入其规则索引数组;
S33、若段内码链表中已经添加了段内码为该源地址范围段内码的节点,则需要比较规则索引值判断新添加的源地址范围规则索引是否已经存在于该节点下挂的规则索引数组中,若存在,属于相同规则重复添加,不处理;若不存在,表示有地址范围相同但规则索引不同的新规则加入,将该源地址范围规则索引写入规则索引数组;
S4、以上过程将一个标准方式ACL规则的源地址范围规则索引写入数据结构,该规则的目的地址范围规则索引的写入过程与源地址范围规则索引相同,两个规则索引都写入后该标准方式ACL规则的添加完成。
4.根据权利要求1所述的对标准方式ACL规则的处理步骤,以及权利要求2所述的数据结构,规则的查找包括以下步骤:
S1、以源地址作为查找键进行规则索引查找,由以下步骤组成:
S11、从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址S在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到到达根据源地址S的某个比特指示的子树不存在的节点为止,用L表示这个自上而下的遍历路径;
S12、设路径L是通过源地址S的前n个比特决定的遍历路径,第1个节点到第i个节点的遍历路径为,,第i个二叉树节点的高度为,令源地址S的前个比特为,其余个比特为,则对应路径;
S13、对于路径L上的第i个节点,首先判断该节点下挂的段内码链表是否为空,若为空,则沿着路径L继续向下,若不为空,遍历该段内码链表的全部节点,判断源地址S的部分是否包含在节点的段内码中,若该段内码链表中不存在包含的节点,则沿着路径L继续向下,若存在包含的节点,则将这些节点下挂的规则索引数组中源地址范围类型的规则索引归入规则索引集A中,规则索引集A记录了路径L上所有满足源地址S的规则索引;
S2、以目的地址作为查找键的规则索引查找与以源地址作为查找键的规则索引查找在同一颗二叉树中进行,过程相同,用B表示满足目的地址D的规则索引集;
S3、取规则索引集A和B的交集,得到既满足源地址S又满足目的地址D的规则C,即,获得与数据流相匹配的规则后,由标准方式ACL规则与SA(Security Associations)之间的关系就能确定满足该数据流的SA。
5.根据权利要求1所述的对标准方式ACL规则的处理步骤,以及权利要求2所述的数据结构,规则的删除包括以下步骤:
S1、按照权利要求1获取ACL规则中源地址范围的段落码、段内码、规则索引;
S2、确定源地址范围段内码节点在二叉树中的位置:从二叉树的顶点开始,根据所经历节点中指示的比特测试位进行测试,由源地址范围段落码在该比特测试位的取值是1还是0确定是继续向右还是继续向左遍历,直到段落码的最后一比特,这条自上而下的遍历路径由段落码决定,遍历路径上最后一个二叉树节点即为段落码确定的段内码节点在二叉树中的位置;
S3、删除源地址范围规则索引:遍历S2所确定的二叉树节点下挂的链表中的段内码节点(段内码链表为空时不处理),判断是否存在段内码和当前待删除的段内码相等的节点,若不存在,直接返回,若存在,则通过比较规则索引值判断该节点下挂的规则索引数组中是否存在与当前待删除的规则索引相等的索引,若不存在,直接返回;若存在,将该规则索引从规则索引数组中删除;
S4、删除无效的段内码节点或二叉树节点:规则索引被删除后,若规则索引数组不为空,则直接返回,否则将挂接它的段内码节点删除;段内码节点删除后,判断段内码链表是否为空,若不为空,直接返回;若为空,继续判断挂接该链表的二叉树节点是否有子树,若有,直接返回,若没有,记录该节点的父节点,删除该节点,并将其父节点中指向该节点的指针字段置为空;二叉树节点删除后,再继续对其父节点进行相同的判断和处理,这样从源地址范围规则索引所在的二叉树节点自下而上删除冗余的节点;
S5、以上过程将一个标准方式ACL规则的源地址范围规则索引从数据结构中删除,该规则的目的地址范围规则索引的删除过程与源地址范围规则索引相同,两个规则索引都删除后该标准方式ACL规则的删除完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210313161 CN102811227A (zh) | 2012-08-30 | 2012-08-30 | IPsec协议下标准方式ACL规则的一种管理机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210313161 CN102811227A (zh) | 2012-08-30 | 2012-08-30 | IPsec协议下标准方式ACL规则的一种管理机制 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102811227A true CN102811227A (zh) | 2012-12-05 |
Family
ID=47234802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201210313161 Pending CN102811227A (zh) | 2012-08-30 | 2012-08-30 | IPsec协议下标准方式ACL规则的一种管理机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102811227A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092678A (zh) * | 2014-07-02 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种访问控制列表的配置方法和装置 |
WO2015058697A1 (en) * | 2013-10-25 | 2015-04-30 | Hangzhou H3C Technologies Co., Ltd. | Sdn packet forwarding |
WO2015113046A1 (en) * | 2014-01-27 | 2015-07-30 | Rambus Inc. | Implementing access control by system-on-chip |
CN105812164A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN106302177A (zh) * | 2016-08-23 | 2017-01-04 | 杭州迪普科技有限公司 | 一种路由过滤规则的组织方法和装置 |
CN106649131A (zh) * | 2016-12-29 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
CN106685786A (zh) * | 2016-12-30 | 2017-05-17 | 盛科网络(苏州)有限公司 | 一种wlan系统中多级acl的芯片实现方法 |
US9853974B2 (en) | 2014-01-27 | 2017-12-26 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
CN108696492A (zh) * | 2017-04-12 | 2018-10-23 | 联芯科技有限公司 | Ip报文的处理方法与装置 |
CN108965337A (zh) * | 2018-09-17 | 2018-12-07 | 新华三信息安全技术有限公司 | 规则匹配方法、装置、防火墙设备及机器可读存储介质 |
CN110896380A (zh) * | 2019-11-28 | 2020-03-20 | 迈普通信技术股份有限公司 | 流表筛查方法、装置、电子设备及可读存储介质 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、系统及电子设备和存储介质 |
CN112084197A (zh) * | 2020-09-16 | 2020-12-15 | 艾体威尔电子技术(北京)有限公司 | 一种emv协议库中数据的存储方法 |
WO2021115160A1 (zh) * | 2019-12-09 | 2021-06-17 | 中兴通讯股份有限公司 | Acl规则管理方法、装置、计算机设备及计算机可读介质 |
-
2012
- 2012-08-30 CN CN 201210313161 patent/CN102811227A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015058697A1 (en) * | 2013-10-25 | 2015-04-30 | Hangzhou H3C Technologies Co., Ltd. | Sdn packet forwarding |
US10003533B2 (en) | 2013-10-25 | 2018-06-19 | Hewlett Packard Enterprise Development Lp | SDN packet forwarding |
WO2015113046A1 (en) * | 2014-01-27 | 2015-07-30 | Rambus Inc. | Implementing access control by system-on-chip |
US9853974B2 (en) | 2014-01-27 | 2017-12-26 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
US10482275B2 (en) | 2014-01-27 | 2019-11-19 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
CN104092678A (zh) * | 2014-07-02 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种访问控制列表的配置方法和装置 |
CN105812164B (zh) * | 2014-12-31 | 2019-07-23 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN105812164A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN106302177A (zh) * | 2016-08-23 | 2017-01-04 | 杭州迪普科技有限公司 | 一种路由过滤规则的组织方法和装置 |
CN106649131A (zh) * | 2016-12-29 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
CN106649131B (zh) * | 2016-12-29 | 2019-12-31 | 苏州浪潮智能科技有限公司 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
CN106685786A (zh) * | 2016-12-30 | 2017-05-17 | 盛科网络(苏州)有限公司 | 一种wlan系统中多级acl的芯片实现方法 |
CN106685786B (zh) * | 2016-12-30 | 2019-10-11 | 盛科网络(苏州)有限公司 | 一种wlan系统中多级acl的芯片实现方法 |
CN108696492A (zh) * | 2017-04-12 | 2018-10-23 | 联芯科技有限公司 | Ip报文的处理方法与装置 |
CN108965337A (zh) * | 2018-09-17 | 2018-12-07 | 新华三信息安全技术有限公司 | 规则匹配方法、装置、防火墙设备及机器可读存储介质 |
CN110896380A (zh) * | 2019-11-28 | 2020-03-20 | 迈普通信技术股份有限公司 | 流表筛查方法、装置、电子设备及可读存储介质 |
CN110896380B (zh) * | 2019-11-28 | 2021-09-17 | 迈普通信技术股份有限公司 | 流表筛查方法、装置、电子设备及可读存储介质 |
WO2021115160A1 (zh) * | 2019-12-09 | 2021-06-17 | 中兴通讯股份有限公司 | Acl规则管理方法、装置、计算机设备及计算机可读介质 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、系统及电子设备和存储介质 |
CN112084197A (zh) * | 2020-09-16 | 2020-12-15 | 艾体威尔电子技术(北京)有限公司 | 一种emv协议库中数据的存储方法 |
CN112084197B (zh) * | 2020-09-16 | 2023-10-31 | 艾体威尔电子技术(北京)有限公司 | 一种emv协议库中数据的存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102811227A (zh) | IPsec协议下标准方式ACL规则的一种管理机制 | |
CN104580027B (zh) | 一种OpenFlow报文转发方法及设备 | |
Afanasyev et al. | ndnSIM: NDN simulator for NS-3 | |
CN104012052B (zh) | 用于软件定义网络中的流管理的系统和方法 | |
CN104380658B (zh) | 流分类器、业务路由触发器、报文处理的方法和系统 | |
US20150131666A1 (en) | Apparatus and method for transmitting packet | |
CN102945249B (zh) | 一种策略规则匹配查询树生成方法、匹配方法及装置 | |
CN104202183B (zh) | 一种解决sdn流级别配置一致性更新的方法和装置 | |
CN102487374B (zh) | 一种访问控制列表实现方法及装置 | |
WO2013020002A1 (en) | Incremental update of rules for packet classification | |
CN103220255B (zh) | 一种实现单播反向路径转发urpf检查的方法及装置 | |
CN103546380B (zh) | 一种基于策略路由的报文转发方法和装置 | |
CN102611619B (zh) | 一种转发数据报文的方法和路由设备 | |
CN104283786B (zh) | 用于增加软件定义网络的可缩放性的系统和方法 | |
CN102427428A (zh) | 基于多域最长匹配的流识别方法及设备 | |
CN105429879A (zh) | 流表项查询方法、设备及系统 | |
CN107222342A (zh) | 一种集群管理网络配置方法 | |
CN105359472A (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN109600326A (zh) | 数据或报文转发的方法、节点和系统 | |
Hsieh et al. | Multiprefix trie: A new data structure for designing dynamic router-tables | |
CN103457864B (zh) | 处理路由下一跳的方法、装置及网络设备 | |
CN112437065B (zh) | Sdn环境下基于图形表示的策略冲突检测及解决方法 | |
CN104348725B (zh) | 基于流表的数据处理方法和装置 | |
CN106507507A (zh) | 一种无线网状网络拓扑结构搭建系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121205 |