一种采用amp架构提升ips检测性能的方法

文档序号:7721121阅读:331来源:国知局
专利名称:一种采用amp架构提升ips检测性能的方法
技术领域
本发明涉及网络安全和组网技术领域,特别涉及一种采用AMP架构提升IPS检测性能的方法。
背景技术
入侵防御系统(IPS)作为一种串接在网络当中,对所保护网络提供深层攻击防御
的安全产品,已经得到了越来越广泛的应用。然而,随着网路技术的进步和各行业网路应用
的纵深发展,入侵防御系统的性能在检测过程中的地位越来越重要,只有在保证入侵防御
检测性能的情况下,高效的分析算法、完整的规则集等技术才可能发挥作用。 鉴于IPS的特征的复杂性和实时更新的特点,IPS的检测和特征过滤一般都是通
过软件来实现,但是传统的软件形式的IPS产品受到性能的限制,只能应用在中小型网络
中,基于X86的架构的产品无法达到千兆流量的要求。 目前市场上的IPS产品为了突破IPS的性能瓶颈,大多通过硬件的方式来提升IPS的处理速度,具体做法是用硬件来加速对数据包网路层以下的处理,具体包括数据包解码、交换、ACL(访问控制列表)、路由、NAT(网路地址转换)等;IPS检测功能则由软件来实现。主要采用的硬件方式有NP(网络处理器)、ASIC(供专门应用的集成电路)。近年来,网络处理器(NP)在千兆环境中得到了日益广泛的应用,但NP的优势主要在于网络层以下的包处理上,若进行内容处理则会导致性能的下降,ASIC架构的IPS是通过专门设计的ASIC芯片逻辑进行硬件加速处理,通过把指令或计算逻辑固化到芯片中,获得很高的处理能力,由此,能明显地提升了 IPS产品的性能;但ASIC架构的IPS的缺点也同样明显灵活性和扩展性不够、开发费用高、开发周期过长,还不能支持太多的功能。 以上硬件加速实现方式虽然在一定程度上提升了对网路数据包的网路层以下的处理性能,但对提升IPS的检测性能却无能为力。

发明内容
本发明的目的在于,提供一种采用AMP架构提升IPS检测性能的方法,能够解决现有的IPS性能瓶颈,在多核处理器平台上利用并行处理技术来提升IPS产品性能。
本发明的采用AMP架构提升IPS检测性能的方法,包括下列步骤
步骤A :硬件层接收网络数据包,通过硬件分流机制把数据包交给网络处理器NP ;
步骤B :NP处理数据包收到数据包后,对该数据包执行网络流量处理,包括IP碎片重组、数据包解码、交换、连接的建立和维护,将处理后的数据包入IPS队列,其中,每个IPS检测进程对应一个IPS队列; 步骤C :IPS进程在其IPS队列上等待数据,在IPS队列上有数据时,对数据包进行特征检测,并将检测过的数据包注入网络处理层; 步骤D :NP获取从IPS进程传下来的经过IPS检测后的数据包,进行网络流量处理。
3
其中,所述步骤A中,所述硬件分流机制包括硬件五元组方式和采用轮询方式。
其中,所述硬件五元组包括源IP地址、目的IP地址、源端口 、目的端口 、协议。
其中,在所述步骤B中,将处理后的数据包入IPS队列时,根据每个连接的ID的hash值确定IPS接收队列。 另外,在所述步骤A之前,进一步包括下列步骤 预先在多处理硬件平台上,根据具体流量需求,将CPU集分成Li皿x CPU集和网络操作系统CPU集,二者之间采用非对称多处理器AMP架构异步执行,Linux CPU集和网络操作系统CPU集分别采用对称多处理器SMP架构并发执行。 本发明的有益效果是依照本发明的采用AMP架构提升IPS检测性能的方法,NP集并发执行,能够大大提高对网络数量的处理效率;IPS检测进程并行执行,能够大幅提高IPS检测的性能;分解任务,采用AMP架构能够减少并发系统中CPU之间的同步等额外的开销;对接收的数据包使用了零拷贝技术,减少数据拷贝次数,减少系统调用。


