关于防火墙会话数的理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
防火墙能支持多少数量的会话标称,本来是标示防火墙性能的一个重要指标。
但近来有些厂家利用部分消费者,特别是政府部门的购买者不了解参数含义的机会,对该指标进行任意拨高,已经令会话指标对许多防火墙产品的选购,在很大程度上失去了参考意义。
那么,防火墙的会话,到底是一种怎么样的性能呢?如果是普通的包过滤防火墙,无所谓会话。
这种防火墙通常见第一代的国产防火墙,很多就是用ipcha ins改造过来的。
对于这种防火墙,重要的性能指标是防火墙的吞吐量,或称滤通量;以及包过滤的时延。
会话,只对提供状态检测的防火墙才有意义。
但现在的防火墙都要求提供网络连接检测。
众所周知,TC P是有状态的连接,状态
检测的防火墙能根据该IP包所属的连接是新的还是旧的,决定该IP包是否符合防火墙的政策约定。
因此,防火墙必须在内存中保留这一记录,这就是会话的由来,每一个连接,就是一个会话。
由于目前的防火墙一般工作中转接网关,存在着大转小这样的情况,如内部网是百兆,而上网的A DSL拨号是500K这种。
因此,由于网络变窄,部分连接请求不能马上实施,只能在内部队列中一个个地招待,这样,对于没有连接状态的部分请求,在保持在防火墙内存排队时,目前也算是一个会话。
大部分防火墙都是由linux或类似的操作系统发展来的,包括scree n OS和check point,因此,他们的原理有共通性。
这里就以ne tfilt er作一个例子进行说
明。
只要在netfi lter中编译进mo d_con ntrac k模块,防火墙就具备了进行状态检
测,或称状态跟踪的功能。
防火墙支持多少会话,仅取决于防火墙的内存多少,系统会自动采用所有内存,直接内存用光,系统崩溃为止。
因此,许多防火墙根据自已的内存的多少,设定一个参数ip_conn track_max的大小。
有这个限制,一旦系统记录的会话达到这个数值,系统就不再建立新的会话。
所以,一个防火墙如果单纯希望增大这个参数,仅需要增加内存(10万会话约消耗45M内存),然后不顾一切地把i p_con ntrac k_max设定大大的,别说一百万,就是算一千万也是可以达到的。
那么一般防火墙需要多少会话呢?用两种应用举个例子。
象ht tp,每一个href 都将是一个连接,包括每一个的图片,因此,浏览一个网页,常常是同时出现二十个连接以上。
这种连接迅速而来,又迅速完成(网页下载都有一个速度要求)。
而ftp和teln et就是另一个例子,就算下载上百兆的文件,也只是一个连接;而使用多线程下载工具,象neta nt,每一个线程都是一个连接。
因此,假设是一个500人的网络需要上网,其中同时浏览的有100人(平均20秒刷新一次),另外200人打QQ,50人使用十个线程下载文件,还有50 人进行如tel net,数据库访问这样的会话;如果没有出口瓶颈,那么,实际的会话数估计是在千以上附近。
但如果有出口限制,那么就可能升级到万以上。
但无论是多大的网,达到几万以上的也是极为罕见的,真的出现了这种情况,很可能是感染了如冲击波这类的病毒。
防火墙最通常铁使用是内部的子网分隔,这部分也会产生一部分会话请求。
对于百兆/千兆这种一般的网络环境来说,大致有十万以上的会话能力的防火墙,也基本上足够了。
保持太多的会话对防火墙没有必要,相反,当系统资源过多地用在会话保持的话,会相应损害每秒生成会话的能力,这是一个同样重要的性能指标。
设定过高的会话数量,却降低了每秒生成会话的能力,其结果,只能是保留一些永远用不到的会话虚数而已。
每秒生成会话能力,也称会话速率,主要与CPU处理能力/寄存器的数量,以及操作系统内核是否利用这一处理能力有关。
相对而言,这是使用X86的系统比较弱的部分,包括nokia,而使用R ISC的系统,速动会话的能力就比较高,
相应地,保持最大会话的能力也比较弱。
对于X86/L inux/BSD的防火墙来说,会话最大保持在10万到30万是比较合理的。
如果使用非常强大的主板,而且linux 针对这种主板进行了一些底层优化(主要是优化对寄存器-内存之间访问的过程),可以在不损害会话速率等性能的情况下把会话达到50万到60万。
这是目前本人所知的最大极限。
会话的性能需要内存,如果考虑防火墙和操作系统本身展开需要128M内存左右的话,那么40万会话就要消耗约180M,意味着是300M内存以上才有可能。
由此,也可以知道一些产品的标称是否有弄虚作假的成分。
。