一种访问控制列表的匹配方法及装置与流程

文档序号:11878958阅读:188来源:国知局
一种访问控制列表的匹配方法及装置与流程

本发明涉及网络数据传输技术领域,具体涉及一种访问控制列表的匹配方法及装置。



背景技术:

高端安全产品可能配置了海量的ACL(访问控制列表),在第二代防火墙上,ACL规则包含如下八元组:源接口(或者源域),目的接口(或者目的域),源IP地址对象,目的IP地址对象,IP协议类型,目的端口,用户(或者用户组),时间段。海量的ACL有优先级要求,报文需要尽可能的高效地匹配出最优的ACL,然后根据ACL配置的动作决定报文的后续处理(转发,丢弃还是进一步执行深度检测)。

现有的访问控制列表匹配装置,该装置由以下几个部分组成:

控制平面:将ACL规则引用的元组划分等价类,这些等价类能够命中同一组ACL;穷举不同元组等价类的组合,构建ACL映射表。

数据平面:报文中的各个元组依次匹配等价类,得到所有元组等价类的匹配结果,根据这些结果hash出映射表,找到能够命中的ACL;再提取出最高优先级的ACL;

现有的控制列表匹配穷举了不同元组等价类的组合,若匹配元组过多,且ACL规则海量时,会导致等价类过多,匹配效率提升不明显,且需要的内存较多,同时现有的匹配方法不支持引用地址对象,只是引用单个IP地址,且构建过程较为复杂。



技术实现要素:

本发明所要解决的技术问题是:提出一种访问控制列表的匹配方法及装置,解决传统技术中控制列表匹配手段存在的匹配效率低,构建复杂的问题。

一方面,本发明实施例提供一种访问控制列表的匹配装置,其包括:

控制平面,用于构建以优先级为下标的ACL规则表,并构建以地址对象为第一维度,源、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表;

数据平面,用于根据进入数据平面的报文的源IP地址和目的IP地址进行地址对象匹配,根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组,遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理。

作为进一步优化,所述控制平面用于构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表,具体包括:

对于任意一个地址对象a[i],计算第N位的源IP地址向量SAddr[i]和目的地址向量DAddr[i],循环j从1到N:若ACL规则rule[j]的源IP地址引用了地址对象a[i],那么源IP地址向量SAddr[i]的第j个位置1,若rule[j]的目的IP地址引用了地址对象a[i],那么目的地址向量DAddr[i]的第j个bit位置1,所述1≤j≤N。

作为进一步优化,数据平面用于根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组,具体包括:

根据源IP地址匹配得到的地址对象集合,获取对应源IP地址的各个向量表,将对应原IP地址的所有的向量表进行或运算,得到第一向量表;根据目的IP地址匹配得到的地址对象集合,获取对应目的IP地址的各个向量表,将对应目的IP地址的所有的向量表进行或运算,得到第二向量表;对第一向量表和第二向量表进行与运算,得到一组以ACL规则优先级为下标的位图数组。

作为进一步优化,所述数据平面用于遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理,具体包括:

数据平面按照顺序遍历所述位图数组,若查找到值为1的位图元素,则获取该位对应的ACL规则表,进行ACL匹配,当命中某一个ACL规则时,停止匹配,按照命中的ACL规则执行报文处理动作。

作为进一步优化,所述数据平面还用于若遍历整个位图数组都无法命中ACL规则时,则获取预先配置的默认ACL规则,进行ACL匹配,若仍未命中默认的ACL规则,则对报文进行放行处理。

作为进一步优化,所述数据平面还用于在执行报文处理动作时,记录相应处理日志信息。

另一方面,本发明实施例提供一种访问控制列表的匹配方法,包括以下步骤:

A、构建以优先级为下标的ACL规则表,并构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表;

B、根据进入数据平面的报文的源IP地址和目的IP地址进行地址对象匹配,根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组;

C、遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理。

