找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 17464|回复: 27

实现千兆防火墙很困难的相关解释

[复制链接]
发表于 2005-5-15 23:09:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
为什么实现千兆防火墙很困难    千兆防火墙的代表产品包括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的摩尔速度相比,显得慢得多了,偏偏一个桶能装的水是以最短的桶条来衡量的。到今天,要解决硬件瓶颈,已经形成了几种相对可行的方案。 一种就是使用专门设计的多总线服务器。如Nokia IP740虽然也是X86,但内置三条PCI总线,这样就可以提高防火墙的极限吞吐量,满足一般的千兆环境。第二种是使用专门的处理插卡,换方之,就是把千兆的网卡和专门的过滤处理器做到一起,形成新的千兆网卡,大部分工作无需再经PCI总线到CPU才返回,直接在PCI1就交换完毕了。这是CheckPoint曾经使用的方法。第三种方法与第二种相似,所不同的不是使用专门的PCI集成网卡,而是使用一个前置在Pci1总线上的单片机,直接处理防火墙的过滤转发要求。这样同样可以克服总线限制。使用这种方法的就是著名的netscreen公司的ASIC处理器。最后一种办法目前仍没有确定可行。就是使用英特的NP处理器。它的缺点是把整个防火墙变成了一个过滤器。可是防火墙虽然主要工作是过滤转发,但并不是过滤转发就是防火墙,其他功能也是很重要的。否则就与路由器没有什么区别了。另一个简单的办法就是使用RISC-SCSI的架构,也即通常所说的高档UNIX主机,由于使用64位总线,也是可以克服32位PCI总线形成的瓶颈;这也几乎是普通防火墙厂商满足千兆要求的唯一办法了,就是把防火墙软件装到UNIX主机上面,成本可想而知。 无论是那一种方式,无不与一定量的市场需求密切相关。设计定制专门的硬件成本很高,动辄以千万美元计算,任何公司都不可能为区区一百几十台的出货量去搞什么专门的硬件。而且,千兆防火墙需求量只是百兆防火墙的几十分之一(只有败家子式的蠢才才会清一色用千兆防火墙),这就决定了即使是年出货量上千台的防火墙生产商也不能承受定制专门的千兆级硬件的成本。要知道,即使是尽得中国官方采购天时的天融信也远达不到这个出货水平。所以,世界上除非是在全世界范围内成功销售自已产品的公司,否则,推出真正的千兆防火墙是非常困难的。除非出现64位的PCI总线,否则百兆和千兆就是一个难以超越的等级;反之,一旦64位总线成为主流,那时千兆就象今天的百兆和十兆一样,很容易就成为一个可以自动适应的网络带宽等级。到那时,瓶颈制约的就是万兆了。不过说老实话,除非是实时看高清晰度电影和电视转播,否则我的想像力根本想不出拿着万兆到底干什么好。   目前英特正在研发新一代的网络系统总线CSA,(传输流架构),这一接口的投入,将为LOM(LAN on Motherborad)打下基础。介时,国产千兆防火墙产品就可以无需特别定制的硬件而扬帆四海了。
routeros
发表于 2005-5-15 23:19:32 | 显示全部楼层
沙发
routeros
回复

使用道具 举报

发表于 2005-5-15 23:42:17 | 显示全部楼层
这个问题讨论已久,等待PCI-E网卡便宜且普及!
routeros
回复

使用道具 举报

发表于 2005-5-16 08:40:13 | 显示全部楼层
64位PCI并不是什么难事了吧?
routeros
回复

使用道具 举报

发表于 2005-6-1 23:27:59 | 显示全部楼层
路过!!!!好深奥
routeros
回复

使用道具 举报

发表于 2005-6-1 23:53:51 | 显示全部楼层
QUOTE
首先从内存读出政策链的第一条放进寄存器,然后经系统总线(pci0),再经pci-pci桥,再经pci1到pci网卡读取IP包的头信息,把它与寄存器中的政策进行匹配,然后决定该IP包的处理。一来一去需要两次经过PIC总线。
个人觉得这个顺序有点不对,欢迎扔砖头  1.数据包符合转发规则:pci0->pci Bridge->register->pci Bridge->pci12.数据包被丢弃规则:pci0->pci Bfidge->register-> Drop(不会再处理)结论是:部分数据包会两次过PCI总线,部分不会。。。
routeros
回复

使用道具 举报

发表于 2005-6-2 20:42:38 | 显示全部楼层
写这个东西的作者,估计没领略过X86平台的高端产品!32BIT PCI只用在桌面平台,在X86服务器体系里有64BIT PCI 133MHZ,在X86超级计算机里用的是特殊的总线!处理1000M绝对是绰绰有余,问题的关键在于购买力不足!
routeros
回复

使用道具 举报

发表于 2005-6-15 00:21:04 | 显示全部楼层
QUOTE(macafee @ Jun 2 2005, 08:42 PM)
写这个东西的作者,估计没领略过X86平台的高端产品!32BIT PCI只用在桌面平台,在X86服务器体系里有64BIT PCI 133MHZ,在X86超级计算机里用的是特殊的总线!处理1000M绝对是绰绰有余,问题的关键在于购买力不足!
[right][snapback]50000[/snapback][/right]




完全同意~
64 bit PCI 在 PIII 年代已有不少~

此文的面世??可能已"非常久?"~
routeros
回复

使用道具 举报

发表于 2005-6-22 09:00:48 | 显示全部楼层
CSA、pci-x、PCI-Express等早就出现在当前的x86主板中,这篇文章过时了
routeros
回复

使用道具 举报

发表于 2005-7-14 18:56:16 | 显示全部楼层
能告诉我为什么100m的网卡在局域网中最快也只有5-6m不超10m啊
routeros
回复

使用道具 举报

发表于 2005-7-19 08:34:33 | 显示全部楼层
能告诉我为什么100m的网卡在局域网中最快也只有5-6m不超10m啊


---我有达到过
routeros
回复

使用道具 举报

发表于 2005-8-30 22:58:02 | 显示全部楼层
看完9楼的,我想知道,是否我就没有必要申请100M独享的光纤的必要了?

因为100M的光纤最大的理论流量只有12.5MB/S,而一般网卡的处理能力只有5-6M/S,我申请多了只是浪费,对吗?
routeros
回复

使用道具 举报

发表于 2005-9-4 17:32:53 | 显示全部楼层
哈哈.这个文章是03年的.
routeros
回复

使用道具 举报

发表于 2005-10-25 00:40:40 | 显示全部楼层
我内部局域网的速度能达到9-10M。
用的是FreeBSD的SMB方式。
routeros
回复

使用道具 举报

发表于 2005-10-25 17:35:52 | 显示全部楼层
恩 我认为    作者 讨论的 氏 低端的 情况  ??
  只有 低端  对于 普通 用户 有意义   否则  设立 专门的 硬件通道总线
会 很规  普通 用户  很难实现
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-12-23 07:01 , Processed in 0.091761 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表