图1为本发明采用AMP架构提升IPS检测性能的整体框架 图2为本发明采用AMP架构提升IPS检测性能的数据流程图。
具体实施例方式
以下,参考附图1 2详细描述本发明的采用AMP架构提升IPS检测性能的方法。
本发明的核心思想是开发一款基于多核的IPS系统,该系统采用AMP架构,使数据包的网路处理和IPS检测异步执行,并且让IPS检测进程和网路处理内部的多个处理器并行执行,这样任何时候都有多个IPS检测进程并行执行,从而在根本上解决IPS系统的性能瓶颈。 对于多核处理器,可以根据具体需求把CPU集(处理器集合)分成Li皿xCPU集和NP(网络处理器)集,Linux CPU集被调度执行Linux操作系统,在此之上运行IPS检测进程;NP集被调度执行网络操作系统,在此之上运行网络协议栈,完成网络流量处理。 一旦某些处理器被分配去执行某一种操作系统,它们将一直被调度执行该操作系统;这正是AMP架构的含义所在,即Li皿xCPU集和NP集是异步执行的。由于每个操作系统都有多个处理器在执行,它们采用SMP的方式运行,即将每个处理器平等看待,每个处理器运行相同的操作系统,它们是并发执行的。通过这种操作系统间采用AMP架构,操作系统内采用SMP分配方式的结果是Li皿x CPU集并发执行IPS特征检测,NP集并发执行网络流量处理,保障了多CPU的并行度;Li皿x CPU集和NP集异步执行,它们执行不同的操作系统,从而减少了并发CPU之间的同步开销。正是通过这种操作系统间异步,操作系统内多线程同步的方式,最大限度的利用了多处理器资源,从而大幅的提升IPS产品性能。 在本发明的实施例中采用RMI公司的处理器XLR系列,它是专为网络流量处理而设计的一款处理器,包含有RMI操作系统,该操作系统主要是针对网络流量处理的。在该操作系统之上运行TOS(Topsec Operating System)协议栈。XLR处理器是多核多线程的,它有8个核,每个核有4个线程。由于一个核的多个线程是并行的,所有可以认为它有32个处理器(线程)。
如图1所示,RMI操作系统运行T0S协议栈,Linux操作系统运行IPS检测进程, 0-20号线程分配给Linux操作系统,21-31号线程分配给RMI操作系统,对于Linux操作系 统,可分配0-15号线程给IPS进程,16-19号线程给Li皿x操作系统使用。这样分配的结果 是12个CPU并发执行TOS协议栈,16个IPS检测进程并行执行。 如图2所示,在本发明的采用AMP架构提升IPS检测性能的方法中,施该架构对一 个数据包的处理过程,包括如下步骤
第一步接收数据包。 网络来的数据包通过硬件GMAC或SPI4接收后,到达硬件分流机制;然后通过硬 件分流机制把数据包交给网络处理层的处理器。硬件分流有两种机制, 一种是采用硬件五 元组(源IP地址、目的IP地址、源端口、目的端口、协议)的分流,这样同一个流的数据包 会始终被一个NP处理,该方法能提高对数据包的网络处理效率,其缺点是可能造成NP集分 配不均某些NP很忙,某些NP—直空闲;另一种方式是采用轮询方式,即这个数据包给了 NP1,下个数据包给NP2,这样能保证各个NP的负载均衡,其缺点是处理器效率有一些下降。 在实施中,选择了轮询的分流方式。假设硬件分流机制选择了 NP1,那么数据包会到达NP1。
第二步NP处理数据包。 每个NP在空闲时会做两件事情,一是等待硬件分流机制的消息,二是会去查看 IPS的发送队列。如果有消息(数据包)表明该NP被调度,它将去执行TOS协议栈,TOS协 议栈包括数据包解码、IP碎片重组、交换、连接的建立和维护、ACL(访问控制表)、NAT(网 络地址转换)、入IPS接收队列。如果IPS发送队列不为空,表明已经有IPS检测进程完成 了检测,需要做后续的处理,包括路由表的查找和维护、数据包出接口。
NP1 —旦接收到消息,将根据TOS协议栈代码执行网络流量处理,接着经过NP1把 数据包交给分流机制。分流机制的作用实际上就是把一个连接上的所有包都送到一个IPS 检测进程。实施中,根据Session Id(每个连接的id号唯一 )的hash值来确定IPS接收 队列。如果hash的结果是IPS进程16对应的接收队列,则根据分流机制将进入对应的接 收队列,最终由IPS进程16接收处理。
第三步IPS进程检测数据包。 每个IPS进程在自己的IPS接收队列上等待数据, 一旦IPS队列有数据,就调用 IPS进程的解码器、预处理器、检测引擎等IPS检测。最后再将检测过的数据包入IPS发送 队列。 第四步转发数据包。 第二步已经提到NP在等待的过程中会去查看IPS的发送队列,如果IPS发送队列 有数据,该处理器会从队列中取出数据包,完成TOS协议栈接下来的工作。其大致的工作是 NP1会根据IPS检测进程的处理结果,决定是丢弃、转发,还是进行QOS流量控制,如果是丢 弃,则执行释放内存等后续操作;如果是转发和QOS流量控制,还需要执行路由查找,通过 NP1到硬件出口,通过GMAC SPI4将数据包发送出去。 综上所述,依照本发明的采用AMP架构提升IPS检测性能的方法,与其现有技术相 比,从以下几个方面提升IPS产品的检测性能
1、NP集并发执行 NP集采用SMP架构,每个NP被平等看待,它们执行相同的网络操作系统,运行相同的网络协议栈,NP集并发执行,充分利用了网络操作系统擅长处理网络流量的特点,大大提 高了对网络数量的处理效率。
2、IPS检测进程并行执行 Linux CPU集采用SMP架构,每个Linux CPU都可以运行一个IPS检测进程,同一 时刻有多个Li皿x CPU同时执行IPS检测,即相当于多套IPS检测系统同时检测,从而大幅 提高了 IPS检测的性能。
3、分解任务,采用异步的架构 Linux CPU集和NP集采用AMP架构,异步执行;它们执行各自的操作系统,这样可 以避免因为并发CPU数量的增加导致CPU之间的开销急剧增加的问题(例如IPI中断、读 写锁、原子操作等开销)。
4、零拷贝技术 由于对接收的数据包使用了零拷贝技术。数据包从网络设备到网络层,从网络层 到IPS检测进程用户空间的传递过程中,减少数据拷贝次数,减少系统调用,实现CPU的零 参与,彻底消除CPU在这方面的负载。 以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述, 但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改, 这些变化和修改均在本发明的保护范围内。
权利要求
一种采用AMP架构提升IPS检测性能的方法,其特征在于,包括下列步骤步骤A硬件层接收网络数据包,通过硬件分流机制把数据包交给网络处理器NP;步骤BNP处理数据包收到数据包后,对该数据包执行网络流量处理,包括IP碎片重组、数据包解码、交换、连接的建立和维护,将处理后的数据包入IPS队列,其中,每个IPS检测进程对应一个IPS队列;步骤CIPS进程在其IPS队列上等待数据,在IPS队列上有数据时,对数据包进行特征检测,并将检测过的数据包注入网络处理层;步骤DNP获取从IPS进程传下来的经过IPS检测后的数据包,进行网络流量处理。
2. 如权利要求1所述的采用AMP架构提升IPS检测性能的方法,其特征在于,所述步骤A中,所述硬件分流机制包括硬件五元组方式和采用轮询方式。
3. 如权利要求2所述的采用AMP架构提升IPS检测性能的方法,其特征在于,所述硬件五元组包括源IP地址、目的IP地址、源端口 、目的端口 、协议。
4. 如权利要求1所述的采用AMP架构提升IPS检测性能的方法,其特征在于,在所述步骤B中,将处理后的数据包入IPS队列时,根据每个连接的ID的hash值确定IPS接收队列。
5. 如权利要求2所述的采用AMP架构提升IPS检测性能的方法,其特征在于,在所述步骤A之前,进一步包括下列步骤预先在多处理硬件平台上,根据具体流量需求,将CPU集分成Linux CPU集和网络操作系统CPU集,二者之间采用非对称多处理器AMP架构异步执行,Linux CPU集和网络操作系统CPU集分别采用对称多处理器SMP架构并发执行。
全文摘要
本发明提供一种采用AMP架构提升IPS检测性能的方法,包括下列步骤步骤A硬件层接收网络数据包,通过硬件分流机制把数据包交给网络处理器NP;步骤BNP处理数据包收到数据包后,对该数据包执行网络流量处理,包括IP碎片重组、数据包解码、交换、连接的建立和维护,将处理后的数据包入IPS队列,其中,每个IPS检测进程对应一个IPS队列;步骤CIPS进程在其IPS队列上等待数据,在IPS队列上有数据时,对数据包进行特征检测,并将检测过的数据包注入网络处理层;步骤DNP获取从IPS进程传下来的经过IPS检测后的数据包,根据检测结果进行后续的处理。本发明能够在多核处理器平台上利用并行处理技术提升IPS性能。
文档编号H04L12/26GK101778012SQ20091024326
公开日2010年7月14日 申请日期2009年12月30日 优先权日2009年12月30日
发明者张宏君 申请人:北京天融信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1