作为进一步优化,步骤A中,所述构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表,包括:

对于任意一个地址对象a[i],计算第N位的源IP地址向量SAddr[i]和目的IP地址向量DAddr[i],循环j从1到N:若ACL规则rule[j]的源IP地址引用了地址对象a[i],那么源IP地址向量SAddr[i]的第j个位置1,若rule[j]的目的地址引用了地址对象a[i],那么目的IP地址向量DAddr[i]的第j个位置1,所述1≤j≤N。

作为进一步优化,步骤B中,所述根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组,包括:

根据源IP地址匹配得到的地址对象集合,获取对应源IP地址的各个向量表,将对应原IP地址的所有的向量表进行或运算,得到第一向量表;根据目的IP地址匹配得到的地址对象集合,获取对应目的IP地址的各个向量表,将对应目的IP地址的所有的向量表进行或运算,得到第二向量表;对第一向量表和第二向量表进行与运算,得到一组以ACL规则优先级为下标的位图数组。

作为进一步优化,步骤C中,所述遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理,包括:

数据平面按照顺序遍历所述位图数组,若查找到值为1的位图元素,则获取该位对应的ACL规则表,进行ACL匹配,当命中某一个ACL规则时,停止匹配,按照命中的ACL规则执行报文处理动作。

作为进一步优化,步骤C中,包括:

当遍历整个位图数组都无法命中ACL规则时,则获取预先配置的默认ACL规则,进行ACL匹配,若仍未命中默认的ACL规则,则对报文进行放行处理。

本发明的有益效果是:通过构造包含ACL优先级的位图数组的方式,遍历所述位图数组进行ACL规则表的匹配,从而获得匹配的最高优先级的ACL规则表;该方案满足高效匹配海量ACL的要求,减少空间消耗,扩展性良好,可以应用于路由器、防火墙等产品。

附图说明

附图1为本发明实施例的访问控制列表匹配装置示意图;

附图2为本发明实施例的访问控制列表的匹配方法流程图。

具体实施方式

本发明实施例旨在提出一种访问控制列表的匹配方法及装置,解决传统技术中控制列表匹配手段存在的匹配效率低,构建复杂的问题。下面结合附图及实施例对本发明的方案作进一步的描述:

实施例:

如图1所示,本发明实施例中的访问控制列表的匹配装置包括:

控制平面,用于构建以优先级为下标的ACL规则表,并构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表:

对于任意一个地址对象a[i],计算N Bit的源地址向量SAddr[i]和目的地址向量DAddr[i],循环j从1到N:若ACL规则rule[j]的源地址引用了地址对象a[i],那么SAddr[i]的第j个bit位置1,若rule[j]的目的地址引用了a[i],那么DAddr[i]的第j个bit位置1,所述1≤j≤N:

数据平面,用于根据进入数据平面的报文的源IP地址和目的IP地址进行地址对象匹配,根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组:根据源IP地址匹配得到的地址对象集合,获取对应源IP地址的各个向量表,将对应源IP地址的所有的向量表进行或运算,得到第一向量表;根据目的IP地址匹配得到的地址对象集合,获取对应目的IP地址的各个向量表,将对应目的IP地址的所有的向量表进行或运算,得到第二向量表,对第一向量表和第二向量表进行与运算,得到一组以ACL规则优先级为下标,值为0/1的位图数组;

数据平面还用于遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理:数据平面按照顺序遍历所述位图数组,若查找到值为1的位图元素,则获取该位对应的ACL规则表,进行ACL匹配,当命中某一个ACL规则时,停止匹配,按照命中的ACL规则执行报文处理动作。所述数据平面还用于若遍历整个位图数组都无法命中ACL规则时,则获取预先配置的默认ACL规则,进行ACL匹配,若仍未命中默认的ACL规则,则对报文进行放行处理。

本发明实施例提供的访问控制列表匹配装置,通过构造包含ACL优先级的位图数组的方式,遍历所述位图数组进行ACL规则表的匹配,能够高效匹配出海量的ACL。

