袁春蕾,歐陽志友,王 堃
(1.南京郵電大學先進技術研究院,江蘇南京 210023;2.南京郵電大學物聯(lián)網(wǎng)學院,江蘇南京 210023)
基于nDPI的流量監(jiān)控分析實驗平臺研究
袁春蕾1,歐陽志友2,王 堃2
(1.南京郵電大學先進技術研究院,江蘇南京 210023;2.南京郵電大學物聯(lián)網(wǎng)學院,江蘇南京 210023)
流量監(jiān)控分析是信息網(wǎng)絡學科的重要內(nèi)容,也是網(wǎng)絡工程、計算機科學與技術、物聯(lián)網(wǎng)等專業(yè)的實驗教學體系中的核心內(nèi)容之一。針對現(xiàn)有的網(wǎng)絡流量監(jiān)控分析實驗平臺大多過于簡單,未能提供有關分光、端口鏡像、深度報文檢測等深層次的實驗內(nèi)容,該文提出一種基于nDPI的網(wǎng)絡流量監(jiān)控分析實驗平臺TMALab,不僅能提供基本的報文采集、協(xié)議分析等基礎實驗,同時還能為大學生創(chuàng)新、集中性實踐教學以及科學研究提供實驗條件。給出了其設計框架和系統(tǒng)的實現(xiàn)。實際測試結(jié)果表明,該系統(tǒng)可以較好滿足流量監(jiān)控分析實驗教學的需要。
流量監(jiān)控;流量分析;nDPI;深度報文檢測;實驗平臺
網(wǎng)絡流量監(jiān)控分析是網(wǎng)絡管理、流量工程和網(wǎng)絡安全等網(wǎng)絡研究與應用的基礎[1],也是網(wǎng)絡工程、計算機科學與技術、物聯(lián)網(wǎng)等專業(yè)的重要內(nèi)容。網(wǎng)絡流量監(jiān)控分析可以在不干擾網(wǎng)絡運行的情況下,對網(wǎng)絡中運行的業(yè)務、帶寬利用情況、網(wǎng)絡質(zhì)量等進行實時或離線分析,是最有效的網(wǎng)絡管理方式之一[2-4]。
目前網(wǎng)絡流量監(jiān)控分析實驗大都采用開源軟件wireshark來抓取本機的協(xié)議報文進行分析[5-6],這類工具存在兩個很大的不足:(1)只能抓取到本機的協(xié)議報文進行分析,而本機的網(wǎng)絡流量的特征與用流量監(jiān)控分析來管理的骨干網(wǎng)的流量特征通常相差非常大;(2)對網(wǎng)絡流量監(jiān)控分析系統(tǒng)中用到的前沿技術,如光纖通信的分光、深度報文檢測(deep packet inspection,DPI)[7]、深度流檢測(deep flow inspection,DFI)[8]等都無法演示,不能滿足高年級學生的課外創(chuàng)新活動和科學研究的需要。
本文總結(jié)了現(xiàn)有網(wǎng)絡流量監(jiān)控分析實驗軟件的弊端,結(jié)合高校對多層次實驗教學平臺建設[9]和大學生創(chuàng)業(yè)創(chuàng)新能力培養(yǎng)對實驗平臺的需要[10],提出了一種精簡的、非常接近大型網(wǎng)絡管理系統(tǒng)中實際部署的網(wǎng)絡流量監(jiān)控系統(tǒng)的網(wǎng)絡流量監(jiān)控分析實驗平臺(traffic monitor and analysis laboratory,TMA-Lab),該實驗平臺不僅兼顧了演示實際網(wǎng)絡流量監(jiān)控系統(tǒng)的施工部署技術(光纖分光、端口鏡像等),更提供了千兆網(wǎng)絡流量實時監(jiān)控功能、深度報文檢測的核心庫及其擴展開發(fā)接口,可以為從本科生、研究生和教師的課內(nèi)實驗、開放性實驗、大學生創(chuàng)業(yè)創(chuàng)新、科研等提供與網(wǎng)絡流量監(jiān)控分析相關的實驗平臺。
1.1 TMA-Lab的部署架構(gòu)
在實際應用中,網(wǎng)絡流量監(jiān)控分析系統(tǒng)通常部署于企業(yè)網(wǎng)或者電信運營商的出口上,根據(jù)網(wǎng)絡結(jié)構(gòu)及設備的不同,通常采用端口鏡像或者分光的方式來獲取實時的網(wǎng)絡流量并進行分析。需要分析的流量大小等也不盡相同,為此TMA-Lab實驗平臺需要兼顧考慮這些情況。TMA-Lab的部署架構(gòu)見圖1。

