下一代安全设备硬件平台分析

来源:百度文库 编辑:神马文学网 时间:2024/04/29 09:36:46
安全威胁的复杂化,对下一代网络安全设备也提出了更高的要求:从集成更多、更灵活的功能、更快的处理速度,到面向应用更细粒度的检测,都给安全设备的硬件平台定出了新的标准。未来安全设备的硬件平台会有怎样的发展趋势呢?我们特地编辑了两篇相关文章,从角度进行分析,以飨读者。
x86架构仍是UTM的理想选择
作为集成化产品的代表,UTM在越来越多的用户中得到了认可,由于加入了更多的功能应用,其硬件架构的选择也需要注入更多的灵活性。
传统的三驾马车
从目前市场上的硬件架构来看,防火墙和UTM产品大概分为三大类:
第一类是基于x86平台的,这种平台通常使用一颗或多颗主CPU来处理业务数据,网卡芯片和CPU通过PCI总线来传输数据。由于传统的32位PCI总线频率为33MHZ,所以,理论通讯速率为:132 MB/s即:1056 Mb/s。
从总线速度来看基于32位PCI总线的x86平台,做为百兆防火墙的方案是没有任何问题的。但x86平台的防火墙方案,数据从网卡到CPU之间的传输机制是靠“中断”来实现的,中断机制导致在有大量数据包的需要处理的情况下(如:64 Bytes的小包,以下简称小包),x86平台的防火墙吞吐速率不高,大概在30%左右,并且CPU占用率很高。这是所有基于x86平台的防火墙所共同存在的问题。
第二类,基于ASIC架构的防火墙、UTM产品。从上面对x86架构防火墙的分析中,我们了解到x86平台的防火墙其最大的缺点就是小包通过速率低,只有30%~40%,造成这个问题的主要原因是因为x86平台的中断机制以及x86平台的防火墙所有数据都要经过主CPU处理。基于ASIC架构的防火墙从架构上改进了中断机制,数据从网卡收到以后,不经过主CPU处理,而是经过集成在系统中的一些芯片直接处理,由这些芯片来完成传统防火墙的功能,如:路由、NAT、防火墙规则匹配等。这样数据不经过主CPU处理,不使用中断机制,理所当然,ASIC是功能相对单一的防火墙的最佳选择。
但随之而来的问题是,ASIC架构的防火墙是芯片一级的,所有的防火墙动作由芯片来处理。这些芯片的功能比较单一,要升级维护的开发周期比较长。尤其是作为多功能集成的UTM网关来说,无法在芯片一级完成杀毒、垃圾邮件过滤、网络监控等比较复杂的功能,所以说,ASIC架构用来做功能简单的防火墙,是完全适用的,64 Bytes的小包都可以达到线速。但ASIC架构做为UTM就不是理想的选择,因为ASIC架构不可能把像网关杀毒、垃圾邮件过滤、网络监控等这些功能做到芯片一级去。
第三类,基于NP架构的防火墙。NP架构实现的原理和ASIC类似,但升级、维护远远好于ASIC 架构。NP架构在每个网口上都有一个网络处理器,即:NPE,用来处理来自网口的数据。每个网络处理器上所运行的程序使用微码编程,其软件实现的难度比较大,开发周期比ASIC短,但比x86长。作为UTM,由于NP架构每个网口上的网络处理器性能不高,所以同样无法完成像网关杀毒、垃圾邮件、过滤、访问监控等复杂功能。
可能有人会问?ASIC 和 NP为什么不可以把网关杀毒、垃圾邮件过滤、访问监控等这些功能放在主CPU上来实现?这样不就可以做为UTM方案使用了吗?实际上,目前有很多基于NP和ASIC的UTM正是这样做的,但问题是ASIC和NP架构的防火墙,其主CPU性能通常很低,如:Intel基于IXP2400的千兆高端NP方案,主CPU只有1.0G,处理能力还比不上Celeron 1.0G,大家可以对照一下与其主频相当的x86平台的处理能力。所以如果以ASIC和NP架构来实现UTM网关,只能是做为低端的方案来使用,如桌面型的UTM,而并不能做为中、高端的UTM来使用。
谁是合适的“芯”
言归正传,那什么才是UTM网关合适的硬件方案呢?如果要在上述三种方案中选择一种的话,现阶段的技术条件下非x86架构莫属,当然,随着技术的进步,还有可能出现第四种解决方案,可以做为实现UTM网关的完美平台,但这还有待技术的进一步发展。x86平台的主要缺陷在于64Bytes的小包不能达到线速。但在实际用户中,除非是DoS、DDoS攻击才会产生大量的小包,用户正常的应用不可能产生大量的小包。如果在基于x86平台的UTM产品中,解决好DoS和DDoS攻击的问题,那么,x86平台就是UTM网关理所当然的解决方案。对于这个问题,已经有产品开发了防DoS、DDoS攻击的功能,不但可以防御来自外网的DoS攻击,而且能够防御来自企业内部网络的DoS、DDoS攻击,这样我们的UTM产品就解决了这个问题,使网关的稳定性和可靠性大大加强,在UTM整体性能方面优越于NP、ASIC。在遇到大规模的DoS、DDoS攻击时,也不会占用太多的CPU资源。
既然选择了x86做为UTM网关的硬件平台,那么,还会存在一个问题:“如果UTM网关处理的业务比较多,是否会影响网络速度?”,比较简单的答复是这样的:在CPU占用低于90%的时候,是不会影响网络速度的。因为UTM网关虽然集成了众多的功能,并且要求主CPU来处理这所有的业务。但从业务的方面来看,是独立的,如:收发邮件的数据就不会被做为通过HTTP上网的数据来处理,通过HTTP上网的数据也不会被做为邮件的数据来处理,所以当一个数据包通过UTM时,是分业务分流程处理的,在CPU占用90%以下时,CPU完全可以实时的处理这些业务。但如果CPU占用超过了90%,那怎么办?x86的平台是不是不能解决了?答案是否定的,对于这个问题,x86的平台的方案有两种解决方法:
方法一:支持多颗CPU。部分高端设备都配备了2颗以上CPU,更高端的设备甚至配备4颗CPU,这样CPU的处理能力也就不会成为瓶颈。
方法二:使用加速卡。比如把邮件过滤做成一个加速卡安装在系统中,在主CPU发现某个数据包为邮件数据时,把该数据包交给加速卡来完成,不占用主CPU资源。
综上所述可以得出一个结论,x86架构是UTM网关理想的硬件平台,目前来看,没有其他平台可以代替。
全面对比FPGA和ASIC架构
由于性能上的优势,FPGA和ASIC一直是安全设备厂商青睐的硬件架构,那么它们之间的区别和应用特点是什么呢?
FPGA和ASIC的比较
ASIC是专用集成电路的简称,一般情况下用于性能很高,用量很大的场合。FPGA(Field Programmable Gate Array,现场可编程门阵列)作为现场可编程器件,在最近几年发展非常迅速,其可升级的特性为最大特点。
FPGA因为具有高度的灵活性,占据了很多ASIC的领域。
资源利用率和功耗。从FPGA资源利用的角度看,FPGA作为通用器件,在架构设计中是从统计的角度出发进行内部资源的比例分配(比如查找表的输入数量、存储器和逻辑的比例等等)。但是,针对一个安全产品的个案来讲,统计的资源利用情况不一定适合自己的应用。比如存储器资源,特定的体系架构中,作为数据缓冲的内部存储器往往需要很大,但是控制逻辑却不是那么多,这时存储器的资源和逻辑资源的分配出现了失调,不能找到一个合适的FPGA以低成本的方式直接实现。变通的方法只能是修改体系架构,使用外部的存储器,这样就不可避免地增加了成本,降低了可靠性。
在ASIC的设计中,完全不用考虑资源比例的限制,可以根据实际的需要优化体系架构。
同样地,因为FPGA的资源利用率比较低,有同样功能的FPGA芯片的功耗会远远大于ASIC芯片,这样就增加了系统的散热负荷,不可避免地增加了成本,降低了可靠性。
设计难度。对于FPGA的设计难度的估计往往过于乐观。对于前端设计,FPGA和ASIC相差不多。对于后端设计,ASIC往往被认为有着非常长的时间和复杂度,也容易出问题。而对于FPGA来说,后端的实现不是很困难的事情。
但是,事实上,后端的复杂度是由设计的复杂度和成本约束共同决定的。也就是说,如果同样的设计在ASIC的后端实现中很困难,那么在FPGA中情况只能更加恶化。因为在FPGA中,同样功能的逻辑电路经过映射后的逻辑级数会比ASIC映射后的逻辑级数增加很多,导致时序收敛更加困难。在大部分的FPGA设计中,是用芯片面积来换取性能的,其实质是牺牲了效率,当然带来的结果就是成本的提高。
灵活性。关于ASIC的批评声音中,很重要的一点就是ASIC不能改变,不具备和FPGA同样的灵活性。这个说法在很大程度上是没有问题的,但是随着技术的发展,ASIC也在从架构角度增加灵活性,以提高ASIC芯片对未来业务的适应能力。经常用到的技术包括:ASIC内部内嵌可编程单元(NP技术类似)、结构化ASIC、增加对未知应用的预留接口等。
FPGA的低成本方案。在FPGA的单件成本高的问题上,FPGA厂商提出了各自的方案。以领先的两家公司Xilinx和Altera为例,他们分别提出了EasyPath和HardCopy的成本降低方案。
EasyPath是通过优化测试技术从而只测试用户用到的芯片部分来节约成本。如果一个设计的芯片资源利用率已经很大的话,EasyPath因为没有很大的操作空间,应该不会有很明显的成本降低。
HardCopy实际上是一种结构化ASIC的方案,已经不能把它作为FPGA来对待。其原理是通过重新映射把原来的FPGA逻辑用结构化的ASIC方式实现。这种方案能够比FPGA明显地降低芯片的尺寸,还可以选择更合理的封装,从而降低成本。但是带来的后果是时序有变化和重新设计PCB板。这种方案也有NRE(None Recurring Engineering,一次性投入费用)的问题。
UTM中的技术路线
关于UTM技术路线的讨论越来越热烈,下面重点讲一下FGPA和ASIC在这类产品中的作用。
作为一种集成的安全网关产品,UTM目前最受舆论攻击的弱点就是打开所有的内容安全选项后,设备的性能急剧下降。UTM作为各种安全技术的统一整合体,需要根据各种应用的实际情况来选择合适的架构。通常来讲,作为防垃圾邮件和防病毒,x86的高性能计算能力受到的关注较多。而配合x86的平台,FPGA大多设计为协处理器,以便利用其可灵活编程的能力来用同样的硬件支持不同应用的要求。
作为VPN功能部分,利用成熟的ASIC来实现IPSec或者SSL VPN可以获得非常高的性能价格比。
然而,作为UTM的核心控制单元部分,只有ASIC才能够胜任UTM的高性能要求。核心单元需要处理10G左右的会话管理、防DDoS攻击、TCP组流、二层交换、三层路由和交换网处理。这样的性能和功能只有用ASIC才能实现。