图2示意了本发明实施例中访问控制列表匹配方法的流程,应用于如图1所述的访问控制列表的匹配装置中,其包括:

S201,构建以优先级为下标的ACL规则表,并构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表。

本步骤,构建以地址对象为第一维度,源IP地址、目的IP地址为第二维度,ACL优先级为第三维度的位图向量表,包括:

对于任意一个地址对象a[i],计算第N位的源IP地址向量SAddr[i]和目的IP地址向量DAddr[i],循环j从1到N:若ACL规则rule[j]的源IP地址引用了地址对象a[i],那么源IP地址向量SAddr[i]的第j个位置1,若rule[j]的目的地址引用了地址对象a[i],那么目的IP地址向量DAddr[i]的第j个位置1,所述1≤j≤N。

S202,根据进入数据平面的报文的源IP地址和目的IP地址进行地址对象匹配,根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组。

本步骤中,根据进入数据平面的报文的源IP地址和目的IP地址进行地址对象匹配,根据会话获取已经匹配到的地址对象的集合;根据匹配到的地址对象以及所述位图向量表构造包含ACL优先级的位图数组,具体包括

根据源IP地址匹配得到的地址对象集合,根据位图向量表获取对应源IP地址的各个向量表,将对应原IP地址的所有的向量表进行或运算,得到第一向量表;根据目的IP地址匹配得到的地址对象集合,根据位图向量表获取对应目的IP地址的各个向量表,将对应目的IP地址的所有的向量表进行或运算,得到第二向量表;对第一向量表和第二向量表进行与运算,得到一组以ACL规则优先级为下标的位图数组。

S203,遍历所述位图数组进行ACL规则表的匹配,获得匹配的最高优先级的ACL规则表,并按照该ACL规则表对报文进行处理。

本步骤中,根据会话获取已经命中的地址对象的集合,包括源IP地址对象和目的IP地址对象。遍历所述位图数组进行ACL规则表的匹配,的具体实现方式包括:

S2031,获取位图数组中元素的个数(每个数组元素支持64bit)。

S2032,判断当前处理的位图元素个数是否大于其总个数,若是,则执行步骤2037,否则,执行步骤2033。

S2033,获取当前位图数组元素的命中结果。具体包括如下步骤:

根据指定的位图信息,获取位图向量;获取源IP地址和目的IP地址都没有命中地址对象的位图向量;获取源IP地址命中的地址对象,目的IP地址没有命中的地址对象的位图向量;获取源IP地址没有命中地址对象,目的IP地址命中的地址对象的位图向量;获取源IP地址和目的IP地址都能命中地址对象的位图向量;获取代表源IP地址为ANY的位图向量;获取代表目的IP地址为ANY的位图向量;将源IP地址能命中的所有地址对象的向量集合进行或运算,得到源IP地址的位图向量;将目的IP地址能命中的所有地址对象的向量集合进行或运算,得到目的IP地址的位图向量;将源和目的地址能命中的位图向量进行与运算得到源IP地址和目的IP地址的位图向量。遍历源IP地址和目的IP地址的位图向量的所有bit(位),若为1则进行ACL匹配,若命中则返回命中的ACL。

S2034,将当前处理的位图元素个数自增,并判断是否命中ACL规则,若命中,则执行步骤2035,否则返回步骤2032。

S2035,获取命中的ACL规则,在会话中记录该ACL ID。

S2036,根据命中的ACL规则执行相应报文处理动作,结束流程。

S2037,获取最后不超过64bit的位图元素,获取当前位图数组元素的命中结果。

S2038,判断是否命中ACL规则,若命中,则执行步骤2035,否则,执行步骤2039。

S2039,获取预先配置的默认ACL规则表进行ACL匹配,并判断是否命中ACL规则,若命中,则执行步骤2035,否则对报文进行放行处理。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1