一种访问控制列表acl行为集快速编码的方法

文档序号:7779927阅读:246来源:国知局
一种访问控制列表acl行为集快速编码的方法
【专利摘要】本发明提供一种快速的方法来加速完成对phase0的各chunk对应的输出值eqcID的计算,该方法包括输入数据处理、端点排序处理、规则池迭代处理三个步骤。通过采用排序并利用规则池迭代的方式对phase0阶段的chunk对应的查询结果eqcID进行求值。上述方法充分利用了访问控制条目本身的特点,深度挖掘相关信息,极大地减少了eqcID计算的步骤和索引的编译时间,加速了配置访问控制列表规则的生效,更好地保障网络设备的功能。
【专利说明】—种访问控制列表ACL行为集快速编码的方法
【技术领域】
[0001]本发明涉及一种访问控制列表(ACL)行为集快速编码的方法,更具体而言,涉及在访问控制列表采用快速有效的完成对快速查询表的编码技术。
【背景技术】
[0002]互联网,数据包分类技术是现代网络多样化服务的基础,而其中的访问控制列表技术更成为防火墙、路由器等一些网络核心设备中最为关键的技术,它对网络的控制、性能和安全会产生直接的影响。
[0003]RFC算法是个通用性较强的、速度快的多维数据包分类算法。对规则的宽度和维度有较好的扩展性;在进行分类查找时,查找性能不受规则数量和规则特征的影响。
[0004]RFC算法被分为P个阶段(Phase),每一个阶段由可并行查找的散列表组成。每次查找结果的值都比内存数据索引值要小,操作如下:在每一个阶段(PhaseO),将网络数据报文头中F个字段分成许多个块(chunk),每个chunk被用来作为并行查找的索引。例如有七个相等的chunk,每次查表的输出值被称为eqcID。下一阶段,每次用于查找散列映射表的索引值由前几个阶段的查找结果按照某种方式合并,并放入内存。在最后阶段,所得到的结果就是与数据包相匹配的最佳规则标识符classID。
[0005]而phaseO阶段的散列表的建立是来源于用户对网络设备所配置的访问控制列表条目形成的。对应phaseO的chunk索引的,通过遍历所有访问控制列表条目而得到一个规
则集合。
[0006]目前采用RFC算法,由于规则的数量的较大时,输出值eqcID的产生会由于遍历所有访问控制列表条目而耗费较多的时间,从而影响整个散列表也即查询表的编译时间。这导致这对应用户配置网络设备,并及时生效的体验有明显下降。

【发明内容】

[0007]为了解决现有技术中的技术问题,本发明就是要提供一种快速的方法来加速完成对phaseO的各chunk对应的输出值eqcID的计算。以期减少整体查询表的编译时间,提高用户的对配置的访问控制条目即时生效的体验。该方法包括输入数据处理、端点排序处理、规则池迭代处理三个步骤具体为:
[0008]步骤一,输入数据处理将用户配置的每一条ACL条目中的每个关键字所匹配的范围提取出来,包括范围的上限和下限,并将关键字数据较长的部分,依据具体情况划分为不同的关键字。
[0009]步骤二,端点排序处理将输入数据处理步骤中得到的信息划分成不同的端点,每条规则的同一个关键字可分为两个端点,将所有规则同一关键字的端点进行升序排序。
[0010]步骤三,规则池迭代处理将分配查询表空间查询关键字覆盖关键字的理论取值范围,通过遍历升序排序结构,迭代计算不同关键字输出的eqcID值。
[0011]优选的是,其中步骤一中对于ACL条目的处理方法具体为将访问控制列表条目,转化为独立的端点信息结构,端点的信息包含匹配值、匹配范围的起始或者结束标识符、端点所属的条目ID。
[0012]优选的是,在实际的ACL中,过滤某种类型的报文时,需要规定报文中源ip,目的ip,源端口号,目的端口号,协议号满足特定值或者范围,那么在一条范围控制规则中必须规定源ip,目的ip,源端口号,目的端口号,协议号的范围。
[0013]优选的是,其中步骤一每个关键字所匹配的具体内容包括sip, dip, sport, dport,protoo
[0014]优选的是,其中步骤二中端点排序处理针对上述的独立的信息结构,即包含匹配值、起始结束标识符和条目ID的端点信息,按照匹配值进行排序,而所有规则指用户配置了多条范围控制规则,并且用户对每个规则的具体字段指定的范围不同。
[0015]优选的是,其中步骤三中分配查询表空间,对于proto具体为分配256个空间,查询关键值proto值,报文中proto值可取0-255,只用满足规则的proto值范围才能匹配相应规则。
【专利附图】

