千兆防火墙的代表产品包括Netscreen的5000系列防火墙,以及Nodia-CheckPoint的IP720以上的产品。这种防火墙的特点是网络吞吐性能要求高(即带宽要求高),普通的硬件主板不能承受,市场出货量又少。因此,在世界上能够实现的厂家很少,而且必须是世界级的进行市场推广的公司才能推出真正的千兆防火墙。其他的,即使是名为千兆,实际上也只是假千兆,说穿了就是把千兆卡用到百兆防火墙的内核上,实际上达不到千兆性能。要了解个中因由,首先要了解防火墙的工作原理。
大家都知道,防火墙的工作核心其实就是对IP包头与预定政策的匹配控制。防火墙在工作的时侯,首先从内存读出政策链的第一条放进寄存器,然后经系统总线(pci0),再经pci-pci桥,再经pci1到pci网卡读取IP包的头信息,把它与寄存器中的政策进行匹配,然后决定该IP包的处理。一来一去需要两次经过PIC总线。如果IP包比较大,那么这个包头信息与包的大小比较就相对小得多,这时侯系统带宽的瓶颈就是网卡的内存暂存能力,也就是我们所说的百兆网卡和千兆网卡的区别,或者称为线速的限制(wirespeed).但如果IP包很小,那么IP包头所占的比例就相当高,这时,瓶颈就是PCI 总线的交换能力了。
任何来往于该PCI的其他传输,都将由于总线争夺而受到限制。在这一数据交换中,数据通过Hubink,从ICH(I/O Controller Hub))到MCH(Memory Controller Hub)的传输有四次,经过PCI总线的传输有两次。由于HubLink的最大数据吞吐量是266MB,约2.2Gbps;但由于32位PCI总线以 33MHz运行,所以数据传输率被限制到1.06Gbps左右。而且还要连接运行各种系统数据交换。由于PCI总线的带宽限制,PCI网卡永远也不能实现真正的全双工的2Gbps带度,最高理论速度是单向1Gbps,而实际达到的不超过一半,即500M。
换句话说,对于硬件确定的系统,每秒能够处理IP包的数量是一个相对的常数。这个常数与CPU处理能力和寄存器数目,以及系统总线的交换速度形成的整体能力密切相关。对于使用PIII处理器和 X86服务器主板(或工控主板,32位PCI总线)的防火墙,这个数字大致在五十万到一百万之间。(注意不要把它和最大的会话保持这个标称参数混淆,最大会话主要与系统的可分配内存有关系)。因此,基于Intel X86主板的防火墙的极限吞吐量在IP包大小为512比特时,大致是三百兆左右。显然,这个吞吐能力很符合百兆防火墙的环境,也符合低流量的千兆网环境的要求。但对于高流量的千兆网,就无能为力了,必须在硬件上整体改进才可能满足这个阶梯的升级要求。
从前文也可以看出,防火墙的吞吐量是与IP包的大小密切相关的,所以谈论吞吐量如果脱离包的大小是毫无意义的,任何防火墙都可以达到百兆线速,只不过是在包大到什么程度才能达到线速而已。另一方面,Intel X86主板架构的服务器,即我们通常说的英特服务器,ASIC服务器(冗余指令集服务器),或PC服务器尽管不能完全满足千兆环境的防火墙吞吐要求,但一般的千兆环境还是可以应付的。因为以太网中的设备不止防火墙一个,还有交换机、路由器等等,这些产品全部都可以形成瓶颈,因此,一个局域网段的极限流量不是它的线速,而大约是线速的25%以下。即千兆约250兆,百兆约25兆。考虑到目前国内一般千兆网的实际流量都不高(很少超过十兆的),所以这种基础的防火墙还是可以承担一般千兆网的流量要求的。但如果千兆干网达到100兆以上流量,几个千兆口累加的吞吐量就超过了这种防火墙的内部极限,这种防火墙就会大量丢包,成为网络系统的瓶颈了。
因此,要克服这个瓶颈,就只有一个办法,提高系统每秒能够匹配的IP包的能力。其中的关键是扩宽PCI总线的交换速度,反而CPU速度并不是系统的瓶颈,相对而言,今天的CPU能力大得惊人,处理防火墙过滤如同牛刀杀鸡,所以大量防火墙把多余的处理能力用到VPN的强密解密处理上。而PCI速度实际上从问世到今天,也已经从33M提升到133M,只是与CPU的摩尔速度相比,显得慢得多了,偏偏一个桶能装的水是以最短的桶条来衡量的。到今天,要解决硬件瓶颈,已经形成了几种相对可行的方案。
会员注册
会员登录
个人空间
发表评论