【简介】在选择购买飞塔防火墙的时候,我们会经常疑惑,到底什么样的型号才适合。型号选过了,大炮打蚊子,浪费银两,型号选小了,过不多久就又卡又慢,被BOSS骂得狗血淋头。到底怎么选,先学会看看这些性能指标。
吞吐量 (Throughput)
我曾经被问到过,我有200M的宽带,适合什么样的防火墙。我们先了解一下宽带、带宽、吞吐量的概念。
宽带:是指在同一传输介质上,使用特殊的技术或者设备,可以利用不同的频道进行多重(并行)传输,并且速率在256Kbps以上,至于到底多少速率以上算作宽带,目前没有国际标准,有人说大于56K就是宽带,有人说1Mbps以上才算宽带,因此与传统的互联网接入技术相比,宽带接入技术最大的优势就是其带宽速率远远超过56Kbps拨号,目前家用ADSL宽带大部分都已经达到100M甚至200M了。
带宽 (band width):带宽就是单位时间内的最大数据流量,也可以说是单位时间内最大可能提供多少个二进制位传输。带宽通常以bps表示,即每秒可传输之位数。而1M带宽指的是1Mbps=1 megabits per second,飞塔防火墙的接口通常都是1000M,理论上每个接口的带宽也就是1000Mbps。
吞吐量 (Throughput):是指网络设备在每一秒内处理数据包的最大能力。当讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码,在计算机网络中又称为线速,也就是可以说百兆以太网的带宽是100Mbps。但是需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。通常更倾向于用“吞吐量”一词来表示一个网络的性能表现。因为现实受各种低效率因素的影响(比如通信双发的网卡设备、链路状态等),所以由一段带宽为100Mbps的链路连接的一对节点可能只达到50Mbps的吞吐量。这样就意味着,一个主机上的应用只能够以50Mbps的速度向另外的一个主机发送数据。
我们以FortiGate 500D防火墙为例,可以看到防火墙吞吐量(1518/512/64 byte,UDP),参数分别是16/16/16 Gbps,这是什么意思呢?
吞吐量是衡量一款防火墙或者路由交换设备的最重要的指标,它是指网络设备在每一秒内处理数据包的最大能力。吞吐量意味这台设备在每一秒以内所能够处理的最大流量或者说每一秒内能处理的数据包个数。设备吞吐量越高,所能提供给用户使用的带宽越大,就像木桶原理所描述的,网络的最大吞吐取决于网络中的最低吞吐量设备,足够的吞吐量可以保证防火墙不会成为网络的瓶颈。举一个形象的例子,一台防火墙下面有100个用户同时上网,每个用户分配的是10Mbps的带宽,那么这台防火墙如果想要保证所有用户全速的网络体验,必须要有至少1Gbps的吞吐量。理论上来说,如果限制每个用户10Mbps带宽,FortiGate 500D可以最多支持1600个用户同时上网。
吞吐量的计量单位有两种方式:常见的就是带宽计量,单位是Mbps(Megabits per second)或者Gbps(Gigabits per second),另外一种是数据包处理量计量,单位是pps(packets per second),两种计量方式是可以相互换算的。在进行对一款设备进行吞吐性能测试时,通常会记录一组从64字节到1518字节的测试数据,每一个测试结果均有相对应的pps数。64字节的pps数最大,基本上可以反映出设备处理数据包的最大能力。所以从64字节的这个数,基本上可以推算出系统最大能处理的吞吐量是多少。飞塔防火墙FortiGate 500D,每个包64字节、512字节、1518字节的测试结果都是16Gbps。
对于网络设备而言,除了吞吐量这个重要指标外,还有一个主要指标是报文转发率,也就是常说的包转发率,包转发率一般是指以64字节数据包的全双工吞吐量,该指标既包括吞吐量指标也涵盖了报文转发率指标。线速端口的包转发率衡量标准是以IEEE802.3中最短以太网64byte的数据包 (第二层或第三层包) 作为计算基准,其公式如下:包转发率(pps) = 吞吐量 / ( 84byte × 8bit )
所以:
对于百兆以太网,一个线速端口的包转发率 = 100,000,000bps / 672bit = 0.148Mpps
对于千兆以太网,一个线速端口的包转发率 = 1,000,000,000bps / 672bit = 1.488Mpps
对于万兆SFP口(以太网口没有万兆的),一个线速端口的包转发率 = 10,000,000,000bps / 672bit = 14.88Mpps
以飞塔防火墙FortiGate 500D为例,参数表中防火墙吞吐量(包每秒)为24Mpps,是由 16Gbps × 1.488Mpps =23.808Mpps 得来的。
延迟 (Latency)
延迟是系统处理数据包所需要的时间。
防火墙延迟指的就是计算它的存储转发(Store and Forward)时间,即从接收到数据包开始,处理完并转发出去所用的全部时间。在一个网络中,如果我们访问某一台服务器,通常不是直接到达,而是经过大量的路由交换设备。每经过一台设备,就像我们在高速公路上经过收费站一样都会耗费一定的时间,一旦在某一个点耗费的时间过长,就会对整个网络的访问造成影响。如果防火墙的延迟很低,用户就完全不会感觉到它的存在,提升了网络访问的效率。
延迟的单位通常是微秒,一台高效率防火墙的延迟通常会在一百微秒以内。微秒为时间单位,符号μs(英语:microsecond ),1微秒等于百万分之一秒(10的负6次方秒),1毫秒等于千分之一秒(10的负3次方秒)。飞塔防火墙FortiGate 500D的延迟为3微秒,几乎可以忽略不记。
每秒新建连接速 (Maximum TCP Connection Establishment Rate)
每秒新建连接速指的是在每一秒以内防火墙所能够处理的HTTP新建连连接请求的数量。
用户每打开一个网页,访问一个服务器,在防火墙看来会是1个甚至多个新建连接。而一台设备的新建连接速率越高,就可以同时给更多的用户提供网络访问。比如设备的新建连接速率是1万,那么如果有1万人同时上网,那么所有的请求都可以在一秒以内完成,如果有1万1千人上网的话,那么前1万人可以在第一秒内完成,后1千个请求需要在下一秒才能完成。所以,新建连接速率高的设备可以提供给更多人同时上网,提升用户的网络体验。
防火墙是基于会话的机制来处理数据包的,每一个数据包经过防火墙都要有相应的会话来对应。会话的建立速度就是防火墙对于新建连接的处理速度。
并发会话数 (Concurrent TCP Connection Capacity)
并发会话数就是指防火墙最大能够同时处理的连接会话个数。
并发会话数这个指标越大,在一段时间内所能够允许同时上网的用户数越多。随着web应用复杂化以及P2P类程序的广泛应用,每个用户所产生的连接越来越多,甚至一个用户的连接数就有可能上千,更严重的是如果用户中了木马或者蠕虫病毒,更会产生上万个连接。所以显而易见,几十万的并发连接数已经不能够满足网络的需求了,目前主流的防火墙都要求能够达到几十万甚至上千万的并发连接以满足一定规模的用户需求。
像路由器的路由表存放路由信息一样,防火墙里也有一个这样的表,我们把它叫做并发会话表,是防火墙用以存放并发会话信息的地方,它可在防火墙系统启动后动态分配进程的内存空间,其大小也就是防火墙所能支持的最大并发会话数。大的并发会话表可以增大防火墙最大并发会话数,允许防火墙支持更多的客户终端。尽管看上去,防火墙等类似产品的并发会话数似乎是越大越好。但是与此同时,过大的并发会话表也会带来一定的负面影响:
1.并发会话数的增大意味着对系统内存资源的消耗
以每个并发会话表项占用300B计算,1000个并发连接将占用300B×1000×8bit/B≈2.3Mb内存空间,10000个并发连接将占用 23Mb内存空间,100000个并发连接将占用230Mb内存空间,而如果真的试图实现1000000个并发连接的话那么,这个产品就需要提供 2.24Gb内存空间! 飞塔防火墙FortiGate 500D的并发会话数是6 Mil,也就是6百万,如果全部实现的话,需要占用 13.44G内存空间。
2.并发会话数的增大应当充分考虑CPU的处理能力
CPU的主要任务是把网络上的流量从一个网段尽可能快速地转发到另外一个网段上,并且在转发过程中对此流量按照一定的访问控制策略进行许可检查、流量统计和访问审计等操作,这都要求防火墙对并发会话表中的相应表项进行不断的更新读写操作。如果不顾CPU的实际处理能力而贸然增大系统的并发会话表,势必影响防火墙对连接请求的处理延迟,造成某些连接超时,让更多的连接报文被重发,进而导致更多的连接超时,最后形成雪崩效应,致使整个防火墙系统崩溃。
3.物理链路的实际承载能力将严重影响防火墙发挥出其对海量并发连接的处理能力
虽然目前很多防火墙都提供了10/100/1000Mbps的网络接口,但是,由于防火墙通常都部署在Internet出口处,在客户端PC与目的资源中间的路径上,总是存在着瓶颈链路——该瓶颈链路可能是100Mbps专线,也可能是20Mbps乃至更低的低速链路。这些拥挤的低速链路根本无法承载太多的并发连接,所以即便是防火墙能够支持大规模的并发访问连接,也无法发挥出其原有的性能。
有鉴于此,我们应当根据网络环境的具体情况和个人不同的上网习惯来选择适当规模的并发会话表。因为不同规模的网络会产生大小不同的并发连接,而用户习惯于何种网络服务以及如何使用这些服务,同样也会产生不同的并发连接需求。高并发连接数的防火墙设备通常需要客户投资更多的设备,这是因为并发连接数的增大牵扯到数据结构、CPU、内存、系统总线和网络接口等多方面因素。如何在合理的设备投资和实际上所能提供的性能之间寻找一个黄金平衡点将是用户选择产品的一个重要任务。按照并发连接数来衡量方案的合理性是一个值得推荐的办法。
以每个用户需要200个并发会话来计算,一个中小型企业网络(1000个信息点以下,容纳4个C类地址空间)大概需要200×1000=200000个并发连接,因此支持300000最大并发连接的防火墙设备便可以满足需求。
通过上面的这个列表,我们可以看到一个有趣的现象,吞吐量(包每秒)的数值是由64 byte吞吐量的Gbps换算过来,例如:FortiGate 200D的64 byte吞吐量是3Gbps,而根据公式:包转发率(pps) = 吞吐量 / ( 84byte × 8bit ),得到 1Gbps = 1.488Mpps,那么 3Gbps = 3*1.488 = 4.464 Mpps。同样,FortiGate 201E的64 byte吞吐量是9Gbps,经过换算,得到的包转率为13.392Mpps。
我们以FortiGate 500D为例,内网接口一共有8个千兆电口、8个SFP千兆光口,其满配置吞吐量达到 16×1.488Mpps = 23.808Mpps,才能够确保在所有端口均线速工作时,提供无阻塞的包交换。
再看FortiGate 200D,内网接口一共有16个千兆电口,其满配置吞吐量也应该达到 16×1.488Mpps = 23.808Mpps,但实际只有4.5Mpps,与500D相差甚远,这又是为什么呢?
这是因为FortiGate 500D搭载了FortiASIC NP6网络处理器芯片。吞吐量的大小主要由防火墙内网卡,及程序算法的效率决定,尤其是程序算法,会使防火墙系统进行大量运算,通信量大打折扣。ForitGate 500D由于采用硬件进行运算,因此吞吐量比200D高出很多。
为较低需求而采用高端的防火墙设备将造成用户投资的浪费,同样为较高的客户需求而采用低端设备将无法达到预计的性能指标。利用吞吐量、并发会话数、每秒新建连接数等参数来选择适当的防火墙产品可以帮助用户快速、准确的定位所需要的产品,避免对单纯某一参数“愈大愈好”的盲目追求,缩短设计施工周期,节省企业的开支。从而为企业实施最合理的安全保护方案。