摘 要: 研究并解決網(wǎng)絡流量監(jiān)測中的各種關鍵技術,,提出符合中心計算機系統(tǒng)實際情況的網(wǎng)絡流量監(jiān)測系統(tǒng)的架構,;設計并實現(xiàn)了網(wǎng)絡流量監(jiān)測系統(tǒng),該系統(tǒng)基于Turbocap千兆捕獲卡和工作站。通過該系統(tǒng),,用戶可以制定針對特定業(yè)務的流量監(jiān)測,,并根據(jù)詳細的流量信息實現(xiàn)故障定位。目前該系統(tǒng)己經(jīng)運行在中心計算機系統(tǒng)網(wǎng)絡中,。
關鍵詞: 網(wǎng)絡流量監(jiān)測,;Libpcap;ntop,;span,;tap;TurboCap
1 系統(tǒng)概述
中心計算機系統(tǒng)是武器試驗靶場測控系統(tǒng)中數(shù)據(jù)處理與轉發(fā)的樞紐,,是典型的實時系統(tǒng),,主要任務是綜合接收、實時處理各種測量設備信息,。隨著網(wǎng)絡技術的發(fā)展,,中心計算機系統(tǒng)由點對點的專用通信鏈路(HDLC、串口)向網(wǎng)絡通信過渡,。整個測控系統(tǒng)的IP化是必然趨勢,。將來,所有的測控設備都必需提供IP接口,,以IP數(shù)據(jù)包交換為特征的網(wǎng)絡通信會逐步替代以點對點為主的傳統(tǒng)通信方式,。隨著基地網(wǎng)絡應用范圍的不斷擴大以及網(wǎng)絡的日益復雜化,網(wǎng)絡管理工作的難度也越來越大,。因此根據(jù)基地網(wǎng)絡實際情況設計了一種網(wǎng)絡流量監(jiān)測系統(tǒng),,用來測試中心計算機系統(tǒng)網(wǎng)絡的性能和可靠性。通過該系統(tǒng),,可以對網(wǎng)絡的健康狀況與瓶頸進行測試,,迅速地確定網(wǎng)絡問題,。
1.1 研究目的
本課題的研究目的是以中心計算機系統(tǒng)為應用背景,,研究并解決網(wǎng)絡流量監(jiān)測中的各種關鍵技術,提出符合中心計算機系統(tǒng)實際情況的,、技術可行的網(wǎng)絡流量監(jiān)測系統(tǒng)的架構和應用方式,,并構建一套可滿足中心計算機系統(tǒng)應用的網(wǎng)絡流量監(jiān)測系統(tǒng),。
1.2 研究意義
網(wǎng)絡流量監(jiān)測有助于維護網(wǎng)絡持續(xù)、高效和安全地運行,,網(wǎng)絡流量監(jiān)測的意義在于取得對網(wǎng)絡運行管理,、應用運行管理和網(wǎng)絡問題分析有意義的數(shù)據(jù)。這些數(shù)據(jù)(包括利用率,、b/s,、pps、網(wǎng)絡延遲,、重傳,、連接數(shù)量等)只有與實際的網(wǎng)絡應用運行情況結合起來才有意義。這是因為不同的網(wǎng)絡,、不同的應用都有完全不同的數(shù)據(jù)流量,。只有對網(wǎng)絡和應用進行深入地了解,才能使這些數(shù)據(jù)的價值得到真正的體現(xiàn),。網(wǎng)絡流量的監(jiān)測對于技術人員了解網(wǎng)絡,、發(fā)現(xiàn)問題、確認問題原因有著重要的意義[1-3],。
2 方案設計
網(wǎng)絡流量監(jiān)測從不同的方面可以分為如下幾部分:
(1)基于硬件探針的測量和基于軟件的測量
基于硬件探針的測量通常指使用專用硬件設備進行網(wǎng)絡流的測量,,捕獲和實時分析能力強,但一般價格昂貴,?;谲浖臏y量通常是在PC上安裝軟件來實現(xiàn)。與基于硬件的方法比較,,費用比較低廉,,但是性能一般。
(2)主動測量和被動測量
主動測量使用由測量設備產(chǎn)生的數(shù)據(jù)流來探測網(wǎng)絡而獲知網(wǎng)絡的信息,。被動測量只是記錄網(wǎng)絡的數(shù)據(jù)流,,不向網(wǎng)絡流中注入任何數(shù)據(jù)。大部分網(wǎng)絡流量測量都是被動測量[4-5],。
(3)在線分析和離線分析
在線分析指實時地收集和分析網(wǎng)絡數(shù)據(jù),,同時顯示流量數(shù)據(jù)和分析結果。離線分析只是在線地收集網(wǎng)絡數(shù)據(jù)并存儲下來,,并不對數(shù)據(jù)進行實時的分析,。
(4)協(xié)議級分類
對于不同的協(xié)議,例如以太網(wǎng)(Ethernet),、幀中繼(Frame Relay),、異步傳輸模式(ATM),也就有了不同的通信量測試方法,。
根據(jù)中心計算機網(wǎng)絡的實際情況,,采用基于硬件測量方式,、被動在線測量以及針對以太網(wǎng)的協(xié)議。經(jīng)過充分調(diào)研和分析,,基于高速數(shù)據(jù)采集卡(TurboCap)和工作站來構建流量監(jiān)測系統(tǒng),,采用Linux操作系統(tǒng)和開源軟件(LibpCap、ntop)來實現(xiàn)流量監(jiān)測功能,。
2.1 硬件系統(tǒng)
2.1.1 TurboCap千兆抓包卡
TurboCap卡是一種基于PCI-E總線的高速抓包卡,,提供TurboCap API以及LibpCap API[6]。如圖1所示,。
2.1.2 計算機配置
為了保證抓包速度,,需要計算機具有PCI-E 8x插槽,8 GB以上內(nèi)存,。
2.2 軟件系統(tǒng)
軟件系統(tǒng)主要包括Linux操作系統(tǒng),、TurboCap開發(fā)套件、LibpCap,、ntop等,。
2.2.1 LibpCap
LibpCap是一個平臺獨立的網(wǎng)絡數(shù)據(jù)抓包開發(fā)包,其應用非常廣泛,,可以在絕大多數(shù)類Unix/Linux平臺下工作,,提供了用戶級API編程接口,并充分考慮到應用程序的可移植性,。LibpCap隱藏了操作系統(tǒng)的細節(jié),,為底層網(wǎng)絡監(jiān)控編程提供一個易于移植的應用框架,可以捕獲網(wǎng)絡上的所有數(shù)據(jù)包,。
2.2.2 TurboCap開發(fā)套件
TurboCap開發(fā)套件包括TurboCap驅(qū)動,、TurboCap內(nèi)核模塊、用戶級的API以及TurboCap開發(fā)庫,、文檔,、例子。
2.2.3 網(wǎng)絡流量監(jiān)測軟件ntop
ntop可以從http://www.ntop.org下載,,并以開源方式提供使用,,是Linux下著名的網(wǎng)絡流量監(jiān)測軟件。ntop是一種網(wǎng)絡嗅探器,,以sniffery方式運作,,可以監(jiān)測的數(shù)據(jù)包括:網(wǎng)絡流量、使用協(xié)議,、系統(tǒng)負載,、端口情況等。ntop能夠顯示基于IP地址的帶寬占用情況,幫助技術人員迅速定位占有大量帶寬的主機和應用,,還能基于協(xié)議的類型進行統(tǒng)計并生成直觀的圖表,幫助技術人員了解業(yè)務流量的組成和比例,,進而以此為依據(jù)來優(yōu)化網(wǎng)絡,。
在使用ntop的過程中,解決了一些問題,,主要包括:
(1)在沒有連接互聯(lián)網(wǎng)的情況下ntop無法編譯安裝,;
(2)在對ntop的源碼編譯時提示沒有定義pthread_
mutex_trywrlock;
(3)ntop運行過程中會出現(xiàn)拒絕遠程的連接請求等,。
此外還對ntop進行了一些改進,,包括對歷史數(shù)據(jù)的保存、數(shù)據(jù)導出等,。為了用戶使用方便,,對ntop的Web界面顯示進行了漢化,主要是修改http.c和report.c兩個文件,。
2.3 關鍵技術研究
中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)的關鍵技術包括如下幾種,。
2.3.1 千兆以太網(wǎng)線速抓包技術
在搭建網(wǎng)絡流量監(jiān)測系統(tǒng)時需要全速千兆以太網(wǎng)抓包,這絕對是一項挑戰(zhàn)性任務,。采用通用的設備,,如何做到捕包性能最好、不丟包,,是需要突破的關鍵技術,。而采用純軟件的技術是無法達到線速抓包的,因此必須由硬件來配合,。為了提高抓包性能,,采取了以下措施:
(1)采用高端配置的工作站或者服務器,包括配備帶緩存的磁盤陣列,、高速SAS硬盤,,CPU和內(nèi)存也要考慮配得高一些;
(2)采用高速抓包卡(TurboCap),,用TurboCap自帶的測試程序HighSpeedTransmitter,、HiPerfPktReceiver進行收發(fā)包,用思博倫的Smartbits測試,,TurboCap可以達到線速,。
2.3.2 數(shù)據(jù)包獲得技術
在交換網(wǎng)絡中,有兩種獲得數(shù)據(jù)的方法:
(1)端口鏡像SPAN(Switch Port Analysis),。簡單來說就是把交換機某個端口的流量copy一份到另外一個端口,,然后可以在該接口上接網(wǎng)絡流量監(jiān)測系統(tǒng)。
(2)分路器TAP(Test Access Port)。需要串接在被監(jiān)測鏈路上,。
中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)既支持SPAN方式,,也支持TAP方式。這兩種技術在網(wǎng)絡監(jiān)測,、分析時普遍應用,,每一種技術都有其優(yōu)點和缺點:
(1)SPAN比較靈活,無其他設施需求,,無需改變網(wǎng)絡拓樸結構,;而TAP則需要接入到鏈路中去,如果需要監(jiān)測其他的鏈路,,則需要重新連接線纜,,會對網(wǎng)絡造成中斷,適合長期的穩(wěn)定監(jiān)測,。
(2)SPAN需要對交換機進行配置,,占據(jù)一個交換機端口;而TAP沒有這個問題,,它對于網(wǎng)絡設備來說是透明的,,不干涉數(shù)據(jù)流和原始數(shù)據(jù);
(3)SPAN方式獲得的流量其實已經(jīng)被過濾掉一些底層的信息了,,所以有些故障信息無法看到,,而TAP真實反映了網(wǎng)絡的流量,沒有任何修改,;
(4)SPAN只適用于交換機,,如果需要監(jiān)測的鏈路兩端都是路由器,就無能為力了,;而TAP這方面就沒有任何問題,。
2.3.3 網(wǎng)絡流量監(jiān)測系統(tǒng)接入方式
由于受到網(wǎng)絡結構、網(wǎng)絡技術,、網(wǎng)絡設備,、傳輸線路和用戶應用等多種條件的限制,如何將網(wǎng)絡流量實時監(jiān)測系統(tǒng)在不影響網(wǎng)絡應用的前提下,,快速,、準確、安全地連接到被測網(wǎng)絡中,,成為一個具有挑戰(zhàn)性的問題,。網(wǎng)絡流量監(jiān)測系統(tǒng)的部署方式有多種:
(1)并接,即SPAN方式,。將交換機一個端口的數(shù)據(jù)包復制到一個指定的端口,,然后可以在該接口上接網(wǎng)絡流量監(jiān)測系統(tǒng),,即TurboCap卡的一個接口。
(2)聚合模式,。對兩個千兆網(wǎng)口進行聚合,按照時間戳記對來源于不同位置的數(shù)據(jù)進行采集,、分析,該模式可用于測量不同位置網(wǎng)絡包的延遲,。
(3)串接,,即TAP模式。當 TurboCap卡處于pass-thru模式時,,TurboCap把一個端口收到的數(shù)據(jù)注入到另一個端口,,兩個端口支持全速對發(fā),,從而使TurboCap具有分路器的功能,。只是TurboCap在pass-thru模式下與普通TAP的連接性不同:裝有TAP的計算機必須開機正常運行,如果關機,,處于TAP位置的通信將中斷,。
(4)匯聚TAP模式,類似串接TAP,。匯聚TAP可以將一條或多條鏈路的全雙工數(shù)據(jù)合并到單一數(shù)據(jù)流中供分析,,這樣能夠在單一數(shù)據(jù)流中看到來自多個端口的匯聚流量。
2.3.4 用戶特定業(yè)務流量監(jiān)測
中心計算機有很多非標準的網(wǎng)絡應用,。對于用戶來說,,在進行網(wǎng)絡流量監(jiān)測時,如果能靈活定義需要監(jiān)測和分析的業(yè)務,,可快捷地找到網(wǎng)絡故障與問題,,從而提高解決問題的效率。在Linux操作系統(tǒng)下,,文件“/etc/services”保存的是Internet服務和與之對應的端口號,。該文件的每一行描述了一種服務,格式為:
service-name port/protocol [aliases ...]
其中service-name 是服務的名字,;port 是十進制的數(shù)字,,用來代表該服務;protocol 是使用的協(xié)議類型,,典型的值包括tcp和udp,;aliases是可選的代表該服務的別名。
通過services文件,,用戶可以設置自己的應用,,例如:
中心機接收端口 8201/udp
這樣,就很容易區(qū)分用戶不同的服務,。
2.4 應用舉例
中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)可以監(jiān)測的數(shù)據(jù)包括:網(wǎng)絡流量,、使用協(xié)議,、系統(tǒng)負載、端口情況,、數(shù)據(jù)包發(fā)送時間等,,能夠顯示基于IP地址的帶寬占用情況,還能基于協(xié)議的類型進行統(tǒng)計并生成直觀的圖表,,將每個節(jié)點計算機的網(wǎng)絡使用詳細情況顯示出來,;還可以很方便地確定出哪些通信量屬于某個特定的網(wǎng)絡協(xié)議、占主要通信量的主機,、各次通信的目標是哪個主機,、數(shù)據(jù)包發(fā)送時間、各主機間數(shù)據(jù)包傳遞的間隔時間等,。下面介紹兩個簡單的使用例子,。
(1)舉例一
選擇“全部網(wǎng)絡協(xié)議”→“流量”菜單選項,在Hosts下拉列表框中選擇Local Only,,在Data下拉列表框中選擇Received Only,,在Data欄上單擊,對數(shù)據(jù)和百分比進行排序,??梢院苋菀椎匕l(fā)現(xiàn)當前網(wǎng)絡中接收帶寬的最大占用者。
如果想知道當前網(wǎng)絡中發(fā)送帶寬的最大占用者,,在Data下拉列表框中選擇Sent Only即可,。
(2)舉例二
選擇“網(wǎng)絡層協(xié)議統(tǒng)計”→“本地”→“本地矩陣” 菜單選項,就可以看到本地主機發(fā)送的數(shù)據(jù)矩陣,,找出發(fā)送數(shù)據(jù)最多的主機,。
中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)基于TurboCap千兆捕獲卡和普通工作站設計,簡單實用,,性價比高,;采用Linux開源操作系統(tǒng)和開源軟件(LibpCap、ntop),,安全性高,。中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)自動從網(wǎng)絡中識別有用的信息,直觀地呈現(xiàn)給技術人員,;將截獲的數(shù)據(jù)包轉換成易于識別的格式,,使技術人員一目了然;該系統(tǒng)基本滿足中心計算機系統(tǒng)大多數(shù)網(wǎng)絡流量監(jiān)測的需求,,大大提高了網(wǎng)絡的利用率,。
中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)還存在一定的不足,主要表現(xiàn)在:雖然TurboCap高速捕獲卡支持線速抓包,但是ntop通過LibpCap接口對TurboCap高速捕獲卡操作時,,由于LibpCap的性能問題,,無法達到線速抓包,;ntop的遠程訪問還存在安全方面的問題。因此還需要對中心計算機網(wǎng)絡流量監(jiān)測系統(tǒng)進行改進,。
參考文獻
[1] 趙冉.網(wǎng)絡流量測量系統(tǒng)Ntop的分析與研究[D].西安:西北大學,,2008.
[2] 任富新.高速網(wǎng)絡流量測量系統(tǒng)的設計與實現(xiàn)[J].微型機與應用,2012,,31(1):58-60.
[3] 沈華林.協(xié)議/流量分析系統(tǒng)Hntop的實現(xiàn)[J].計算機工程與應用,,2005,41(16):137-139.
[4] TAMON M A.Ntop network monitoring guide[EB/OL].[2008-05-25].http://techowto.wordpress.com.
[5] 夏光峰.網(wǎng)絡分析技術及其在網(wǎng)絡管理中的應用研究[J].電腦知識與技術,,2009,,5(3):587-590.
[6] Riverbed.CACE turbocap_flyer[EB/OL].[2010-01-18].http://www.cacetech.com.