专利名称:一种acl管理方法及装置的制作方法
技术领域:
本发明涉及数据通信领域,尤其涉及一种ACL管理方法及装置。
背景技术:
随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配成为网络管理的重要内容。通过对数据包进行过滤,可以有效防止非法用户对网络的访问,同时也可以控制流量,节约网络资源。ACL (访问控制列表)是用于控制数据通讯设备如交换机、防火墙等对接收的数据包进行分类处理的一系列ACL规则。一条ACL规则可以在某接收报文的物理端口上通过若干匹配条件来匹配报文,并指定若干动作对报文进行处理。这一操作既可以由芯片执行,也可以由软件实现。使用芯片ACL时,在逻辑上,指定的参数以固定的顺序下发到芯片中,收到的报文会依次检查每一条规则,直到匹配并采取动作为止。使用软件ACL时,则需要在内核分析报文相关数据,在报文从数据链路层送往网络层之前检查报文是否匹配ACL规则并采取相应动作。不论是芯片ACL还是软件ACL,内核都需要对ACL规则进行资源管理,以保证规则的有序性、结果的唯一性、程序的健壮性和运行的高效性。ACL规则资源管理模块的主要设计思想是模拟交换芯片上的ACL规则列表,在内核维护一个ACL规则数组,实现规则的管理和配置。主要的管理配置操作包括 1、添加、修改、删除ACL规则2、插入ACL规则3、改变ACL规则优先级4、添加、修改、删除ACL动作5、硬件资源调配6、批量配置导入导出目前的ACL实现方案以分段的形式来管理规则资源,分为基本ACL、高级ACL以及二层ACL等,每一个模式的ACL有一个固定范围,通常为每段1000条。ACL配置方式为追加,追加的规则与上一条连续规则之间序号的差值为一个步长,用步长留下的空隙以备后续中间插入规则。一条ACL中可以包含多个规则,而每个规则都指定不同的报文范围。这样,在匹配报文时就会出现匹配顺序的问题,通常芯片根据用户配置规则的先后顺序进行匹配,匹配顺序一般为后下发的规则先匹配。用户可以在定义ACL的时候指定一条ACL中多个规则的匹配顺序。用户一旦指定某一条ACL的匹配顺序,就不能再更改该顺序。只有把该ACL中所有的规则全部删除后,才能重新指定其匹配顺序。综上所述,现有的ACL资源管理方案分段限制可配置规则数量,用固定的步长用于插入,有复杂的匹配顺序等特点。目前的技术方案将ACL可配置规则数固定在一个范围内,并且不支持大量相同位置插入操作,同时,匹配顺序复杂且有条件的区别对待,对用户的维护工作来说不够友好
发明内容
有鉴于此,本发明提供一种ACL管理装置,应用于网管计算机设备上,用于管理网络设备上的ACL执行模块中的ACL规则列表,所述ACL规则列表包括多个ACL表项,其中ACL表项用于保存ACL规则;该装置包括本地读写单元、规则调整单元以及网管控制单元,其中本地读写单元,用于读取计算机设备本地ACL规则列表并展现给用户,该本地ACL规则列表与ACL执行模块中的ACL规则列表保存有相同的数据;该本地读写单元进一步用于将规则调整单元调整后的ACL规则列表保存在本地;规则调整单元,用于处理用户对ACL规则列表的调整,当用户在相邻的第一及第二 ACL表项之间插入新的ACL规则,查找第一或第二 ACL表项外侧是否有空闲ACL表项, 如果有空闲ACL表项,则通过管理控制单元将ACL执行模块上该空闲ACL项与第一或第二ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第一或第二 ACL表项成为空闲ACL表项,然后将该新的ACL规则插入到空闲的第一或第二 ACL表项中;管理控制单元,用于通过管理通道与网络设备交互。本发明还提供一种ACL管理方法,应用于网管计算机设备上,用于管理网络设备上的ACL执行模块中的ACL规则列表,所述ACL规则列表包括多个ACL表项,其中ACL表项用于保存ACL规则;该方法包括以下步骤步骤A,读取计算机设备本地ACL规则列表并展现给用户,该本地ACL规则列表与ACL执行模块中的ACL规则列表保存有相同的数据;步骤B,将规则调整单元调整后的ACL规则列表保存在本地;步骤C,处理用户对ACL规则列表的调整,当用户在相邻的第一及第二 ACL表项之间插入新的ACL规则,查找第一或第二 ACL表项外侧是否有空闲ACL表项,如果有空闲ACL表项,则通过管理通道将ACL执行模块上该空闲ACL项与第一或第二 ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第一或第二 ACL表项成为空闲ACL表项,然后将该新的ACL规则插入到空闲的第一或第二 ACL表项中。相对于现有技术来说,首先,本发明允许用户更加轻松地进行表项内ACL规则的管理,不再像现有技术那样受限于固定步长的插入限制,也不需要用户考虑ACL执行模块的匹配顺序。其次,本发明将ACL规则按照业务模式进行分类管理,灵活地为不同模式的ACL规则分配资源,提高了用户管理的易用性与灵活性。
图1是本发明一种实施方式中ACL管理装置逻辑结构图。图2是本发明一种实施方式中ACL规则插入过程示意图。图3是本发明一种实施方式中ACL规则调换过程示意图。
具体实施例方式本发明提供一种ACL管理装置,该装置应用在计算机设备上,包括本地读写单元、规则调整单元、资源管理单元以及管理控制单元。在优选的方式中,该装置采用计算机程序实现,所述计算机程序运行于计算机设备的CPU上以形成上述多个逻辑单元。本发明ACL管理装置通常运行在网管计算机设备上,向作为网络管理者的用户提供ACL配置界面,界面的呈现以及数据输入等功能属于常见的现有技术,此处不再一一赘述。用户配置ACL规则时,首先表项读取单元从存储器中读取ACL配置文件并将其中的ACL规则列表读取到内存然后展现给用户。网管计算机设备的存储器(比如硬盘)中通常会保存有与ACL执行模块(如ACL芯片或者软件ACL模块)完全一致的ACL规则列表,一个ACL规则列表中通常包括多个ACL表项,每个ACL表项保存有一条ACL规则。每次用户在计算机上编辑ACL规则列表将数据下刷之后,除了会通过网管通道下刷到网络设备的ACL执行模块之外,还会在计算机上保存一份相同的副本,也就是说规则调整单元响应用户的调整操作,并且每次调整完成后都会在本地保存一份相同的调整后的ACL列表。如果是各个ACL规则是顺序配置,也就是说每次ACL规则都是写到空闲的ACL表项上,那么规则调整单元可以很容易将用户的调整结果通过规则下刷单元发送到ACL执行模块。用户在一个空闲的ACL表项中写入ACL规则,下刷过程其实相当于向空闲的表项中写入数据,对已经存在的数据并没有影响。如果用户的调整操作是删除,那么下刷也容易实 现,只需要通过管理控制单元发送响应的控制命令即可完成删除操作的下刷。然而用户对ACL规则的管理不仅仅限于顺序配置,实际上用户可能希望在两条已经存在的ACL规则之间插入新的ACL规则,也能会调整已经存在两条ACL规则之间的位置关系。因此规则调整单元需要针对各种情况进行相应的处理,而且用户在计算机上进行的调整有时候并不能直接下刷到网络设备的ACL执行模块上,因为ACL执行模块并不知晓用户的操作,其仅仅是通过网管通道接收用户写入的数据。请参考图2,如果用户在第一及第二 ACL表项之间插入新的ACL规则,则规则调整单元查找第一 ACL表项(表项序号108)外侧是否有空闲ACL表项,如果有空闲ACL表项,则通过管理控制单兀将ACL执行模块上该空闲表项与第一 ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第一 ACL表项成为空闲ACL表项;或者规则调整单元还可以查找第二 ACL表项(表项序号109)外侧是否有空闲ACL表项如果有空闲ACL表项;则通过管理控制单元将ACL执行模块上该空闲表项与第二 ACL规则所在第一 ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第二 ACL表项成为空闲ACL表项。通常可以先在第一 ACL表项外侧进行查找,如果查找不到则向第二 ACL表项外侧查找。请参考图2,所谓外侧是与相对于相邻ACL内侧而言的,第一 ACL表项的内侧相邻表项为第二 ACL表项,第二ACL表项的内侧相邻表项为第一 ACL表项。ACL执行模块,尤其是ACL芯片通常会按照顺序来执行,有时候用户可能希望改变某个ACL规则在芯片中的执行顺序,此时可能会涉及到两个表项内容的交换。请参考图3所示的ACL表项内ACL规则调换过程,如果用户希望将两个ACL表项的内的ACL规则进行交换,比如将第三ACL规则与第六ACL规则在芯片中存放的位置(也就是ACL表项)进行交换。此时规则调整单元可以通过管理控制单元先将第三ACL规则写入芯片内部的交换空间(比如任意一个空闲表项)中,然后将第六ACL规则写入第三ACL规则所在的ACL表项(表项序号106),再将交换空间中的第三ACL规则写入序号为111的ACL表项中。以上描述的过程是规则调整单元对ACL执行模块上ACL表项的调整过程,其中数据的读取主要在本地,因为本地有相同的ACL规则列表。但是如果涉及到数据写入到ACL执行模块,或者删除ACL执行模块中的某个ACL表项则需要将调整结果分解为相应的控制命令(可能包括数据)送到管理控制单元,由管理控制单元来与网络设备进行交互。比如说,将某个ACL表项中的ACL规则写入交换空间,事实上可以只用一步写入即可完成,因为计算机设备本地有该ACL规则,可以在本地读取到该ACL规则然后通过管理通道写入到管理设备的交换空间。因此整个过程实际上是规则调整单元将发生变化的表项内的数据通过管理控制单元下刷到网络设备的ACL执行模块上对应的表项中去。由于本地保存有相同的ACL规则列表,因此哪些表项内数据发生了变化,规则调整单元很容易进行标记。整个过程大部分情况下不涉及整体ACL规则列表的删除这样的操作,因为整体删除和写入需要消耗更多的时间,用户体验较差;而且从整体删除到重新写入这段时间内由于ACL规则不存在,可能导致在网的网络设备报文转发错误、断流甚至更严重的问题。在优选的方式中,规则调整单元允许用户输入的ACL规则通常是用户容易理解的ACL规则,比如说VLAN范围1-27,但事实上存放在ACL执行模块的表项中ACL规则并不是如此表达的,可能会以掩码的方式来表达,采用掩码方式表达时,可能需要将用户输入的ACL规则拆分为多个可以在ACL执行模块中存储的ACL规则。当然,这个拆分过程对用户来说是不可见的,提高了用户使用的便利性。 在优选的方式中,本发明还对ACL执行模块内部的表项资源进行分类管理,这里的分类管理是基于业务的分类管理。在本发明优选方式中,ACL执行模块的表项资源包括若干个片区,每个片区包括若干ACL表项,优选方式中每个片区包括的ACL表项数量相等。在本实施方式中,ACL规则包括三种模式,二层模式ACL规则、三层模式ACL规则以及二三层混合模式ACL规则。在优选的方式中,ACL规则的模式还可以细分,比如三层模式还可以细分为三层IPv6模式以及三层IPv4模式;而二三层混合模式则可以细分为二三层IPv4混合模式以及二三层IPv6混合模式,其中各种模式定义如下二层模式ACL规则通常只包括报文的二层信息,比如规则可以匹配报文的MAC地址、VLAN tag以及_■层优先级等_■层彳曰息。三层模式ACL规则通常只包括报文的三层信息,比如规则可以匹配报文的IP地址、IP协议号及端口号、三层优先级等三层信息。二三层混合模式ACL规则通常同时包括报文的二层和三层信息;比如规则可以匹配报文的源MAC地址、源IP地址等信息等等。在ACL规则区分模式时,所述资源管理单元可以按照ACL规则模式执行片区的分配。事实上这样的分配也就是将片区这一资源按照业务模式来进行分配,比如说将两个片区用来保存二层ACL规则。在现有技术中,没有严格按照业务层次来划分模式进而分配资源。比如说,基本ACL这种模式的ACL规则中既可以有MAC地址,也可以有IP地址,基本ACL与高级ACL的划分仅仅是规则简单与复杂,这样的划分与网络设备的业务没有任何关联,对于用户管理过程来说区分很不清晰,因为用户通常会对实际业务很关注,按照业务进行区分有利于用户清晰地了解自身关注的业务对应的ACL规则。相应地,在本实施方式中,规则调整单元进行ACL规则调整的范围是同一个ACL规则模式下的所有片区。比说前述向外侧查找是否有空闲表项的步骤,其查找的边界是当前ACL规则模式下的所有片区中的表项(相当于与ACL规则模式对应的子列表),而不是整个ACL规则列表。考虑到每个用户的业务分布情况各有不同,有的用户可能需要更多的表项资源来下发二层ACL规则,那么资源管理单元可以允许用户对片区的分配进行调整。当用户希望分配更多片区来存储二层ACL规则时,资源管理单元可以查找分配给其他模式ACL规则的片区资源中是否有空闲片区,如果有则将该片区分配给二层型ACL规则。同样的道理,任意一种模式的ACL规则对应的空闲片区都被资源管理单元根据用户需求分配给其他模式的ACL规则来使用。举例来说,请参考表I。假设片区大小一致,均包括5个ACL表项(仅仅是示例性的),假设二层模式ACL规则分配到2个片区(A与B),而三层模式ACL规则分配到3个片区(C、D、E)。假设用户希望从三层模式ACL规则对应的片区中划分一个片区给二层模式ACL规则。但是此时片区C、D、E均有至少一个表项被占用,也就是说没有表项全部空闲的片区。此时资源管理单元检查三层模式ACL规则中所有片区空闲表项总和是否大于等于一个片区的表项,如果是,则将一个片区中的被占用表项中的数据迁移到其他片区的空闲表项中,以使得该片区变为空闲片区,然后将该片区分配给二层模式ACL规则。比如将片区D中的两个占用表项数据写入到片区E的两个空闲表项中,请参考表2所示调整后的片区分配,此时二层模式ACL规则拥有三个片区(A、B、D),而三层模式ACL规则变为两个片区(C、E)。
权利要求
1.一种ACL管理装置,应用于网管计算机设备上,用于管理网络设备上的ACL执行模块中的ACL规则列表,所述ACL规则列表包括多个ACL表项,其中ACL表项用于保存ACL规则;该装置包括本地读写单元、规则调整单元以及网管控制单元,其特征在于 本地读写单元,用于读取计算机设备本地ACL规则列表并展现给用户,该本地ACL规则列表与ACL执行模块中的ACL规则列表保存有相同的数据;该本地读写单元进一步用于将规则调整单元调整后的ACL规则列表保存在本地; 规则调整单元,用于处理用户对ACL规则列表的调整,当用户在相邻的第一及第二 ACL表项之间插入新的ACL规则,查找第一或第二 ACL表项外侧是否有空闲ACL表项,如果有空闲ACL表项,则通过管理控制单元将ACL执行模块上该空闲ACL项与第一或第二 ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第一或第二 ACL表项成为空闲ACL表项,然后将该新的ACL规则插入到空闲的第一或第二 ACL表项中; 管理控制单元,用于通过管理通道与网络设备交互。
2.如权利要求1所述的装置,其特征在于,当用户调换第三ACL表项中与第四ACL表项中ACL规则时,所述规则调整单元进一步用于通过管理控制单元先将第三ACL表项中的第三ACL规则写入ACL执行模块内部的交换空间,然后将第四ACL表项中第四ACL规则写入第三ACL表项,再将交换空间中的第三ACL规则写入序号为第四ACL表项中。
3.如权利要求1所述的装置,其特征在于,所述ACL执行模块包括若干片区,每个片区均包括若干ACL表项,不同模式的ACL规则存储与不同的片区中,该装置进一步包括资源管理单元,用于执行片区的分配,当用户需要为第一模式ACL规则分配更多片区时,查找第二模式ACL规则对应的多个片区中是否有空闲片区,如果是则将该空闲片区分配给第一模式ACL规则。
4.如权利要求3所述的装置,其特征在于,所述每个片区大小相同,当第二模式ACL规则对应的多个片区中没有空闲片区时,所述资源管理单元进一步检查第二模式ACL规则对应的多个片区中空闲表项总量是否可以构成一个空闲片区,如果是则在至少两个片区之间进行ACL表项内的数据迁移以获得一个空闲片区并将该空闲片区分配给第一模式ACL规则。
5.如权利要求1所述的装置,其特征在于,所述规则调整单元,进一步用于将用户输入的一条ACL规则转变为多条ACL执行模块可以保存的多个ACL规则。
6.一种ACL管理方法,应用于网管计算机设备上,用于管理网络设备上的ACL执行模块中的ACL规则列表,所述ACL规则列表包括多个ACL表项,其中ACL表项用于保存ACL规则;其特征在于,该方法包括以下步骤 步骤A,读取计算机设备本地ACL规则列表并展现给用户,该本地ACL规则列表与ACL执行模块中的ACL规则列表保存有相同的数据; 步骤B,将规则调整单元调整后的ACL规则列表保存在本地; 步骤C,处理用户对ACL规则列表的调整,当用户在相邻的第一及第二 ACL表项之间插入新的ACL规则,查找第一或第二 ACL表项外侧是否有空闲ACL表项,如果有空闲ACL表项,则通过管理通道将ACL执行模块上该空闲ACL项与第一或第二 ACL表项之间所有的ACL规则向外侧整体平移一个表项以使得第一或第二 ACL表项成为空闲ACL表项,然后将该新的ACL规则插入到空闲的第一或第二 ACL表项中。
7.如权利要求6所述的方法,其特征在于,还包括 步骤D,当用户调换第三ACL表项中与第四ACL表项中ACL规则时,通过管理控制单元先将第三ACL表项中的第三ACL规则写入ACL执行模块内部的交换空间,然后将第四ACL表项中第四ACL规则写入第三ACL表项,再将交换空间中的第三ACL规则写入序号为第四ACL表项中。
8.如权利要求6所述的方法,其特征在于,所述ACL执行模块包括若干片区,每个片区均包括若干ACL表项,不同模式的ACL规则存储与不同的片区中,该方法还包括 步骤E,当用户需要为第一模式ACL规则分配更多片区时,查找第二模式ACL规则对应的多个片区中是否有空闲片区,如果是则将该空闲片区分配给第一模式ACL规则。
9.如权利要求8所述的方法,其特征在于,所述每个片区大小相同,当第二模式ACL规则对应的多个片区中没有空闲片区时,所述步骤E还包括进一步检查第二模式ACL规则对应的多个片区中空闲表项总量是否可以构成一个空闲片区,如果是则在至少两个片区之间进行ACL表项内的数据迁移以获得一个空闲片区并将该空闲片区分配给第一模式ACL规则。
10.如权利要求6所述的方法,其特征在于,还包括 步骤F,将用户输入的一条ACL规则转变为多条ACL执行模块可以保存的多个ACL规则。
全文摘要
本发明提供一种ACL管理方法及对应的管理装置,该管理方法包括步骤A,读取计算机设备本地ACL规则列表并展现给用户,该本地ACL规则列表与ACL执行模块中的ACL规则列表保存有相同的数据;步骤B,将规则调整单元调整后的ACL规则列表保存在本地;步骤C,处理用户对ACL规则列表的调整,当用户在相邻的第一及第二ACL表项之间插入新的ACL规则,查找第一或第二ACL表项外侧是否有空闲ACL表项,如果有空闲ACL表项,则对部分ACL规则向外侧整体平移一个表项以使得第一或第二ACL表项成为空闲ACL表项。相对于现有技术来说,本发明允许用户更加轻松地进行表项内ACL规则的管理,也不需要用户考虑ACL执行模块的匹配顺序。
文档编号H04L12/24GK103001793SQ20121041782
公开日2013年3月27日 申请日期2012年10月26日 优先权日2012年10月26日
发明者符志清, 左宪达 申请人:杭州迪普科技有限公司