创新的资源管理算法
基于会话的全分布式处理流程
山石网科全分布式架构
打破了传统架构的限制
【找准边界,吃定安全】往期文章:
从访问控制谈起,再看零信任模型
威胁情报加持,泛边界下的全局主动防御体系如何着手?
随着 2019 年我国以信息网络等新型基础设施为代表的“新基建”战略拉开帷幕,5G、千兆光网络建设发展迅速,移动互联网、工业互联网、车联网等领域发展日新月异。而随着 5G 的普及,业务发展迎来了爆发期。据统计,2022 年至 2024 年,移动数据流量(不含物联网)增长率将一直保持在 30% 以上,到 2024 年达到 3449 亿 GB 的规模。云计算、数据中心等基础设施快速扩容。网络带宽从主流 10G 已经向着 25G、40G、100G、200G 甚至 400G 发展。
与数据传输带宽快速增长形成鲜明对比的是,后摩尔时代的 CPU 算力的增速已经远远低于网络带宽的增速,并且差距还在持续增大。
图注:带宽性能增速比 (RBP) 失调
(引自《专用数据处理器 (DPU) 技术白皮书》)
通过对比网络宽带的增长趋势与通用 CPU 性能增长趋势,我们能看到一个现象:带宽性能增速比(RBP,Ratio of Bandwidth and Performance growth rate)失调。RBP 定义为网络带宽的增速对比 CPU 性能增速。以 Intel 的系列产品性能作为 CPU 的案例来展示 RBP,反应出网络带宽与 CPU 性能的变化趋势。
2010 年前,网络带宽的年化增长大约是 30%,到 2015 年增长到35%,但到了近些年,增长率达到了 45%。而 CPU 性能的增长从 10 年前的 23%,下降到 12%,并且近些年更降低到了 3%。在这三个时间段内,RBP 指标从 1 附近,上升到 3,并在近些年超过了 10。如果在网络带宽增速与 CPU 性能增速近乎持平,IO 压力尚未显示出来,那么当目前 RBP达到 10 的情况下,CPU 的算力几乎已经无法应对网络带宽的增速。
2019 年之后,随着 5G 接入的普及,应用及其数据传输需求快速增长,CPU 主频算力与数据传输速率出现了显著的“剪刀差”现象。预计到 2025 年,两者之间的差距将高达 60Gbps。
而早在 2013 年山石网科的科学家们就预见到了这个问题,并采用全分布式架构打破了这些限制。通过智能流量分配算法实现流量的分布式处理,并基于资源管理算法的专利技术实现实时动态信息的完全分布式处理,使安全设备可以在提供丰富的应用安全服务的同时具备极高的性能、可扩展性及可靠性。
图注:山石网科全并行处理架构
业界典型的传统安全产品架构中,有单 CPU 架构和多 CPU 架构之分。很明显,如上 RBP 失调问题所述,在高端安全产品上只使用一个单 CPU 的系统是无法满足用户要求的。但多 CPU 架构中的堆叠式架构和现有的分布式架构也都存在着各自的问题与瓶颈,无法使安全产品性能做到全面有效的线性增长,来满足应用及其数据传输需求快速增长的需求。
堆叠式架构的限制
堆叠式架构是将多个系统模块在一个大的系统中叠加起来,以此来提升整机的数据处理能力。但是这样一个系统叠加多个模块的问题是子系统模块之间的性能与容量不能相互支援,跨模块之间的性能利用率比较低且无法实现相互冗余。同时,对于整个系统中资源的管理和对实时动态信息(RTO) 的管理都会比较困难。因此,堆叠式架构无法使数据中心防火墙的资源得到有效利用。
实时动态信息 (RTO) 是指在进行数据包处理中动态创建的信息,这些信息既包含数据包处理过程中所需的信息,又包含进行攻击防护和系统监控所需的计数器和状态信息等。实时动态信息的处理机制是决定整个安全设备性能和可扩展性的关键因素之一。存储 RTO 信息的数据库即 RTO-DB。
分布式架构的限制
现有常见的分布式架构是将业务流量在各个模块上进行分布式的处理,而对于实时动态信息(RTO) 的处理方式是决定分布式架构性能的关键因素。现有的分布式架构中,有共享型分布式和复制型分布式两种。但是这两种分布式都存在着性能瓶颈和问题。
共享型分布式架构
共享型分布式架构是在多 CPU 的系统架构中采用集中的 RTO-DB 管理方式。
在共享型分布式架构中,RTO-DB 是一个全局的集中式数据库,所有的 RTO 信息都存储在这个 RTO-DB 中,所有对于 RTO 的操作都通过远程调用来实现。这样系统的性能会受限于单一的数据库,尤其是在 CPU 数量不断增加的情况下,这种一对多的模式将会对性能提升有更大的限制。同时,一旦这个集中式数据库出现问题将影响整个系统。因此,共享型分布式架构不仅会带来性能瓶颈,还存在单点故障的问题。
复制型分布式架构
复制型分布式架构是在多 CPU 系统中采用所有 CPU 上完全复制 RTO 信息的方式。
在复制型分布式架构中,RTO-DB 存储全部 RTO 信息,并且每一个 CPU 上都有相同的 RTO-DB 的复制信息。虽然这样可以避免单点故障问题,但是当 CPU 数量增加时,对于 CPU 之间 RTODB 的信息同步复杂度却是在不断增加的,会造成系统资源的内耗,如 CPU 资源的更多占用等,这也将成为系统性能扩展的瓶颈。简要总结,传统的安全产品架构方案中,系统的性能、线性扩展性以及可靠性都有很大的限制,无法满足新一代数据中心的发展趋势。
山石网科创新的板卡级并行冗余,是通过基于会话的智能流量分配算法,实现海量业务流量在SIOM 模块的 SSM 和 IOM 应用上分布式高速处理;并基于拥有专利技术的独特的资源分布管理算法,突破了多 CPU 下资源高效分配的技术壁垒,实现 RTO 信息在多 CPU 上分布式存储与同步。全分布式架构为性能的全面线性扩展提供架构基础,使包括吞吐量、并发连接数、每秒新建连接数在内的防火墙性能可以随着 CPU 的增加而全面的线性增长,并且为数据中心应用层安全提供强大的支撑。
分布式业务流量处理
从硬件架构上看,全分布式架构的硬件构成是由多个 SIOM 接口与业务模块组成的,它们由高速交换通道进行相互联接。
图注:典型的硬件架构
全分布式架构的 RTO-DB 是在 SIOM 的 CPU 上完全分布式部署的。每一个 CPU 负责一个本地的 RTO-DB(LRTO-DB 本地实时动态信息库),整个 RTO-DB 的信息完全分布式存储在各个LRTO-DB 中。同时,采用拥有专利技术的独特的资源分布管理算法,保证对于 RTO-DB 的定位和检索。
与之前的方式相比,全分布式 RTO-DB 处理方式可以使系统间通信复杂度恒定,即使是增加系统中 CPU 的数量,对于 RTO-DB 的管理和操作也同样可以保持高性能与高效运行。采用全分布式架构可以实现系统性能的全面线性扩展,保证系统的高吞吐、高并发、高新建,并大幅度提升应用层安全处理能力。同时,在可靠性方面也可以避免单点故障问题。
多核技术即在同一个处理器中集成多个完整的计算内核,每个计算内核实质上都是一个相对简单的微处理器,多个计算内核可以并行地执行指令,从而实现一个 CPU 芯片内的线程级并行。基于多核架构,主流厂商陆续推出了多种并行操作系统,利用多线程技术在多核上同步处理多个会话请求,实现高性能的安全控制与检测。
基于多核的安全操作分为两类,分别是异构操作和多核处理单元并行技术。
异构操作即每个核做不同的处理,比如一些核分配出来处理防火墙业务,一些分配出来做处理防病毒业务。这种操作方式的优点是编程比较简单。但是,不同核上的任务分配无法做到平均,可能处理防病毒业务的核很忙,处理防火墙业务的核还有空闲。另一方面,一个数据流如果需要做多个安全功能,就必须在多个核之间协调,增加了系统的延时。目前许多厂商的多核系统就采用这种设计,多核处理器只担任网络安全处理的任务,应用处理和内容安全仍然由主控 CPU 处理。
另一类操作系统是多核处理单元并行技术,所有核处理逻辑都一样,每个安全功能都可以在任何一个核上处理,同一个数据包也会在一个核上处理完毕。山石网科的多核 Plus G2 全并行架构即采用这一操作。
在山石网科并行操作系统里,同一 CPU 芯片中的所有处理都针对多核系统而开发,重复利用硬件平台的并行性,使 Hillstone 设备在新建连接等防火墙指标上站在业界的前列。在应用处理方面,所有流引擎都为高度并行化编程开发,降低了数据结构的相互依赖,使性能和容量能够与核数接近线性地增长。Hillstone 山石网科的全并行处理方式能够保证多个安全功能开启情况下设备的高吞吐和低延迟。
图注:普通多核方案与山石网科的创新多核Plus G2架构对比
在传统的安全设备中,流量需要流经几个独立的网络引擎、分类引擎、模式匹配引擎和策略引擎。这种重复劳动不仅效率低而且性能低。山石网科的多核 Plus G2 全并行架构提出了基于流检测的功能模块级并行处理。一旦数据包进入处理流水线,流水线的不同处理阶段只处理一次,包括网络功能、协议解析、协议安全处理、内容解析、内容安全处理、用户、应用、行为识别和应用处理等。每个阶段模块的处理结果会分别输入到需要的下阶段模块进行处理,从而减少重复的分析和流程处理,大幅降低数据包的处理延时,提高系统容量和性能。
传统的威胁检测是基于文件的。这种方法是基于主机的安全解决方案实现的,并且老一代网关内容安全解决方案也继承这一方法。使用这种方法,首先需要下载整个文件,然后开始扫描,最后再将文件发送出去。从发送者发送出文件到接收者完成文件接收,会经历长时间延迟。对于大文件,用户应用程序可能出现超时。而且,缓存数据占用大量内存,系统无法同时对大量的数据流进行扫描。
山石网科的安全扫描引擎完全是基于流的。安全扫描引擎在数据包到达时进行检查,如果没有检查到威胁,则发送数据包。这种方法大大减少了数据的延时,也使应用的响应速度大大提高。同时,基于流的扫描引擎因为不需要对每个数据流做大量缓存,系统安全功能的容量也得到了极大地提高。
图注:基于文件检测
图注:基于流检测
基于流的技术要求系统所有处理环节都是基于流的处理。一个系统如果有基于流的 TCP 代理和基于流的协议分析,但安全扫描却是基于文件的,所带来的效果只能是基于文件的。处理流水线中最差的环节决定了系统的性能。Hillstone 山石网科在以下多个层面上运用了流引擎技术,为用户带来了完全基于流引擎技术的数据平面处理:
• TCP 代理
• 解析器:包括协议解析(例如 HTTP、SMTP 等)、内容解析(例如 MIME、base64 等)、内容解压缩(例如 gunzip、unrar 等)、 文件解析(例如 PE 格式等)、SSL 解密
• 安全处理:包括协议控制、内容控制、AV 扫描、IPS 扫描、异常发现等
• 应用处理:包括 ALG、应用代理、应用隧道、应用优化等
山石网科的全分布式架构打破了传统架构的限制。它采用了创新的资源管理算法实现全分布式实时动态信息的管理机制,采用了基于会话的全分布式处理流程实现业务流量在多块 SIOM 模块上的分布式处理。由此带来的是,整个系统的性能和可扩展性可以随着 CPU 数量的增加而全面线性的增长。基于这种创新分布式架构的数据平面软件也可以很容易的扩展应用到虚拟机中,因此非常适合于满足数据中心的安全应用和服务的需求。