【附图说明】
[0016]图1是编译数据处理流程图。
【具体实施方式】
[0017]下面结合附图和具体实施例对本发明的技术方案进行详细描述。
[0018]本发明的编码方法主要由用户配置接口传入用户配置的ACL条目,通过编译数据处理后得到查询表,提供给ACL查询系统使用。
[0019]编译数据处理包括输入数据处理、端点排序处理、规则池迭代处理三个步骤,其中:
[0020]输入数据处理将用户配置的每一条ACL条目中的每个关键字所匹配的范围提取出来,包括范围的上限和下限,并将关键字数据较长的部分,依据具体情况划分为不同的关键字,也就是说,
[0021]输入数据处理将访问控制列表条目,转化为独立的端点信息结构,端点的信息包含匹配值、匹配范围的起始或者结束标识符、端点所属的条目ID,具体为:
[0022]在实际的访问控制列表(ACL):例如过滤某种类型的报文,需要规定报文中源ip,目的ip,源端口号,目的端口号,协议号满足特定值或者范围,那么在一条范围控制规则中必须规定源ip,目的ip,源端口号,目的端口号,协议号的范围。
[0023]独立的数据信息结构,是值将规则中的如上信息进行提取,
[0024]如下一条规则可以提取出10个信息结构。
[0025]rule I:sip (源 ip)
[0026]192.168.0.1—192.168.255.255
[0027]dip (目的 ip)
[0028]192.168.0.1-192.168.0.100
[0029]sport (源端 口号)100-200
[0030]dport (目的端口号)10-20[0031]proto (协议号)50-200
[0032]该规则提取10个信息结构,包括:匹配值起始或结束标志端点所属的条目ID
[0033]sip 192.168.0.1—起始节点——rulel
[0034]sip 192.168.255.255 结束节点——rulel [0035]dip 192.168.0.1---起始节点----rulel
[0036]dip 192.168.0.100结束节点——rulel
[0037]sport 100---起始节点----rulel
[0038]sport 200---结束节点----rulel
[0039]dport 10---起始节点----rulel
[0040]dport 20---结束节点----rulel
[0041]proto 50---起始节点----rulel
[0042]proto 200---结束节点----rulel。
[0043]每个关键字所匹配的具体内容,包括sip,dip,sport,dport, proto,例如sip,192.168.0.1—192.168.255.255由于数据较大较长,我们可以拆分为high-sip192.168—192.168 low-1p:0.1—255.255,这样长度就大大减小。由于查询时釆用直接hash算法,sip序号分配2的32次方(4294967296)个存储单元,而拆分后只需要占用2个2的16次方个存储单元(2*65536),大大节省存储空间,具体划分情况根据算法所运行的环境和存储空间来决定。
[0044]端点排序处理将输入数据处理步骤中得到的信息划分成不同的端点(每条规则的同一个关键字可分为两个端点:上限和下限端点),将所有规则同一关键字的端点进行升序排序,也就是说,端点排序处理针对上述的独立的信息结构,即包含匹配值、起始结束标识符和条目ID的端点信息,按照匹配值进行排序,所有规则指用户配置了多条类似上述rulel的规则,只是用户对每个规则的具体字段指定的范围不同,具体划分方法为:
[0045]划分端点的方法,只是sip和dip可继续划分:
[0046]high-sip 192.168 —起始一rulel
[0047]high-sip 192.168 —结束一rulel
[0048]low-sip 0.1 —起始一rulel
[0049]low-sip 255.255 —结束一rulel
[0050]high-dip 192.168 —起始一rulel
[0051]high-dip 192.168 —结束一rulel
[0052]low-dip 0.1—起始一rulel
[0053]low-dip 0.100 —结束一rulel。
[0054]如果有3个规则,均包含如上sip,dip,sport,dport, proto的信息.我们仅仅考虑 proto
[0055]rule I proto 100-200
[0056]rule 2 proto 10-20
[0057]rule 3 proto 10-30
[0058]可以的提取规则得到如下端点:p (proto) r (rule)
[0059]p 100 rl start[0060]p 200 rl end
[0061]p 10 r2 start
[0062]p 20 r2 end
[0063]p 10 r3 start
[0064]p 30 r3 end
[0065]根据proto值排序后
[0066]I plO r2 start
[0067]2 plO r3 start
[0068]3 p20 r2 end
[0069]4 p30 r3 end [0070]5 plOO rl start
[0071]6 p200 rl end
[0072]规则池迭代处理将分配查询表空间查询关键字覆盖关键字的理论取值范围,通过遍历升序排序结构,迭代计算不同关键字输出的eqcID值,具体方法为:
[0073]在排序后,如何的到数轴显示中条件.[0074]端点I plO r2 start
[0075]端点2 plO r3 start
[0076]端点3 p20 r2 end
[0077]端点4 p30 r3 end
[0078]端点5 plOO rl start
[0079]端点6 p200 rl end
[0080]遍历proto 值,
[0081]0-9规则池没有发生变化为空
[0082]10发现端点I和端点2匹配,切为起始端点,规则池+r2,+r3
[0083]11-20规则池不发生变化为r2,r3
[0084]21 (匹配结束端点3)规则池_r3为r3
[0085]依此迭代,得到:0-9满足规则空
[0086]10-20 满足规则 r2,r3
[0087]21-30 满足规则 r3
[0088]31-99满足规则空
[0089]100-200 满足规则 rl
[0090]201-255满足规则空
[0091]分配查询表空间即:分配:256个空间,查询关键值proto值,报文中proto值可取0-255,只用满足规则的proto值范围才能匹配相应规则。
[0092]当报文到达时proto值为15,我们可直接查询得到满足规则r2,r3.而不需要与每个规则进行比较看是否满足。
[0093]当报文到达是proto值为33,我们可直接查询得到满足规则为空,不匹配任何规则。
[0094]其中,eqcID指的是规则组合的表1D:迭代计算后的表可以的以如下形式[0095]若规则组合表:
[0096]eqidl:空
[0097]eqid2:r2, r3
[0098]eqid3:r3
[0099]eqid4:rl
[0100]则,建立如下对应关系:
[0101]0-9eqidl
[0102]10-20 2
[0103]21-30 3
[0104]31-99 I
[0105]100-200 4
[0106]201-255 I
[0107]本发明技术方案带来的有益效果有:本发明在传统的RFC算法的基础中,通过采用排序并利用规则池迭代的方式对PhaseO阶段的chunk对应的查询结果eqcID进行求值。这充分利用了访问控制条目本身的特点,深度挖掘相关信息,极大地减少了 eqcID计算的步骤和索引的编译时间,加速了配置访问控制列表规则的生效,更好地保障网络设备的功倉泛。
`[0108]本发明所述并不限于【具体实施方式】所述的实施例,只要是本领域技术人员根据本发明方案得出其他的实施方式,同样属于本发明的技术创新及保护的范围。
【权利要求】
1.一种访问控制列表ACL行为集快速编码的方法,其特征在于,该方法包括输入数据处理、端点排序处理、规则池迭代处理三个步骤,具体为: 步骤一,输入数据处理将用户配置的每一条ACL条目中的每个关键字所匹配的范围提取出来,包括范围的上限和下限,并将关键字数据较长的部分,依据具体情况划分为不同的关键字; 步骤二,端点排序处理将输入数据处理步骤中得到的信息划分成不同的端点,每条规则的同一个关键字可分为两个端点,将所有规则同一关键字的端点进行升序排序; 步骤三,规则池迭代处理将分配查询表空间查询关键字覆盖关键字的理论取值范围,通过遍历升序排序结构,迭代计算不同关键字输出的eqc ID值。
2.如权利要求1所述的方法,其特征在于,其中步骤一中对于ACL条目的处理方法具体为将访问控制列表条目,转化为独立的端点信息结构,端点的信息包含匹配值、匹配范围的起始或者结束标识符、端点所属的条目ID。
3.如权利要求2所述的方法,其特征在于,在实际的ACL中,过滤某种类型的报文时,需要规定报文中源ip,目的ip,源端口号,目的端口号,协议号满足特定值或者范围,那么在一条范围控制规则中必须规定源ip,目的ip,源端口号,目的端口号,协议号的范围。
4.如权利要求1所述的方法,其特征在于,其中步骤一每个关键字所匹配的具体内容包括 sip, dip, sport, dport, proto?
5.如权利要求1所述的方法,其特征在于,其中步骤二中端点排序处理针对上述的独立的信息结构,即包含匹配值、起始结束标识符和条目ID的端点信息,按照匹配值进行排序,而所有规则指用户 配置了多条范围控制规则,并且用户对每个规则的具体字段指定的范围不同。
6.如权利要求1所述的方法,其特征在于,其中步骤三中分配查询表空间,对于proto具体为分配256个空间,查询关键值proto值,报文中proto值可取0-255,只用满足规则的proto值范围才能匹配相应规则。
【文档编号】H04L12/741GK103647773SQ201310674465
【公开日】2014年3月19日 申请日期:2013年12月11日 优先权日:2013年12月11日
【发明者】曾小明 申请人:北京中创信测科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1