網(wǎng)絡(luò)安全設(shè)備性能的基準(zhǔn)測(cè)試方法RFC 9411為下一代網(wǎng)絡(luò)安全設(shè)備(包括下一代防火墻NGFW和下一代入侵防御系統(tǒng)NGIPS)提供并建議基準(zhǔn)測(cè)試術(shù)語和方法,并具體提出了包括新建、并發(fā)、吞吐等9個(gè)測(cè)試方法。
其中7.5節(jié)是關(guān)于HTTP 流量下的并發(fā) TCP 連接能力測(cè)試,確定在使用 HTTP 流量時(shí),被測(cè)設(shè)備(DUT)或者被測(cè)系統(tǒng)(SUT)能夠維持的并發(fā) TCP 連接數(shù)量。
圖-1 測(cè)試環(huán)境
本文測(cè)試示例的拓?fù)渲蠥vlanche儀表選用C200的一對(duì)100G口,端口自環(huán)。網(wǎng)段的配置如圖-1所示。本篇文章將基于RFC 9411的測(cè)試方法,將測(cè)試過程和步驟具體描述如下:
- 測(cè)試儀模擬200個(gè)IPv4客戶端和16個(gè)IPv4 HTTP Server端,并要求每個(gè)客戶端和每個(gè)HTTP Server均建立TCP連接并進(jìn)行HTTP請(qǐng)求和響應(yīng)。
- 每個(gè)客戶端依次和16個(gè)HTTP Server建立TCP連接之后,保持一段時(shí)間再關(guān)閉。
- 假定被測(cè)設(shè)備的最大TCP新建能力為50萬/秒,因此在TCP并發(fā)測(cè)試中將使用50%的新建速率,即25萬/秒。
- 測(cè)試目標(biāo)要達(dá)成5000萬TCP并發(fā)。因此,5000(萬) / 25(萬/秒)=200(秒),我們在壓力爬坡階段的時(shí)間設(shè)定為200秒。
- 測(cè)試使用“邊建邊拆”方式,即在壓力達(dá)到5000萬之后,需要不斷地拆除部分TCP連接,同時(shí)建立同樣數(shù)量的TCP連接,以維持壓力一段時(shí)間。本測(cè)試設(shè)定維持階段為800秒。
- 響應(yīng)的HTTP內(nèi)容為1K Byte。
關(guān)于使用Avalanche Commander創(chuàng)建配置添加端口的基礎(chǔ)操作,本文不做贅述。以下是涉及本測(cè)試的關(guān)鍵配置點(diǎn)。設(shè)定每個(gè)用戶要和所有的HTTP Server都建立TCP連接,且在壓力爬坡階段的200秒內(nèi)不能有TCP拆線,需要讓所有的TCP session建立之后等待200秒。Step 2 - Client Profile的配置???
因?yàn)槊總€(gè)TCP連接都保持連接狀態(tài),因此需要使能Persistence選項(xiàng),在從而在應(yīng)用層HTTP請(qǐng)求Header中聲明"Connection: Keep-Alive"。圖-2 Client Profile配置
Step 3 - Client Network的配置
每個(gè)TCP在建立之后會(huì)進(jìn)行HTTP的傳輸,隨后會(huì)等待200秒時(shí)間,因此一定要記得關(guān)閉"Inactivity Timer"功能。
按照要求所有TCP需要以Fin方法關(guān)閉,因此要使能“Connection Termination With FIN”選項(xiàng)。
圖-3 Client Network配置
Step 4 - Server Profile / Transcations的配置
首先,在Server Transcations中添加一個(gè)長(zhǎng)度為1K Bytes的響應(yīng)文件,同時(shí)命名為1K.
圖-4-1 Server Transcation配置
然后,在Server Profiles中創(chuàng)建名為Server_HTTP的Profile,選中剛才創(chuàng)建的響應(yīng)文件作為模擬服務(wù)器的回復(fù)。
圖-4-2 Server Profiles配置
Step 5 - Server Network的配置如果Step 3中所述,每個(gè)TCP在建立和完成HTTP傳輸后,都會(huì)等待200秒時(shí)間,因此一定要記得關(guān)閉"Inactivity Timer"功能。Step 6 - Client / Server Subnets的配置按照測(cè)試方法,配置Client / Server端的IPv4地址圖-6 Client / Server Subnets配置
本文中我們采用Simusers的load模型,意思是同時(shí)有多少用戶在線。因?yàn)槲覀冇?jì)劃測(cè)試壓力達(dá)到5000萬個(gè)并發(fā)TCP連接,而在Action中每個(gè)用戶會(huì)產(chǎn)生16個(gè)并發(fā)TCP連接,因此5000萬/16=3125000個(gè)并發(fā)用戶。因此我們創(chuàng)建名為conn的Load, 并設(shè)計(jì)4個(gè)階段:
- Phase 1, Delay階段,沒有任何壓力,留出端口協(xié)商時(shí)間
- Phase 2, Ramp Up階段,壓力在200秒內(nèi)從0爬升到3125000
- Phase 3, Steady State階段,壓力維持800秒
- Phase 4, Ramp Down階段,不設(shè)置壓力,留出210秒的時(shí)間等待壓力釋放,所有TCP以FIN方式關(guān)閉
Step 8 - Client/ Server Assoications的配置
在Client / Server的Assocaitions頁面下關(guān)聯(lián)之前所建立的配置,請(qǐng)一定檢查關(guān)聯(lián)的名字是否是之前添加編輯的。圖-8 Client / Server Assocaition配置
運(yùn)行測(cè)試后,我們可以從3個(gè)地方查看結(jié)果。左側(cè)是Client端的數(shù)據(jù)統(tǒng)計(jì),包括嘗試的HTTP請(qǐng)求和成功的HTTP請(qǐng)求;
右側(cè)是Server端的數(shù)據(jù)統(tǒng)計(jì),主要是體現(xiàn)TCP連接統(tǒng)計(jì)。Closed no error即代表以FIN關(guān)閉的數(shù)量統(tǒng)計(jì)。運(yùn)行中的實(shí)時(shí)結(jié)果查看
我們從Run->Monitor進(jìn)入Run-Time Statistics頁面,可以選擇查看當(dāng)前測(cè)試重要的數(shù)據(jù)。完整的測(cè)試結(jié)果
在Result下,可以看到每次運(yùn)行的結(jié)果。
圖-11 結(jié)果列表
從Trial Run中,查看抓包內(nèi)容以確定測(cè)試的行為是否符合預(yù)期。
圖-12 Trial Run
從Client / Server的Summary / Real-time結(jié)果中可以看到更多更詳盡的測(cè)試結(jié)果。圖-13 Real-Time Result
本文為大家介紹了如何使用Avalanche進(jìn)行RFC 9411 TCP并發(fā)測(cè)試的一些詳細(xì)配置步驟,后續(xù)我們將繼續(xù)介紹RFC9411其它性能測(cè)試的。歡迎大家持續(xù)關(guān)注,給我們留言。