摘要:比pcre和google的r2引擎快数10倍的sangforregex正则引擎的面世,大幅降低了深信服下一代防火墙(ngaf)的cpu占用率,提升了ngaf的整机吞吐,可以更高速地处理用户的业务数据。
正则式引擎,是防火墙整个引擎系统的一部分,必须通过正则式引擎,防火墙才能实现针对数十万的威胁库进行比对分析。深信服下一代防火墙(ngaf)使用正则表达式对流量的内容进行匹配,从而精确识别网络中的攻击行为。一般而言,如果正则引擎的资源消耗比较大,会严重影响到防火墙的性能。
经过我们的研究分析,业界已有的正则表达式匹配方法,速度一般比较慢,制约了下一代防火墙整机速度的提高。为此,在2013年初,我们提议要设计并实现全新的sangfor regex正则引擎,要把正则表达式的匹配速度提高到数十gbps,从而提升深信服ngaf设备的整机速度,改善用户体验。
为了实现数十gbps的高速度,在研发期间,深信服克服诸多难题,并获得了技术突破。比如,为了识别同一模式的流量,需要求正则表达式具有多种不同的写法,从而使sangfor regex引擎具备正则表达式化简的功能。无论以何种方式输入一个正则,都将被转化为等价的最简形式,以达到最高的匹配性能,此项技术在业界是首创的。
最困难的问题是一些很特殊的正则表达式,比如同一个模式重复数千次的情况,业界的一般做法是将表达式展开,变成一个庞大的正则式,这样的话,性能会明显下降。深信服利用运筹学的“动态规划”算法,设计了特殊方案来处理这一类正则表达式,结果,产出的高性能让人惊喜。
在发布正式版本前,也就是引擎还处在验收测试的阶段,经与用户协商,我们将sangfor regex提供试用,结果用户的ngaf设备每秒吞吐量立刻上升50%。另有大量测试数据表明,该正则引擎的匹配速度可达到每核10~50 gbps,比pcre和google的re2等知名的开源引擎快数十倍,达到业界领先水平。此项技术尤其适合对每秒吞吐量要求非常高的场景,如电子商务等。