防火墙本身就是一台为网络而设计的计算机,与通用计算机一样防火墙是由硬件和软件组成,现今防火墙有着多种硬件技术架构,不同的硬件架构有着各自不同的特点。先说明一下什么是处理器体系结构和体系架构。
体 系 架 构 :
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型的CPU 。
体 系 结 构 :
在计算世界的 " 体系结构 " 一词被用来描述一个抽象的机器而不是一个具体的机器实现 。一般而言,一个CPU的体系结构有一个指令集加上一些寄存器而组成。 “ 指令集”与“ 体系结构 ” 这两个术语是同义词 。
指令集:
指令集可分为复杂指令集(CISC)和精简指令集(RISC)两个类型。MIPS是一种RISC处理器, X86是一种cisc架构的处理器。
X86架构
优点:灵活性高,扩展性好。
缺点:性能差,小包速率低(30%-40%)。
X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86处理器已经广泛运用到了PC领域。基于X86架构的防火墙,由于CPU处理能力和PCI总线速度的制约,在实际应用中,尤其在小包情况下,这种结构的千兆防火墙远远达不到千兆的转发速度,难以满足千兆骨干网络的应用要求。
X86架构是一种通用的“CPU+Linux”操作系统的架构。其处理机制是,数据从网卡到CPU之间的传输是依靠“中断”实现,这导致了不可逾越的性能瓶颈,尤其在传送小包的情况下(如64 Bytes的小包),数据包的通过率只能达到20%~30%左右,并且它的设计是必须依靠CPU计算,因此,很占CPU资源,这也是为什么X86防火墙性能上不去的原因。虽然Intel提出了解决方案,将32位的PCI总线升级到了PCI-E ,总线速度最高可达16GBps,但是,小包传送问题依然没有解决。但X86的产业化规模最大,随着Intel的不断优化性能已经不差且在应用层的处理速度要比MIPS架构好。
ASIC架构
优点:性能高。
缺点:灵活性低,扩展性差,开发费用高,开发周期长。
专用集成芯片(Application Specific Integrated Circuit,简称ASIC),为特定要求和特定电子系统而设计、制造的集成电路。ASIC的特点是面向特定需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
国外的大部分防火墙设计都采用了ASIC架构,以Juniper和Fortinet的产品为首,因为它的性能高,并且开发门槛高,一度成为国际国内厂商的技术分水岭。
基于ASIC架构的防火墙从架构上改进了中断机制,数据通过网卡进入系统后,无需经过主CPU处理,而是由集成在系统中的芯片直接处理,完成防火墙的功能,如路由、NAT、防火墙规则匹配等,因此,其性能得到了大幅度的提升: 性能可以达到万兆,并且64 Bytes的小包都可以达到线速。 但问题是,这种防火墙在设计时,就必须将安全功能固化进ASIC芯片中,所以它的灵活性不够,如果想要增添新的功能或进行系统升级,开发周期较长,对技术的要求也很高。此外,用ASIC开发复杂的功能,如垃圾邮件过滤、网络监控、病毒防护等,其开发比较复杂,对技术要求很高。因此,ASIC架构非常适用于功能简单的防火墙,但不适合用于功能复杂的UTM。
线速,达到线速标准的设备,避免了非线速设备的转发瓶颈,称作“无阻塞处理”。即厂商标称交换能力大于设备上所有类型各个接口的带宽总和的2倍(全双工)。
NP架构
特点:平衡方案
网络处理器(Network Processor,简称NP),采用NP架构的防火墙,各种算法可以通过硬件实现,在实现复杂的拥塞管理、队列调度、流分类和QoS功能的前提下,还可以达到极高的查找、转发性能,实现“硬转发”。
NP是专门为网络设备处理网络流量而设计的处理器,其体系结构和指令集对于数据处理都做了专门的优化,同时辅助一些协处理器完成搜索、查表等功能,可以对网络流量进行快速的并发处理。硬件结构设计采用高速的接***术和总线规范,具有较高的I/O能力。这是一种硬件加速的完全可编程的架构,软硬件都易于升级,因此产品的生命周期更长。 NP最大的优点在于它是通过专门的指令集和配套的软件开发系统提供强大的编程能力,因而便于开发应用,可扩展性强,而且研制周期短,成本较低。但是,相比于X86架构,由于应用开发、功能扩展受到NP的配套软件的限制,基于NP技术的防火墙的灵活性要差一些。采用微码编程,在性能方面NP不如ASIC。NP开发的难度和灵活性都介于ASIC和X86构架之间,应该说NP是X86架构和ASIC之间的平衡方案。
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来使用。
MIPS架构
特点:多核方案
MIPS (Microprocessor without interlocked piped stages) 是RISC精简指令集处理器。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS是高性能、低功耗嵌入式系统处理器,广泛应用于网络/通讯、无线、存储和控制应用等领域的安全产品,国际上主要的网络/通讯/无线等厂商都有使用MIPS的解决方案。
MIPS多核技术则是近年来新出现的处理器技术,它一出现,就被认为是解决信息安全产品功能与性能之间矛盾的一大硬件法宝。国外许多厂商,如SonicWall等,都推出了其多核产品。多核是在同一个硅晶片上集成了多个独立物理核心,每个核心都具有独立的逻辑结构,包括缓存、执行单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。在实际工作中,每个核心都可以达到2Ghz以上的主频。因此,多核技术无论在性能、灵活性还是在开发的成本和难度方面,都是其他架构不能比拟的。目前各种芯片厂商推出的多核芯片共分三种:一种是Intel、AMD推出的2核、4核的通用处理器,适用于桌面笔记本电脑等通用领域;一种是IBM、SUN分别推出的Cell和SPARC架构的多核处理器,主要用于图形处理和运算;第三种是RMI和Cavium推出的基于MIPS架构的嵌入式多核处理器,主要应用于数据通信领域,它最适合用于信息安全产品的开发。
同时,MIPS架构同ARM架构对比来看也存在一些不足之处:一是MIPS的内存地址起始有问题,这导致了MIPS在内存和cache的支持方面都有限制,即MIPS单内核无法面对高容量内存配置;二是MIPS技术演进方向是并行线程,类似INTEL的超线程,而ARM未来的发展方向是物理多核,从目前核心移动设备的发展趋势来看物理多核占据了上风;三是MIPS虽然结构更加简单,但是到现在还是顺序单/双发射,ARM则已经进化到了乱序双/三发射,执行指令流水线周期远不如ARM高效;四是MIPS学院派发展风格导致其商业进程远远滞后于ARM,当ARM与高通、苹果、NVIDIA等芯片设计公司合作大举进攻移动终端的时候,MIPS还停留在高清盒子、打印机等小众市场产品中;五是MIPS自身系统的软件平台也较为落后,应用软件与ARM体系相比要少很多。
资料来自于网络,欢迎大家探讨!