利用多核技术提升IPS性能

时间:2022-09-21 06:20:19

利用多核技术提升IPS性能

在多核处理器硬件平台上,可以利用并行处理技术来提升IPS产品性能,但是实际性能的提升取决于IPS并行化的方法及程度。不幸的是IPS软件的并行化远比硬件增加一个或几个物理内核要复杂得多,这涉及到操作系统并发工作的模式、流量的分担与负载、IPS引擎的并行检测、配置的同步与竞争控制、事件统计以及运行调试等问题。

首先,IPS中的操作系统要支持并行化。操作系统在多核处理器硬件平台上一般有两种构架,一种是SMP方式,也称为同构方式; 另一种为AMP方式,也称为异构方式。SMP架构顾名思义就是将多个内核平等看待,每个内核运行的操作系统相同,且每个内核上都运行一套IPS系统,这样从数据接收、连接建立、数据检测到数据发送都是并发执行的,相当于多个IPS系统在同时运行。AMP架构是将多个内核区别看待,可以运行不同的操作系统也可以在相同的操作系统上运行不同的任务,各个处理器内核按照任务划分,各负其责,规避共享资源的竞争,做到“术有专攻”,从而提升IPS产品的综合性能。选择哪一种架构需要根据处理器硬件平台与IPS系统本身的特点来定。通常在硬件处理器内核比较少的情况下选择SMP架构,在需要将一大堆不可能并行处理的功能集成到产品中时只好选择AMP架构。如果已经使用了硬件内容加速,那么可以选择SMP架构,如果是新开发IPS产品,内核分工可以动态调整的AMP架构是不错的选择。

其次,要考虑流量的分担与负载问题。多个内核并行处理,它们共同的输入就是来自网络的数据流,如何将这些数据流“喂”给处理器内核呢?最简单的是轮询方法,即将到达的数据依次交给等待处理的内核,各个内核平均分配,这对早期的基于单个数据包检测的IPS系统比较适合。现代的IPS系统功能丰富,不仅可以进行TCP流重组,还可以跟踪应用层协议和控制流量。但是在多个内核上并发地跟踪TCP状态机是个棘手的问题,实现难度较大,所以出现了另外一种按照五元组分流的方法,即将同一个数据流分配到同一个内核上,保障一个数据流始终由一个内核处理。这种方式大大降低了IPS内部实现复杂度,虽然具有流量较小时负载不均衡的副作用,但研发成本较低。

第三,对提升性能至关重要的IPS引擎进行并行检测。引擎主要对应用协议识别和分析、攻击特征匹配、策略检查以及后续的数据处理。如果运行于应用层,可以将每个IPS引擎作为一个单独的进程对待,它们共用一份公共的攻击特征库,对各自输入的数据流进行并行检测和处理,就好像多个引擎在同时工作。但是数据流之间有时候是相关的,比如一个应用层协议可以动态协商出它的一个子连接,当这个子连接分配到另外一个IPS进程上处理时,要想控制它就需要进行进程间通信,这样引擎的独立性就被破坏了。如果IPS作为一个内核模块运行于操作系统核心层,那么需要对所有可能产生竞争的共享资源进行并发访问控制,使其彻底并行化,除此之外可能没有什么更好的办法了。

第四,解决棘手的配置问题。用户常常在系统运行过程中进行配置变更,而且总是希望这种变更后的配置能够即时生效。在并发IPS系统中只有一份配置,配置的变化意味着所有的并行工作都要暂停下来,需要根据新的配置调整运行参数。运行时频繁地调整配置不可避免地影响并发IPS系统性能,如果设计不好还会产生“停顿”,导致丢包。同样地,在IPS系统中,各种统计数据(流量统计、事件统计、时间统计等)都需要实时地准确地显示到屏幕中,多个引擎需要并发地对单一数据结果操作。

第五,调试。与基于单内核的系统相比,并发IPS系统的调试工具极度匮乏,调试手段也很不成熟。那些传统的强大的单步跟踪工具已经没有用武之地,就连简单的打印调试信息也需要特别小心,因为你需要先知道这个信息是哪个内核打印的才好定位。如果系统运行时死锁,那么整个系统或者IPS进程会被挂起,但留下的供你调试的线索却非常有限。总之,有四类问题比较关键: 死机、内存泄漏、内存篡改和报文调试。这些问题影响并发IPS系统的稳定,当然也影响到性能发挥。

尽管利用并行处理技术提升IPS产品性能并非易事,还有很多技术有待探索和突破,但在当今多核处理器迅速普及并不断发展的趋势下,硬件计算资源的开发暨并行处理技术的应用将为IPS产品带来性能质上的飞跃,也将引发现有IPS产品市场布局的变革。

上一篇:数据中心产品推崇节能设计 下一篇:运营商级以太网企业应用正当时