1. 程式人生 > >維護篇 22. 看懂防火牆的效能引數 ❀ 飛塔 (Fortinet) 防火牆

維護篇 22. 看懂防火牆的效能引數 ❀ 飛塔 (Fortinet) 防火牆

        【簡介】在選擇購買飛塔防火牆的時候,我們會經常疑惑,到底什麼樣的型號才適合。型號選過了,大炮打蚊子,浪費銀兩,型號選小了,過不多久就又卡又慢,被BOSS罵得狗血淋頭。怎底怎麼選,先學會看看這些效能指標。

  吞吐量 (Throughput)

        吞吐量是衡量一款防火牆或者路由交換裝置的最重要的指標,它是指網路裝置在每一秒內處理資料包的最大能力。

  吞吐量意味這臺裝置在每一秒以內所能夠處理的最大流量或者說每一秒內能處理的資料包個數。裝置吞吐量越高,所能提供給使用者使用的頻寬越大,就像木桶原理所描述的,網路的最大吞吐取決於網路中的最低吞吐量裝置,足夠的吞吐量可以保證防火牆不會成為網路的瓶頸。舉一個形象的例子,一臺防火牆下面有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。

  吞吐量頻寬是很容易搞混的一個詞。當討論通訊鏈路的頻寬時,一般是指鏈路上每秒所能傳送的位元數,它取決於鏈路時鐘速率和通道編碼在計算機網路中又稱為線速,也就是可以說百兆乙太網的頻寬是100Mbps。但是需要區分鏈路上的可用頻寬(頻寬)與實際鏈路中每秒所能傳送的位元數(吞吐量)。通常更傾向於用“吞吐量”一詞來表示一個網路的效能表現。因為現實受各種低效率因素的影響(比如通訊雙發的網絡卡裝置、鏈路狀態等),所以由一段頻寬為100Mbps的鏈路連線的一對節點可能只達到50Mbps的吞吐量。這樣就意味著,一個主機上的應用只能夠以50Mbps的速度向另外的一個主機發送資料。

  對於網路裝置而言,除了吞吐量這個重要指標外,還有一個主要指標是報文轉發率,也就是常說的包轉發率,包轉發率一般是指以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,是由 16個千兆口 × 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千個請求需要在下一秒才能完成。所以,新建連線速率高的裝置可以提供給更多人同時上網,提升使用者的網路體驗。

  每秒新建連線速雖然英文用的是TCP,但是通常會採用HTTP來進行計數,計數結果以每秒連線數(connections per second)作為單位。我們知道防火牆是基於會話的機制來處理資料包的,每一個數據包經過防火牆都要有相應的會話來對應。會話的建立速度就是防火牆對於新建連線的處理速度。

  併發會話數 (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最大併發連線的防火牆裝置便可以滿足需求。

  為較低需求而採用高階的防火牆裝置將造成使用者投資的浪費,同樣為較高的客戶需求而採用低端裝置將無法達到預計的效能指標。利用網路整體上的併發連線需求來選擇適當的防火牆產品可以幫助使用者快速、準確的定位所需要的產品,避免對單純某一引數“愈大愈好”的盲目追求,縮短設計施工週期,節省企業的開支。從而為企業實施最合理的安全保護方案。

                                                                     飛塔技術-老梅子   QQ:57389522