基于网络处理器的访问控制列表实现方法

文档序号:7646139阅读:233来源:国知局

专利名称::基于网络处理器的访问控制列表实现方法
技术领域
:本发明涉及一种网络安全防护技术中的访问控制列表,尤其涉及一种基于网络处理器的访问控制列表实现方法。
背景技术
:访问控制列表(AccessControlList,ACL)是应用在路由器接口上的一个控制列表,可以控制拒绝和允许进入以及离开路由器的数据包,也可以拒绝和允许用户访问某一网络资源。由于其应用的非常广泛,可以对IP、协议、端口等功能上进行控制,从而对网络系统起到安全与保护的作用,所以它是一种网络安全防护技术,也可以当作一种网络控制的有力工具。ACL实际上就是一系列允许和拒绝匹配准则的集合。简单的说就是利用这些准则来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。至于数据包是被接收还是被拒绝,那就要根据这些准则中所定义的条件来决定控制数据包在输入与输出。匹配准则的总类繁多,可以是简单的数据包目标地址的单项目匹配,也可以是数据包目标地址、源地址,端口等多项目的综合匹配等,ACL对符合匹配规则的数据包进行允许和拒绝的操作。当路由器的接口接收到一个数据包时,首先会检查访问控制列表,如果有执行控制列表中有拒绝和允许的操作,则根据被拒绝的数据包将会被丢弃,允许的数据包进入路由选择状态。对进入路由选择状态的数据再根据路由器的路由表执行路由选择,如果路由表中没有到达目标网络的路由,那么相应的数据包就会被丢弃;如果路由表中存在到达目标网络的路由,则数据包被送到相应的网络接口。以上是ACL的简单的工作过程,其简单的说明数据包的经过路由器时,根据访问控制列表作相应的动作来判断是被接收还是被丢弃,在安全性很高的配置中,有时还会为每个接口配置自己的ACL,来为数据作更详细的判断。随着网络速度的飞速发展,传统的路由器已经越来越难已满足报文的快速转发要求。为了适应这一发展,出现了新型的网络处理器(NetProcessor,NP)。它是一种新型的处理器类型,专门用于满足网络交换设备的需求、网络环境的要求而设计的。它除了一般处理器的功能外还包含若干个专门处理数据分组的高速智能接口,即高速引擎,使得网络处理器能够处理高速网络中同时到达的多个数据流。网络处理器是用于实现报文处理、协议分析、路由、语音/数据集成、防火墙和QoS等通信工作的可编程硬件。它被经过专门设计和高度优化来完成各种网络功能。由于它与传统的路由器的架构的差异,使得访问控制列表不能直接应用于网络处理器,因此,如何在网络处理器中实现访问控制列表,是本领域技术人员急欲解决的问题。
发明内容本发明所要解决的技术问题是提供一种基于网络处理器的访问控制列表实现方法。本发明为解决上述技术问题而采用的技术方案是提供一种基于网络处理器的访问控制列表实现方法,该网络处理器具有分析模块、査找模块、决策模块和修改模块,该方法包括下列步骤首先,接收一个网络报文;其次,在分析模块中,创建报文相关消息和硬件寄存器消息,并建立一五元组。接着,在査找模块中,以五元组为键査询一会话表或一访问控制列表;并且,将查询到的结果传递至决策模块。然后,在决策模块中,根据查询的结果作相应的处理,其中如果访问控制列表的匹配规则为允许或重定向,则创建相应的修改策略和修改标签,并传递至修改模块;如果访问控制列表的匹配规则为不允许,则丢弃报文。最后,在修改模块中,根据修改策略和修改标签,修改报文并转发出去。上述的基于网络处理器的访问控制列表实现方法,其中,根据五元组査询一会话表或一访问控制列表的步骤包括查询一会话表,如果在会话表中找到匹配项,则直接将査询到的结果传递至决策模块,如果未找到匹配项,则查询访问控制列表以确定匹配规则。上述的基于网络处理器的访问控制列表实现方法,其中,查询访问控制列5表以确定匹配规则的步骤包括查询进端口访问控制列表以确定进端口匹配规则,如果匹配规则为不允许,则直接将查询到的结果传递至决策模块;如果匹配规则为允许或重定向,执行以下步骤,首先,查询一路由表以选择报文的出端口;其次,査询出端口访问控制列表以确定出端口匹配规则。上述的基于网络处理器的访问控制列表实现方法,其中,还包括根据査询的结果在会话表中建立相应的条目,以供同一会话的后续报文来临时查询。上述的基于网络处理器的访问控制列表实现方法,其中,创建相应的修改策略和修改标签的步骤包括,将报文修改信息组合成修改策略和修改标签。这些报文修改信息包含在会话表中,或者包含在访问控制列表中。上述的基于网络处理器的访问控制列表实现方法,其中,五元组包括源/目的IP地址、源/目的端口、协议类型。因此,通过本发明的上述方法,实现对报文的访问控制,包括允许、拒绝、重定向、转发等,本方法可以应用于各种类型的网络处理器中,来实现访问控制列表的功能。为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中图1是本发明的访问控制列表的访问控制示意图。图2是本发明所基于的一种网络处理器的体系架构图。图3是本发明一个实施例的步骤流程图。具体实施方式图1是本发明的访问控制列表的访问控制示意图。请参阅图l所示,访问控制列表被分为入口访问控制列表101和出口访问控制列表102。在一个网络处理器(NP)100中,对每一个输入帧110匹配入口访问控制列表101,如果其匹配规则为拒绝,则直接抛弃该数据帧。输入帧110在入口访问控制列表101中匹配规则不为拒绝或不匹配时,NP100对该数据帧迸行普通的路由处理,然后在决定了出口端以后,进行出口访问控制列表102的匹配,只有在明确匹配的规则为允许时,NP100才将输出帧120从相应的出口端发出。访问控制列表数据结构采用最先匹配的算法,也就是优先级高的规则放在优先级低的规则前面,并且必须同时考虑IPv4和IPv6报文。主要的数据结构类型如表1表4所示。表1IPv4进端访问控制列表<table>tableseeoriginaldocumentpage7</column></row><table>如表1所示,键用于査询该访问控制列表,其中包含报文的源/目的地址、源/目的端口、协议类型和报文的进端口。表1中,结果表示查询结果,即包括:控制字段,用于确定规则相应的动作(例如允许、拒绝、加解密、重定向);匹配字段,和控制字段一样的作用,由一查找模块(TOPserachI,在后详述)使用;重定向以后的发送端口;以及重定向以后的IP地址。表2是IPv4出端访问控制列表<table>tableseeoriginaldocumentpage8</column></row><table>如表2所示,键用于查询该访问控制列表,其中包含报文的源/目的地址、源/目的端口、协议类型和报文的出端口。表2中,结果表示査询结果,即包括控制字段,用于确定规则相应的动作(例如允许、拒绝);匹配字段,和控制字段一样的作用,由一查找模块(TOPserachI,在后详述)使用;重定向以后的发送端口;以及重定向以后的IP地址。表3IPv6进端访问控制列表<table>tableseeoriginaldocumentpage9</column></row><table>如表3所示,键用于查询该访问控制列表,其中包含报文的源/目的地址、源/目的端口、协议类型和报文的进端口。表3中,结果表示查询结果,即包括:控制字段,用于确定规则相应的动作(例如允许、拒绝、加解密、重定向),匹配字段,和控制字段一样的作用,由一查找模块(TOPserachI,在后详述)使用;重定向以后的发送端口;重定向以后的IP地址;以及保留域。表4IPv6出端访问控制列表<table>tableseeoriginaldocumentpage10</column></row><table>如表4所示,键用于查询该访问控制列表,其中包含报文的源/目的地址、源/目的端口、协议类型和报文的出端口。表4中,结果表示査询结果,即包括控制字段,用于确定规则相应的动作(例如允许、拒绝);匹配字段,和控制字段一样的作用,由一查找模块(TOPserachI,在后详述)使用;重定向以后的发送端口;以及重定向以后的IP地址。会话表是为了支持高速处理而存在的,使得同一会话的后续报文不用再经过多次查询才能确定处理路径和参数,而是通过匹配会话表的条目直接获得处理路径和参数,其以哈希表的形式存在,如表5所示。<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>在表5中,以一个由报文的源地址、报文的目的地址、报文的目的端口、报文的源端口、报文协议类型组成的五元组,作为查询时的键。该会话表中包含该报文处理所需的绝大部分信息,例如报文修改信息、路由信息。图2是本发明所基于的一种网络处理器的体系架构图。请参阅图2所示,网络处理器200例如可以采用以色列EZchip公司的系列网络处理器(例如NP-lc,NP-2a),但不以此为限。该网络处理器200内部采用了流水线体系结构优化的任务处理器(TaskOptimizedProcessors—T0Ps)体系结构,包括4种不同类型的T0P,每种类型的T0P完成不同的任务,各模块的描述如下T0Pparse201:ParseModule,即分析模块,用来分辨和提取各种数据帧的报头、标记、地址、端口、协议、领域、模式和关键字;该模块能够分析任意格式、任意封装方式和任意具有优先权标记等的包。T0Psearchl202:SearchIModule,即第一个査找模块,该模块使用分析过的区域作为关键字进行相关表的查找、分类和管理表。TOPresolve203:ResolveModule,即决策模块,该模块进行包转发和QoS决策,并更新表和状态信息。TOPserachII204:SearchIIModule,即第二个查找模块,该模块是可选的,在TOPresolve完成之后,进行附加的査找。TOPmodify205:ModifyModule,即修改模块,该模块对包的内容进行修改,完成在包的任何地方进行改写、添加和删除操作。在下面的描述中,为简明起见,以分析模块表示T0Pparse,以查找模块表示T0Psearchl,以决策模块表示T0Presolve,以及以修改模块表示TOPmodify205。图3是本发明一个实施例的步骤流程图,请结合图2参阅图3所示,本发明的访问控制列表的实现方法包括以下步骤。首先执行步骤301,网络处理器12200接收一个网络报文。在步骤302,在分析模块201(TOPparse),创建报文相关消息和硬件寄存器消息。由于各个处理模块(TOPs)之间信息的共享必须通过消息来实现,所以我们必须为那些需要修改的数据或者那些将被后面模块用到的信息创建消息,这些信息可以通过分析模块201解析报文获得。硬件寄存器消息是所有报文所必需的,记录了所有硬件相关的信息。值得一提的是,该消息中的"RSVLabd"域,存储的是根据报文协议类型而确定的跳转行标,用于在TOPresolve阶段实现多分支跳转。此外,从上述信息中抽出报文的源/目的地址、源/目的端口、协议类型,以此建立一五元组。执行步骤303,在查找模块202(TOPsearchl)中,以五元组为键査询一会话表(表5)或一访问控制列表,并将查询到的结果传递至决策模块203。其进一步包括步骤304,根据五元组査询一会话表。对于一个已建立会话的报文,在会话表中一定存在匹配的会话表项,该会话表项包含报文处理所需的大部分信息,包括报文修改信息、路由信息等。因此执行步骤309,将匹配项所包含的内容作为查询结果,将该查询结果传递给决策模块203。对于一会话首包而言,其在会话表没有对应表项,因此查找会话表一定不会命中(即没有匹配项),此时执行步骤305,查询访问控制列表(表1表4)以确定匹配规则,并将其作为査询结果。步骤305进一步包括步骤306308。首先,执行步骤306,查询进端ACL表(表1或表3),在匹配规则为不允许时,进入步骤309,在匹配规则为允许或者重定向时,执行步骤307,进行路由选择,査询路由表选择出端口,此后,执行步骤308,查询出端ACL表(表2或表4),确定匹配规则是否为允许,无论结果如何,均进入步骤309。步骤309将上述查询结果,包括会话表的查询结果,访问控制列表的査询结果,传递给决策模块203。执行步骤310,在决策模块203(TOPresove沖,根据查询的结果作相应的处理。对于已建立会话的报文来说,先是根据分析模块201传入的"RSVLabel"进行分支跳转,进入相应的协议(例如TCP、UDP)分支程序进行处理,然后根据会话表的结果中的控制字段进行分支跳转,执行ACL的相关处理;对于会话首包,则先根据分析模块201传入的"RSVLabel"值进行分支跳转,进入相应的协议(例如TCP、UDP)分支程序进行处理,然后根据各个访问控制列表的数据结构匹配的结果进行分支跳转,进行ACL的相应处理。上述协议分支程序的处理为一般报文的处理,在此不再赘述。上述ACL处理的过程包括如果访问控制列表的匹配规则为允许或重定向,则执行步骤311,创建相应的修改策略和修改标签(MDFLabel),并传递至修改模块205;而如果访问控制列表的匹配规则为不允许,则执行步骤312,丢弃该报文。其中修改策略是告诉修改模块205如何修改报文,MDFLabel是指示报文在修改模块205中被哪个模块处理。此外,步骤310还包括根据査询的结果在会话表中建立相应的条目,以供同一会话的后续报文来临时査询,而不必再查询访问控制列表。在步骤311中>创建相应的修改策略和修改标签的步骤包括,将一些报文修改信息组合成修改策略和修改标签。其中对于一个已建立会话的报文,其修改信息包含在会话表中,而对于一个会话首包,其修改信息包含在访问控制列表的查询结果中。与访问控制列表相关的修改信息包括控制字段、重定向以后的发送端口、以及重定向以后的IP地址等。最后,执行步骤313,在修改模块205(TOPmodify)中,根据修改策略和MDFLabel,修改报文并转发出去。因此,通过本发明的上述方法,实现对报文的访问控制,包括允许、拒绝、重定向、转发等,本方法可以应用于各种类型的网络处理器中,通过访问控制列表的分析模块、查找模块、决策模块和修改模块等,来实现访问控制列表的功能。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。权利要求1.一种基于网络处理器的访问控制列表实现方法,该网络处理器具有分析模块、查找模块、决策模块和修改模块,其特征在于,所述方法包括下列步骤a.接收一个网络报文;b.在所述分析模块中,创建报文相关消息和硬件寄存器消息,并建立一五元组;c.在所述查找模块中,以所述五元组为键查询一会话表或一访问控制列表;d.将步骤c中查询到的结果传递至所述决策模块;e.在所述决策模块中,根据查询的结果作相应的处理,其中如果访问控制列表的匹配规则为允许或重定向,则创建相应的修改策略和修改标签,并传递至所述修改模块;如果访问控制列表的匹配规则为不允许,则丢弃报文;f.在所述修改模块中,根据所述修改策略和修改标签,修改报文并转发出去。2.如权利要求1所述的基于网络处理器的访问控制列表实现方法,其特征在于,在所述步骤c中,根据所述五元组查询一会话表或一访问控制列表的步骤包括cl.查询一会话表,如果在会话表中找到匹配项,则执行步骤d,如果未找到匹配项,则执行步骤c2;c2.查询所述访问控制列表以确定匹配规则。3.如权利要求2所述的基于网络处理器的访问控制列表实现方法,其特征在于,在所述步骤c2中,查询访问控制列表以确定匹配规则的步骤包括c21.查询进端口访问控制列表以确定进端口匹配规则,如果匹配规则为允许或重定向,执行步骤c22,如果匹配规则为不允许,则执行步骤d;c22.查询一路由表以选择报文的出端口;c23.查询出端口访问控制列表以确定出端口匹配规则。4.如权利要求1所述的基于网络处理器的访问控制列表实现方法,其特征在于,所述步骤e还包括根据查询的结果在所述会话表中建立相应的条目,以供同一会话的后续报文来临时查询。5.如权利要求1所述的基于网络处理器的访问控制列表实现方法,其特征在于,在所述步骤e中,创建相应的修改策略和修改标签的步骤包括,将报文修改信息组合成所述修改策略和修改标签。6.如权利要求5所述的基于网络处理器的访问控制列表实现方法,其特征在于,所述报文修改信息包含在所述会话表中。7.如权利要求5所述的基于网络处理器的访问控制列表实现方法,其特征在于,所述报文修改信息包含在所述访问控制列表的查询结果中。8.如权利要求1所述的基于网络处理器的访问控制列表实现方法,其特征在于,所述五元组包括源/目的IP地址、源/目的端口、协议类型。全文摘要本发明公开一种基于网络处理器的访问控制列表实现方法,该网络处理器具有分析模块、查找模块、决策模块和修改模块,该方法包括下列步骤a.接收一个网络报文;b.在分析模块中,创建报文相关消息和硬件寄存器消息,并建立一五元组;c.在查找模块中,以五元组为键查询一会话表或一访问控制列表;d.将步骤c中查询到的结果传递至决策模块;e.在决策模块中,根据查询的结果作相应的处理,其中如果访问控制列表的匹配规则为允许或重定向,则创建相应的修改策略和修改标签,并传递至修改模块;如果访问控制列表的匹配规则为不允许,则丢弃报文;f.在修改模块中,根据修改策略和修改标签,修改报文并转发出去。文档编号H04L29/06GK101325534SQ20071004204公开日2008年12月17日申请日期2007年6月15日优先权日2007年6月15日发明者张文良,曲延光,曹昊阳申请人:上海亿人通信终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1