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