圖1 TMA-Lab實驗平臺部署結(jié)構(gòu)
在TMA-Lab中,根據(jù)實驗教學中心的網(wǎng)絡拓撲情況,將單個機房的網(wǎng)絡當成企業(yè)網(wǎng),將多個機房構(gòu)成的實驗教學中心當成電信運營商,分別演示不同的抓包技術。對實驗中心到校園骨干網(wǎng)之間的光纖,采用分光器來獲得整個機房的流量數(shù)據(jù)。在機房的出口交換機上,采用端口鏡像方式來獲取整個機房的流量數(shù)據(jù)。這些數(shù)據(jù)獲得后,發(fā)送到TMA-Lab實驗平臺的采集器上,由采集器來完成報文獲取與協(xié)議分析等功能。這里的采集器和控制器等均可以用普通的臺式電腦或服務器,只需部署相應的軟件即可。在實驗經(jīng)費不足的情況下,采集器和控制等還可以合并在一起,安裝到同一臺普通電腦上即可。
1.2 TMA-Lab的軟件設計
TMA-Lab實驗平臺用于提供類似企業(yè)網(wǎng)和電信運營商網(wǎng)絡中網(wǎng)絡流量監(jiān)控分析系統(tǒng)類似的功能,同時有別于其他網(wǎng)絡流量監(jiān)控系統(tǒng)。TMA-Lab還提供豐富全面的二次開發(fā)接口,為網(wǎng)絡流量監(jiān)控分析相關的實驗教學、大學生創(chuàng)業(yè)創(chuàng)新以及科學研究等提供理論驗證和算法研究的實驗平臺。為此,TMA-Lab需要提供網(wǎng)絡流量監(jiān)控分析系統(tǒng)涉及的所有相關技術,包括高速報文收發(fā)、協(xié)議識別、流量統(tǒng)計等技術及其相關的各類算法。考慮到TMA-Lab的主要目標是為學習和研究網(wǎng)絡流量監(jiān)控分析提供實驗平臺,因此,必須提供各層面的開發(fā)接口和高可擴展的體系結(jié)構(gòu)。
TMA-Lab由流量采集引擎、協(xié)議識別引擎、內(nèi)置規(guī)則庫、擴展規(guī)則庫和交互控制界面等幾個部分構(gòu)成,其體系結(jié)構(gòu)如見圖2。

