李 旋, 顧建新, 李 毅
(公安部第三研究所 檢測中心, 上海 200031)
國家互聯(lián)網(wǎng)信息辦公室聯(lián)合信息化部、公安部、國家認證認可監(jiān)督管理委員會等部門于2017年發(fā)布了一批網(wǎng)絡(luò)關(guān)鍵設(shè)備和網(wǎng)絡(luò)安全專用產(chǎn)品的目錄, 目錄內(nèi)的設(shè)備和產(chǎn)品需按照國家標(biāo)準的要求進行強制認證和檢測, 進一步體現(xiàn)了國家對網(wǎng)絡(luò)安全的重視. 網(wǎng)絡(luò)安全產(chǎn)品—安全隔離與信息交換產(chǎn)品(網(wǎng)閘)出現(xiàn)在本次公布的目錄之內(nèi), 且在目錄中給出了網(wǎng)閘產(chǎn)品進入網(wǎng)絡(luò)安全專用產(chǎn)品需要具備的條件. 條件中明確的對網(wǎng)閘性能進行了要求, 即吞吐量≥1 Gbps, 系統(tǒng)延時≤5 ms[1].
國標(biāo)《GB/T 20279-2015信息安全技術(shù) 網(wǎng)絡(luò)和終端隔離產(chǎn)品安全技術(shù)要求》中對于網(wǎng)絡(luò)隔離產(chǎn)品也具有性能要求, 即交換速率大于1000 Mbps, 硬件切換時間小于5 ms. 本文針對網(wǎng)絡(luò)安全專用產(chǎn)品以及國標(biāo)中的性能要求分別設(shè)計了網(wǎng)閘產(chǎn)品的性能測試方法, 并通過實驗進行分析[2,3].
網(wǎng)絡(luò)隔離產(chǎn)品主要分為網(wǎng)閘和協(xié)議隔離. 網(wǎng)閘在結(jié)構(gòu)上以二主機加專用隔離部件的方式組成, 即由內(nèi)部處理單元、外部處理單元和專用隔離部件組成, 內(nèi)部處理單元通常連接內(nèi)部安全域, 外部處理單元連接外部安全域, 專用隔離部件對兩個安全域進行物理上的斷開, 同時滿足數(shù)據(jù)的交換. 網(wǎng)閘除了實現(xiàn)不同安全域之間的物理斷開之外, 在軟件功能上還具有身份認證、訪問控制、協(xié)議剝離等功能, 從而保證不同網(wǎng)絡(luò)之間數(shù)據(jù)交換的安全性.
協(xié)議隔離也起到不同安全域之間的安全數(shù)據(jù)交換,但是在物理結(jié)構(gòu)上只要求二主機, 并沒有強制要求二主機之間具有專有隔離部件, 而是采用協(xié)議剝離和轉(zhuǎn)換的方式保證安全. 即兩個安全域之間進行數(shù)據(jù)交換時, 協(xié)議隔離產(chǎn)品剝離了TCP/IP協(xié)議, 轉(zhuǎn)換為私有協(xié)議進行通信和數(shù)據(jù)傳輸. 因此協(xié)議隔離產(chǎn)品是基于隱匿的安全, 相較于網(wǎng)閘, 網(wǎng)閘的安全性更高[4-6].
在2006版國標(biāo)《GB/T 20279-2006 信息安全技術(shù)網(wǎng)絡(luò)和終端隔離部件安全技術(shù)要求》中并沒有對網(wǎng)絡(luò)隔離產(chǎn)品性能作相關(guān)要求, 網(wǎng)絡(luò)隔離產(chǎn)品也不需要做性能測試, 而在替代其的2015版國家標(biāo)準中, 對于網(wǎng)絡(luò)隔離產(chǎn)品的性能提出可選要求, 即所有網(wǎng)絡(luò)隔離產(chǎn)品均需要進行性能測試, 記錄產(chǎn)品的性能測試結(jié)果, 但是結(jié)果不作為產(chǎn)品是否合格的評價結(jié)論. 從國家標(biāo)準的演進和更新?lián)Q代來看, 網(wǎng)絡(luò)隔離產(chǎn)品的性能受到了重視, 但是還沒有作為產(chǎn)品是否能夠通過認證的測試條目.
網(wǎng)絡(luò)隔離產(chǎn)品和其他安全產(chǎn)品類似, 也涉及到數(shù)據(jù)的交換, 國家互聯(lián)網(wǎng)信息辦公室網(wǎng)絡(luò)安全專用產(chǎn)品目錄中對網(wǎng)閘產(chǎn)品的性能進行了約束, 通過測試其性能是否滿足標(biāo)準, 在技術(shù)層面限制了被測網(wǎng)閘是否能夠成為網(wǎng)絡(luò)安全專用產(chǎn)品, 而且該限制是強制的. 因此網(wǎng)絡(luò)隔離產(chǎn)品的性能受到越來越多的重視.
本節(jié)針對網(wǎng)絡(luò)安全專用產(chǎn)品和2015版國家標(biāo)準的要求分別設(shè)計網(wǎng)絡(luò)隔離產(chǎn)品的性能測試方法, 對于網(wǎng)絡(luò)安全專用產(chǎn)品而言, 其性能要求的網(wǎng)絡(luò)隔離產(chǎn)品特指網(wǎng)閘.
2.1.1 吞吐量
網(wǎng)絡(luò)安全專用產(chǎn)品中對網(wǎng)閘性能的第一個要求是吞吐量. 一般的, 吞吐量是指對網(wǎng)絡(luò)、設(shè)備、端口、虛電路或其他設(shè)施, 單位時間內(nèi)成功地傳送數(shù)據(jù)的數(shù)量(以比特、字節(jié)、分組等測量). 對于網(wǎng)閘來說, 吞吐量是指在沒有幀丟失的情況下, 設(shè)備能夠接收并轉(zhuǎn)發(fā)的最大數(shù)據(jù)速率.
吞吐量與產(chǎn)品的標(biāo)稱值相關(guān), 通常產(chǎn)品的標(biāo)稱值為 10 Gbps(萬兆), 1 Gbps(千兆)和 100 Mbps(百兆), 即在測試時, 測試產(chǎn)品吞吐量與標(biāo)稱值切合程度. 測試吞吐量時, 可以使用軟件和硬件兩種測試方法, 在使用軟件進行測試時, 可以使用iPerf軟件進行測試, 使用硬件進行測試時, 可以使用IXIA的IxNetwork模塊.
2.1.2 系統(tǒng)延時
網(wǎng)絡(luò)安全專用產(chǎn)品中對網(wǎng)閘產(chǎn)品性能的第二個要求是系統(tǒng)延時. 一般的, 延時是指從設(shè)備接收端口接收到數(shù)據(jù)包到轉(zhuǎn)發(fā)到設(shè)備的目的端口之間的時間間隔.對于網(wǎng)閘來說, 系統(tǒng)延時是指產(chǎn)品一端接收到數(shù)據(jù)包,處理數(shù)據(jù)包(安全策略、協(xié)議剝離等), 擺渡數(shù)據(jù)包, 傳輸?shù)綄Χ颂幚頂?shù)據(jù)包(協(xié)議封裝、安全策略)至發(fā)送端口的耗時.
測試延時的時候, 同樣可以使用軟件和硬件兩種測試方法, 在使用軟件進行測試時, 使用iPerf軟件發(fā)送數(shù)據(jù)包并使用Wireshark或者Tcpdump網(wǎng)絡(luò)協(xié)議分析工具捕獲網(wǎng)絡(luò)數(shù)據(jù)包. 使用硬件進行測試時, 同樣可以使用IXIA的IxNetwork模塊.
2.1.3 軟件測試方法
(1) 吞吐量
iPerf軟件是用于主動測量IP網(wǎng)絡(luò)上最大可實現(xiàn)帶寬的工具, 因此可以使用其進行產(chǎn)品吞吐量的測試,在測試時, 選擇2臺性能較好的PC機, 此處性能較好指的是不能夠低于被測產(chǎn)品標(biāo)稱的吞吐量數(shù)值, 如使用千兆的PC機去測量萬兆產(chǎn)品的性能, 顯然是無法測試出吞吐量的實際值的. 選擇好PC機后, 還需要選擇一臺時間服務(wù)器, 提供NTP服務(wù), 為什么需要NTP服務(wù)器, 下文介紹測試延時指標(biāo)時會再做說明. 測試拓撲如圖1所示, 在PC1和PC2上打開iPerf軟件并分別運行于服務(wù)器和客戶端模式, 使用客戶端向服務(wù)器發(fā)送數(shù)據(jù)包的方式進行產(chǎn)品吞吐量的測試.
(2) 系統(tǒng)延時
iPerf軟件雖具有測試延時抖動等參數(shù)的功能, 但是不具有測試延時的功能. 因此測試時使用網(wǎng)絡(luò)協(xié)議分析工具配合, 獲取同一個數(shù)據(jù)包到達接收端口和目標(biāo)端口的時間, 計算時間差值. 但是使用這種方法時首先要在產(chǎn)品內(nèi)部設(shè)置合適的MTU值或者數(shù)據(jù)包協(xié)議剝離、封裝的模式, 使數(shù)據(jù)包不要分片, 即保持輸入數(shù)據(jù)包和輸出數(shù)據(jù)包的一致性; 其次要保證網(wǎng)閘連接內(nèi)部安全域主機和連接外部安全域主機的主機時間的一致性, 因此需要用到上文提到的NTP服務(wù)器做時間同步. 但是經(jīng)過多次測試, 受網(wǎng)閘內(nèi)部晶振等影響, 時間無法保持絕對一致, 總會出現(xiàn)ns級甚至ms級別的誤差, 因此在做實驗前, 除了進行時間同步, 還需要提前計算時間誤差, 在計算延時時, 將時間誤差計算在內(nèi),可獲得相對精確的延時測試結(jié)果.
2.1.4 硬件測試方法
使用IXIA硬件進行測試時, 環(huán)境和配置方法較為簡單便捷, 開啟 IXIA IxNetwork客戶端軟件, 選擇RFC 2544測試模塊, 分別進行流配置(配置端口、IP地址和傳輸方向), 協(xié)議選擇(選擇需要使用的協(xié)議,如TCP或者UDP), 流選項(字節(jié)大小、起始延時等),開始參數(shù)(延時的計算方式等), 測試參數(shù)(測試時間、測試的輪數(shù)等). 測試拓撲如圖1所示, 設(shè)備與IXIA使用網(wǎng)線直連, 由IXIA分別模擬服務(wù)器和客戶端進行吞吐量和延時的測試. 測試結(jié)束后可由IXIA直接得出被測設(shè)備的吞吐量和延時.
圖2 IXIA硬件測試拓撲圖
2.2.1 交換速率
一般的, 交換速率又稱傳輸速度, 指單位時間內(nèi)在數(shù)據(jù)傳輸設(shè)備傳送的比特、字符或消息的平均值. 因此交換速率更加接近于設(shè)備實際工作時的傳輸速度,即吞吐量測試設(shè)備的極限值, 而交換速率測試設(shè)備的實際工作值. 交換速率可以以兩個指標(biāo)來衡量, 最大交換速率(吞吐量)和實際工作交換速率.
最大交換速率的測試方法, 上節(jié)已有介紹, 可以使用軟件或者硬件進行測試, 下面簡要說明實際工作交換速率的測試方法.
根據(jù)網(wǎng)閘實現(xiàn)機制和支持的協(xié)議的不同, 網(wǎng)閘的實際工作方式多樣. 但是目前網(wǎng)閘基本都支持文件交互或同步(個別應(yīng)用于工控領(lǐng)域的網(wǎng)閘不支持文件傳輸), 因此在測試網(wǎng)閘的實際交換速率的時候, 可以使用傳輸文件的方式進行測試, 計算整個文件同步完成后, 所消耗的時間, 根據(jù)文件大小計算網(wǎng)閘在實際應(yīng)用環(huán)境中的交換速率, 來確定交換速率是否達到國家標(biāo)準中交換速率大于1000 Mbps的要求.
2.2.2 硬件切換時間
因網(wǎng)閘特殊的硬件結(jié)構(gòu), 如2.1節(jié)所述, 網(wǎng)閘內(nèi)部具有切換開關(guān), 用來斷開內(nèi)外部安全域的直接相連, 因此硬件開關(guān)的切換速度, 切換時所消耗的時間, 關(guān)系到網(wǎng)閘的傳輸性能, 切換時間可以使用如下方法計算.
網(wǎng)閘內(nèi)部結(jié)構(gòu)圖如圖3所示, 查閱隔離部件內(nèi)部緩存大小, 設(shè)為C, 使用上節(jié)計算的交換速率, 設(shè)為V,則切換時間的計算公式為T=C/V. 這種計算方法在已計算出交換速率的情況下, 通過查閱隔離部件內(nèi)部緩存大小的方法計算得出隔離開關(guān)在整個打開到閉合結(jié)束的時間. 但是這種計算方法并不準確, 誤差出現(xiàn)在隔離部件內(nèi)部緩存大小標(biāo)稱不準確和每次進行數(shù)據(jù)交換時, 向隔離部件內(nèi)(擺渡區(qū))寫入的數(shù)據(jù)量不可能完全相同. 因此這種計算方式存在的誤差較大. 目前國家標(biāo)準中關(guān)于切換時間的性能指標(biāo)被系統(tǒng)延時取代, 即使用網(wǎng)絡(luò)安全專用產(chǎn)品的性能指標(biāo), 因為該指標(biāo)包括了硬件切換時間和網(wǎng)閘對數(shù)據(jù)包的處理所消耗的時間,更能體現(xiàn)網(wǎng)閘的真實延時性能[7,8].
圖3 網(wǎng)閘產(chǎn)品內(nèi)部結(jié)構(gòu)圖
前一章中已經(jīng)介紹了網(wǎng)閘的性能測試方法, 本章根據(jù)上一章介紹的方法對網(wǎng)絡(luò)安全專用產(chǎn)品中要求的網(wǎng)閘性能進行測試并進行結(jié)果分析.
以標(biāo)稱值為千兆的網(wǎng)閘產(chǎn)品為例, 分別使用軟件和硬件的測試方法進行吞吐量和系統(tǒng)延時測試.
測試拓撲如圖1所示, 選擇2臺千兆性能的測試PC(PC1 和 PC2), 均安裝 iPerf軟件. 在 PC1 上啟用iPerf軟件并設(shè)置為服務(wù)器模式, 在PC2上啟用iPerf軟件并設(shè)置為客戶端模式, 使用六類線將兩臺PC直連, 測試PC機的最大數(shù)據(jù)包傳輸速率. 確認兩臺PC直連數(shù)據(jù)包傳輸速率能夠到達1 Gbps, 即能夠達到千兆網(wǎng)閘吞吐量的標(biāo)稱值[9,10].
測試步驟如下:
步驟1. 網(wǎng)閘工作于代理模式, 并配置一條從外到內(nèi)的單向UDP全通策略, 使基于UDP的數(shù)據(jù)流能夠正常通過網(wǎng)閘, 而不被網(wǎng)閘阻斷(注: 個別產(chǎn)品需要配置UDP源和目的端口);
步驟2. 對網(wǎng)閘的內(nèi)部、外部安全域主機(簡稱內(nèi)部主機和外部主機)進行與NTP服務(wù)器的校時, 校時結(jié)束后, 記錄2臺主機之間的時間誤差, 如圖4所示;
圖4 使用NTP校時后的網(wǎng)閘內(nèi)、外部主機時間
步驟3. 將網(wǎng)閘串聯(lián)在PC1和PC2之間, 并使PC1連接網(wǎng)閘內(nèi)部主機, PC2連接網(wǎng)閘外部主機, 并在網(wǎng)閘的內(nèi)部、外部主機上開啟流量分析軟件(如Wireshark或Tcpdump);
步驟4. 在PC1上運行iPerf服務(wù)器指令iperf -s -u-p 5000 -t 30, 使用UDP協(xié)議并開啟UDP的5000端口, 每30秒統(tǒng)計一次流量;
步驟5. 在PC2上運行iPerf客戶端指令iperf -c 192.168.0.1 -u -p 5000 -5 -P 1 -l 1518 -b 1000 M, 連接 192.168.0.1的服務(wù)器, 并以一個線程向服務(wù)器的UDP 5000端口發(fā)送流量帶寬為1000 Mbps, 字節(jié)大小為1518 KB的數(shù)據(jù)流;
步驟6. 重復(fù)發(fā)送3次, 記錄服務(wù)器端的統(tǒng)計結(jié)果,并求三次的平均值, 如圖5.
圖5 服務(wù)器端的測試結(jié)果
通過以上步驟能夠測試出該網(wǎng)閘的吞吐量和系統(tǒng)延時, 在計算系統(tǒng)延時的時候, 需要將內(nèi)、外部主機上獲取的對應(yīng)的數(shù)據(jù)包時間差再減去內(nèi)外網(wǎng)主機之間的時間誤差.
3.2.1 實驗步驟
測試拓撲如圖2所示, 測試步驟如下:
步驟1. 網(wǎng)閘工作于代理模式, 并配置一條從外到內(nèi)的單向UDP全通策略, 使基于UDP的數(shù)據(jù)流能夠正常通過網(wǎng)閘, 而不被網(wǎng)閘阻斷(注: 個別產(chǎn)品需要配置UDP源和目的端口);
步驟2. 將網(wǎng)閘的內(nèi)外部主機測試網(wǎng)口與IXIA直連, 使用IxNetwork配置IXIA的測試參數(shù);
步驟3. 在IXIA上選擇測試端口, 并配置IP地址,填入網(wǎng)閘的內(nèi)外網(wǎng)主機地址作為網(wǎng)關(guān)地址;
步驟4. 配置流方向, 將IXIA的數(shù)據(jù)流打向網(wǎng)閘的代理端口, 選擇快速測試中的 RFC2544, 吞吐量/延時測試用例, 在用例中進行參數(shù)配置, 選擇二分法, 使用固定1518字節(jié)的UDP數(shù)據(jù)包測試吞吐量, 并同時計算延時, 測試三次, 取平均值. 配置界面如圖6所示,測試結(jié)果如圖7所示.
由測試結(jié)果可以看出, 被測網(wǎng)閘在千兆環(huán)境下能夠按照線速進行數(shù)據(jù)包轉(zhuǎn)發(fā), 即千兆速率下未丟包, 但是L2層的統(tǒng)計結(jié)果卻顯示986 Mbps, 小于1000 Mbps, 是因為IXIA在進行發(fā)包測試時插入了前導(dǎo)碼,且發(fā)包時也具有幀間隙, 導(dǎo)致了統(tǒng)計結(jié)果略小.
圖6 IXIA IxNetwork參數(shù)配置界面
圖7 測試結(jié)果
理論上, 通過使用硬件和軟件的測試方法均能夠測試出網(wǎng)閘的性能參數(shù), 但是通過測試結(jié)果分析, 使用硬件測試的結(jié)果更能夠體現(xiàn)網(wǎng)閘性能的極限值, 且硬件設(shè)備配置過程簡單, 可以直接得出實驗結(jié)果, 系統(tǒng)延時不需要進行計算, 但是在不具有昂貴的硬件設(shè)備的情況下, 軟件測試方法的測試結(jié)果同樣在合理范圍內(nèi).
3.2.2 統(tǒng)計結(jié)果及分析
使用硬件測試方法對2款百兆網(wǎng)閘、10款千兆網(wǎng)閘和2款萬兆網(wǎng)閘的的吞吐量和系統(tǒng)延時分別進行測試, 測試結(jié)果的分布如圖8所示.
本文基于網(wǎng)絡(luò)安全專用產(chǎn)品目錄中對網(wǎng)閘性能的要求和網(wǎng)絡(luò)隔離產(chǎn)品國家標(biāo)準中對網(wǎng)閘性能的要求入手, 設(shè)計了基于軟件和硬件的性能測試方法, 并使用設(shè)計的測試方法對網(wǎng)閘的吞吐量和系統(tǒng)延時進行了測試,證明了測試方法的有效性. 同時, 隨機選取了14款網(wǎng)閘, 包括2臺百兆性能、2臺萬兆性能和10臺千兆性能的產(chǎn)品, 對其性能進行了測試, 得出了性能的分布情況和網(wǎng)閘的性能瓶頸.
本文基于網(wǎng)絡(luò)安全專用產(chǎn)品目錄中對網(wǎng)閘性能的要求和網(wǎng)絡(luò)隔離產(chǎn)品國家標(biāo)準中對網(wǎng)閘性能的要求入手, 設(shè)計了基于軟件和硬件的性能測試方法, 并使用設(shè)計的測試方法對網(wǎng)閘的吞吐量和系統(tǒng)延時進行了測試,證明了測試方法的有效性. 同時, 隨機選取了14款網(wǎng)閘, 包括2臺百兆性能、2臺萬兆性能和10臺千兆性能的產(chǎn)品, 對其性能進行了測試, 得出了性能的分布情況和網(wǎng)閘的性能瓶頸.
圖8 14款網(wǎng)閘性能測試結(jié)果統(tǒng)計