圖2 TMA-Lab體系結(jié)構(gòu)
流量采集引擎主要完成采集網(wǎng)卡或者光口上的報文,并提供給上層的協(xié)議識別引擎進行協(xié)議識別和分析等。同時,流量采集引擎提供了從離線數(shù)據(jù)文件中讀取網(wǎng)絡流量報文以及將采集的實時網(wǎng)絡流量報文轉(zhuǎn)存到離線數(shù)據(jù)文件的功能。此外,流量采集引擎還提供擴展結(jié)構(gòu)和基本的統(tǒng)計功能,允許實驗者開發(fā)和使用新的流量采集技術。
規(guī)則庫主要包括具體協(xié)議的識別特征及其檢測算法的實現(xiàn),以及常用網(wǎng)絡應用的端口表,用于配合流量識別引擎完成對具體協(xié)議的識別。在TMA-Lab中,規(guī)則庫由內(nèi)置規(guī)則庫和擴展規(guī)則庫兩部分組成,內(nèi)置規(guī)則庫有程序內(nèi)置,提供一些標準協(xié)議的識別特征,可滿足實驗教學的需要。擴展規(guī)則庫則主要針對新出現(xiàn)的、復雜的網(wǎng)絡應用,允許研究人員或高年級學生自行開發(fā)和設計新協(xié)議的識別特征。
協(xié)議識別引擎是TMA-Lab的核心,在規(guī)則庫的基礎上,完成對網(wǎng)絡流量的協(xié)議識別、統(tǒng)計分析等功能。TMA-Lab中的協(xié)議識別引擎基于nDPI[11]開發(fā),內(nèi)置超過120種常用協(xié)議的識別特征,同時允許開發(fā)人員開發(fā)擴展的協(xié)議識別特征和流識別功能。
交互控制界面則作為人機交互界面,主要提供用戶操作和管理TMA-Lab實驗平臺的功能。
2.1 基于Winpcap的流量采集接口
考慮到對現(xiàn)有網(wǎng)絡流量監(jiān)控分析實驗軟件Wireshark的兼容性以及現(xiàn)有主流協(xié)議分析工具的數(shù)據(jù)規(guī)范,在TMA-Lab中,對底層所用的技術根據(jù)硬件平臺、網(wǎng)卡驅(qū)動、操作系統(tǒng)等各種因素來決定,但經(jīng)過封裝,對上層提供統(tǒng)一的Winpcap[12]接口函數(shù),并提供將實時采集的數(shù)據(jù)存儲為離線數(shù)據(jù)文件,以及從離線數(shù)據(jù)文件中加載流量數(shù)據(jù)的功能。TMA-Lab中提供的利用Winpcap來實現(xiàn)流量采集的步驟及函數(shù)調(diào)用過程如下:
(1)獲得本機網(wǎng)卡列表。采集機一般安裝有多塊網(wǎng)卡,一塊網(wǎng)卡用于遠程控制或數(shù)據(jù)傳輸(如將采集的數(shù)據(jù)分發(fā)給其他電腦用于開展實驗),其他網(wǎng)卡用于采集分光或端口鏡像方式發(fā)送過來的流量數(shù)據(jù),因此要采集實時網(wǎng)絡流量時,需要首先獲取本機的網(wǎng)卡列表。在Winpcap接口體系中,可以通過pcap_findalldevs_ex函數(shù)來獲得本機的所有網(wǎng)絡適配器。
(2)打開指定網(wǎng)卡或數(shù)據(jù)文件。Winpcap提供了pcap_open_live函數(shù)來打開指定的網(wǎng)卡進行數(shù)據(jù)采集,也可以通過pcap_open_offline函數(shù)來打開離線存儲的pcap數(shù)據(jù)文件來讀取之前存儲的數(shù)據(jù)。在TMA-Lab中,用戶可以通過界面來選擇要監(jiān)控的網(wǎng)卡或讀取的離線數(shù)據(jù)文件,其中要監(jiān)控的網(wǎng)卡列表可以由第一步的pcap_findalldevs()函數(shù)來獲取。
(3)設置過濾規(guī)則。根據(jù)不同的實驗內(nèi)容對網(wǎng)絡流量監(jiān)控分析的側(cè)重點不同,可以通過設置過濾規(guī)則來選擇要采集的報文,如只采集IP報文。在Winpcap中,可通過調(diào)用pcap_compile和pcap_setfilter兩個函數(shù)來實現(xiàn)過濾規(guī)則的設置。
(4)報文處理。Winpcap提供了多種方式來處理采集到的報文:通過pcap_loop函數(shù)可以設置回調(diào)函數(shù)來實現(xiàn)報文的處理,也可以通過pcap_next_ex函數(shù)直接獲得一個個的報文。在TMA-Lab中,由于采集的報文需要經(jīng)由nDPI流量識別引擎來進行協(xié)議識別和開展其他實驗,因此采用阻塞的多線程方式來實現(xiàn),即通過在多線程中調(diào)用pcap_next_ex來獲得報文,然后送到一個隊列中,由nDPI讀取隊列來處理報文。
(5)資源清理。資源清理用于程序退出時關閉打開的網(wǎng)絡適配器以及釋放占用的資源等,可以通過調(diào)用pcap_freealldevs函數(shù)來釋放設備列表。
2.2 基于nDPI的流量識別引擎的實現(xiàn)
nDPI是由ntop維護的一個openDPI[13]的擴展庫,基于LGPL開源,可以免費用于各種開源或商業(yè)應用。nDPI在openDPI的基礎上做了很多擴展,增加了對Windows系統(tǒng)的支持和提供了更多的協(xié)議識別特征,同時在性能上也做了優(yōu)化。TMA-Lab的流量識別引擎采用的是在nDPI基礎上進行擴展開發(fā),并主要提供如下幾個方面的改進:①將協(xié)議識別規(guī)則分為內(nèi)置規(guī)則和擴展規(guī)則,并提供開發(fā)接口供用戶開發(fā)擴展規(guī)則;②提供豐富的流量及協(xié)議的統(tǒng)計功能;③提供協(xié)議識別的擴展功能,為深度流檢測及其他算法提供擴展接口;④針對Windows系統(tǒng)進一步優(yōu)化性能?;趎DPI改進后的協(xié)議識別引擎的基本流程如下:
(1)初始化協(xié)議識別引擎。對協(xié)議識別引擎中用到的基本數(shù)據(jù)結(jié)構(gòu)進行初始化,包括時間戳、調(diào)戲信息輸出函數(shù)等。同時,調(diào)用ndpi_init_detection_module函數(shù)初始化nDPI引擎的檢測模塊和協(xié)議掩碼。
(2)設置要識別的協(xié)議。通過調(diào)用NDPI_BITMASK_SET_ALL函數(shù)和ndpi_set_protocol_detection_bitmask2函數(shù)來設置要識別的協(xié)議。通常這里設置檢測和識別nDPI支持的全部協(xié)議。在TMA-Lab中,實驗平臺支持的協(xié)議特征分為內(nèi)置規(guī)則和擴展規(guī)則,其中的內(nèi)置規(guī)則即nDPI支持的所有協(xié)議特征庫,而擴展規(guī)則庫則由實驗平臺的用戶根據(jù)擴展接口開發(fā)相應的協(xié)議識別特征和識別函數(shù)后,由TMA-Lab在運行過程中動態(tài)加載。
(3)加載協(xié)議文件。通過調(diào)用dpi_load_protocols_file函數(shù)來加載現(xiàn)有的協(xié)議文件。
(4)識別協(xié)議報文。通過前面幾個步驟,TMALab可以實現(xiàn)數(shù)據(jù)報文的檢測和識別,通過調(diào)用ndpi_detection_process_packet函數(shù)可以獲得報文的具體信息,包括協(xié)議流、報文的詳細信息等數(shù)據(jù)。
(5)報文分類。在TMA-Lab實驗平臺中,需將采集的報文進行識別并根據(jù)其應用類別劃分:將不支持的報文類型都設置成Unknown,將識別出來的報文按照TCP/IP分層協(xié)議的層次,依次將報文由下至上進行處理,解析出源地址、目的地址、源端口、目的端口和報文負載等通信五元組信息,并根據(jù)通信五元組的信息歸并到對應的數(shù)據(jù)流,送交協(xié)議識別DPI算法或流識別DFI算法來進行協(xié)議識別分析。
(6)協(xié)議識別。根據(jù)協(xié)議報文的負載和端口信息進行協(xié)議特征匹配,詳細分析報文,判斷報文所屬的具體協(xié)議。或根據(jù)TMA-Lab的配置,將報文組構(gòu)成的協(xié)議流使用DFI算法進行協(xié)議識別分析。
(7)統(tǒng)計分析。對采集或者從離線文件中讀取的原始報文的數(shù)量、流量大小、IP報文數(shù)量、IP報文大小、報文的協(xié)議類型、不同協(xié)議的報文數(shù)量和流量大小等數(shù)據(jù)進行詳細統(tǒng)計,并根據(jù)TMA-Lab的設置來進行分析,包括對不同協(xié)議的通信起止時間、通信內(nèi)容、每個報文的詳細內(nèi)容等進行分析。
為了測試TMA-Lab的效果,本文選取了千兆光纖網(wǎng)絡接入的實驗教學示范中心的出口網(wǎng)絡進行了實際部署,TMA-Lab的運行結(jié)果見圖3。由圖3可見,TMA-Lab實驗平臺實現(xiàn)了網(wǎng)絡流量的數(shù)據(jù)采集,也可以為開展協(xié)議分析和DPI算法研究提供基礎。

圖3 TMA-Lab運行結(jié)果界面
本文考慮到現(xiàn)有網(wǎng)絡流量監(jiān)控分析實驗軟件的不足,提出了一種名為TMA-Lab的網(wǎng)絡流量監(jiān)控分析實驗平臺,并給出了實驗平臺的設計方案和關鍵部分的實現(xiàn)方案,以及運行測試結(jié)果,對于網(wǎng)絡流量監(jiān)控分析系統(tǒng)開發(fā)、協(xié)議分析實驗、網(wǎng)絡安全實驗平臺建設等都有較高的參考價值。
(References)
[1]付文亮,嵩天,周舟.RocketTC:一個基于FPGA的高性能網(wǎng)絡流量分類架構(gòu)[J].計算機學報,2014,37(2):414-422.
[2]王文蔚.協(xié)議分析及其在網(wǎng)絡管理中的應用[J].信息技術與信息化,2009(2):31-33.
[3]周楊.協(xié)議分析技術在入侵檢測系統(tǒng)中的應用[J].計算機系統(tǒng)應用,2011,20(6):161-164.
[4]聶瑞華,黃偉強,吳仕毅,等.基于DPI技術的校園網(wǎng)絡帶寬管理[J].計算機技術與發(fā)展,2009,19(4):250-253.
[5]劉廣鐘,高軍,劉旻,等.報文分析技術在計算機網(wǎng)絡教學中的應用[J].計算機教育,2014(1):76-80.
[6]潘文嬋,章韻.Wireshark在TCP/IP網(wǎng)絡協(xié)議教學中的應用[J].計算機教育,2010(6):158-162.
[7]姚永鋒,梅瑞,梅越.基于DPI的數(shù)據(jù)內(nèi)容安全檢測算法優(yōu)化與實現(xiàn)[J].信息網(wǎng)絡安全,2013(7):2-6.
[8]葉文晨,汪敏,陳云寰,等.一種聯(lián)合DPI和DFI的網(wǎng)絡流量檢測方法[J].計算機工程,2011(10):102-104,107.
[9]周錦蘭,王宏,聶進.多層次大學生創(chuàng)新實驗平臺的構(gòu)建與實踐[J].實驗技術與管理,2011,28(4):16-18,21.
[10]畢大強.科研實驗平臺建設與使用的幾點思考[J].實驗技術與管理,2011,28(12):178-180.
[11]Deri L,Martine.nDPI:Open-source high-speed deep packet inspection[C]//IWCMC’14,2014.
[12]沈輝,張龍.基于WinPcap的網(wǎng)絡數(shù)據(jù)監(jiān)測及分析[J].計算機科學,2012(增刊2):15-18,29.
[13]魏永,周云峰,郭利超.OpenDPI報文識別分析[J].計算機工程,2011(增刊1):98-100,10.
Research on experimental platform with network traffic monitoring and analysis system based on nDPI
Yuan Chunlei1,Ouyang Zhiyou2,Wang Kun2
(1.Institute of Advanced Technology,Nanjing University of Posts &Telecommunications,Nanjing 210023,China;2.School of Internet of Things,Nanjing University of Posts &Telecommunications,Nanjing 210023,China)
The network traffic monitoring and analysis are one of the crucial parts for Information Network subject,as well as one of the most important roles in experiment architecture for Network Engineer,Computer Science and Technology,Internet of Things and so on.However,the existing network traffic monitoring and analysis experimental teaching platform is out-of-date that is a lack of supports for some advanced experiments related to light split,mirror port and Deep Packet Inspection.An nDPI-based network traffic monitoring and analysis experimental teaching platform is presented to support the basic experiments,like packet capturing,protocol parsing,as well as advanced experiments,which are related to the student’s innovation,practical teaching and academic research activities.The design and essential implementation for the platform are introduced,and the actual distribution experience proves that the platform is adequate for the requirement of network traffic monitoring and analysis experimental teaching.
traffic monitoring;traffic analysis;nDPI;deep packet inspection;experimental platform
TN915.04
A
1002-4956(2015)3-0097-04
2014-08-07
中央財政支持地方高校發(fā)展專項資金項目“物聯(lián)網(wǎng)技術研究實驗室”(2012);江蘇省研究生教育教學改革研究與實踐課題(JGLX13_03 4);南京郵電大學教學改革研究重點項目(JG016 13JX10);南京郵電大學實驗室工作研究課題重點項目(2014XSG03)
袁春蕾(1981—),女,山東青島,碩士,助理研究員,主要從事科研管理、計算機網(wǎng)絡技術與應用、物聯(lián)網(wǎng)等方面的教育管理及科研工作
歐陽志友(1982—),男,湖南永州,碩士,實驗師,主要研究方向為信息網(wǎng)絡、云計算與大數(shù)據(jù)分析.
E-mail:netivs@qq.com