高速網(wǎng)絡流量監(jiān)測系統(tǒng)的設計與實現(xiàn)
隨著互聯(lián)網(wǎng)技術的快速發(fā)展,網(wǎng)絡應用范圍不斷擴大,網(wǎng)絡結構和網(wǎng)絡應用越來越復雜,這使得網(wǎng)絡出現(xiàn)各種問題的可能性增大,同時管理網(wǎng)絡的難度也增大。網(wǎng)絡流量監(jiān)測提供了一種探索實際環(huán)境中網(wǎng)絡特性的手段。從實現(xiàn)方法的角度,目前所存在的流量測量方法可分為兩大類:基于硬件的測量方法和基于通用PC平臺測量方法。基于硬件的測量方法由于在高速鏈路的環(huán)境下具有了巨大的性能優(yōu)勢,一般為大型開發(fā)商和運營商所用,但是因為其價格比較昂貴,大多數(shù)的中小企業(yè)還是選用基于通用PC的流量監(jiān)測方法。然而,隨著網(wǎng)絡速率的不斷提高,基于通用PC平臺的流量監(jiān)測因為受到操作系統(tǒng)和硬件性能的限制,不能滿足高速鏈路流量監(jiān)測的需求。
本文設計并實現(xiàn)了一種高速網(wǎng)絡流量監(jiān)測系統(tǒng)。該系統(tǒng)基于高速數(shù)據(jù)采集卡和普通服務器,在硬件采集、存儲數(shù)據(jù)的基礎上,實現(xiàn)數(shù)據(jù)捕獲、分析、統(tǒng)計、報表等功能。通過該系統(tǒng),用戶可以制定針對特定業(yè)務的流量監(jiān)測,并且可以對網(wǎng)絡的健康狀況和瓶頸等進行測試,幫助用戶迅速地確定網(wǎng)絡問題。
1 設計方案
網(wǎng)絡流量監(jiān)測驗證系統(tǒng)由硬件支撐平臺、軟件支撐平臺和網(wǎng)絡流量監(jiān)測應用軟件(ntop)三部分構成。
1.1 硬件支撐平臺
1.1.1 TurboCap高速捕獲卡
TurboCap是一種雙端口千兆捕獲與注入工具,具備多種功能,包括同時全速捕獲與注入、多端口通信聚合以及可調控的pass-thru模式。該工具套件同時提供TurboCap API以及winPcap/libpcap API。TurboCap套件包括TurboCap千兆捕獲卡、TurboCap驅動和用戶級的API三部分。
1.1.2 服務器
TurboCap卡是一種基于PCI-E的接口卡(4x或8x),為了最大程度發(fā)揮其性能,網(wǎng)絡流量監(jiān)測系統(tǒng)采用HP380G6服務器,該服務器主要配置如下:PCI-E為X8 PCI-E卡插槽;CPU采用2.4 GHz雙核Intel Xeon W3503;內存為8 GB;存儲為SAS硬盤(10 000轉)RAID卡。
1.2 軟件支撐平臺
軟件支撐平臺主要包括Linux操作系統(tǒng)、TurboCap卡驅動和TurboCap Libpcap(Packet Capture Library)開發(fā)包模塊等。
Linux操作系統(tǒng)采用Fedora 10,主要因為捕獲卡的驅動為Fedora 10。
1.2.1 Libpcap開發(fā)模塊
Libpcap由Berkeley 大學的JACOBSON V、LERES C 和MCCANNE S編寫, 是一個平臺獨立的網(wǎng)絡數(shù)據(jù)包捕獲開發(fā)包,應用非常廣泛,幾乎只要涉及網(wǎng)絡數(shù)據(jù)包的捕獲功能,都可以使用Libpcap開發(fā)包。Libpcap可以在絕大多數(shù)類Unix/Linux平臺下工作。Libpcap軟件包可從http://www.tcpdump.org下載,目前最新版本為1.1.1。
本文采用的Libpcap版本號為libpcap-1.0.0-tc_17.fc10.x86_64,是由CACE公司提供的與TurboCap卡驅動配套的開發(fā)包。
1.2.2 支撐軟件安裝
以ROOT用戶安裝TurboCap驅動, TurboCap內核模塊,TurboCap開發(fā)庫、文檔、例子以及支持TurboCap修改版的libpcap 1.0.0,操作如下:
[root@x86_64]# rpm -ivh kernel-firmware-2.6.27.12-170.2.5.preemptive.kernel.kt.fc10.x86_64.rpm
[root@x86_64]# rpm -ivh kernel-2.6.27.12-170.2.5.preemptive.kernel.kt.fc10.x86_64.rpm
[root@x86_64]# rpm -ivh turbocap-1.6.2117-1.fc10.x86_64.rpm libpcap-1.0.0-tc_16.fc10.x86_64.rpm
[root@x86_64]# rpm -ivh turbocap-module-2.6.27.12-170.2.5.preemptive.kernel.kt.fc10-1.6.2117-1.fc10.x86_64.rpm
之后重啟計算機,確認選擇啟動的內核是:Fedora (2.6.27.12-170.2.5.preemptive.kernel.kt.fc10.i686)或者Fedora(2.6.27.12-170.2.5.preemptive.kernel.kt.fc10.x86_64)
1.3 網(wǎng)絡流量監(jiān)測應用軟件
ntop是一套網(wǎng)絡流量監(jiān)控軟件,由意大利Pisa大學教授DERI L于1997年開始開發(fā),并以開源方式提供使用,可以從http://www.ntop.org下載,目前最新版本為4.0.3。ntop以sniffery方式運作,采用網(wǎng)頁接口,主要功能有網(wǎng)絡監(jiān)控、網(wǎng)絡流量統(tǒng)計、提供網(wǎng)絡最佳化與除錯的信息以及偵測可疑的網(wǎng)絡流通信息等。
1.3.1 ntop功能
ntop可以監(jiān)測的數(shù)據(jù)包括:網(wǎng)絡流量、使用協(xié)議、系統(tǒng)負載和端口情況等。
ntop能夠更加直觀地將網(wǎng)絡使用量的情況和每個節(jié)點計算機的網(wǎng)絡帶寬使用詳細情況顯示出來??梢酝ㄟ^分析網(wǎng)絡流量來確定網(wǎng)絡上存在的各種問題,如瓶頸效應或性能下降;也可以用來判斷是否有黑客正在攻擊網(wǎng)絡系統(tǒng)。如果懷疑網(wǎng)絡正在遭受攻擊,通過ntop截獲的數(shù)據(jù)包可以確定正在攻擊系統(tǒng)的是什么類型的數(shù)據(jù)包,以及它們的源頭,從而可以及時地作出響應,或者對網(wǎng)絡進行相應的調整,以保證網(wǎng)絡運行的效率和安全。通過ntop網(wǎng)管員還可以很方便地確定哪些通信量屬于某個特定的網(wǎng)絡協(xié)議、占主要通信量的是哪個主機、各次通信的目標是哪個主機、數(shù)據(jù)包發(fā)送時間、各主機間數(shù)據(jù)包傳遞的間隔時間等。這些信息為網(wǎng)管員判斷網(wǎng)絡問題及優(yōu)化網(wǎng)絡性能,提供了十分寶貴的信息。
1.3.2 ntop基本架構
ntop基本架構分成三個模塊:數(shù)據(jù)包捕獲(Packet Sniffer)模塊,數(shù)據(jù)包分析(Packet Analyser)模塊以及報告引擎(Report Engine)模塊,如圖1所示。由Packet Sniffer收集網(wǎng)絡上的Packet,然后送給Packet Analyser去處理,再由Report Engine將處理分析后的數(shù)據(jù)呈現(xiàn)出來。
1.3.3 ntop安裝與使用
在FC10下,ntop的安裝配置更簡單,大多數(shù)庫默認都已經(jīng)安裝,只需另外安裝GeoIP和rrdtool,下面簡單介紹一下ntop的安裝和配置。
解壓縮源碼:tar -zxvf ntop-4.0.3.tar.gz;
運行:cd ntop-4.0.3;
運行:./autogen.sh;
運行:make make install;
添加用戶:useradd -M-s/sbin/nologin-r ntop;
設置用戶權限:chown ntop:root /usr/local/var/ntop/;
設置用戶權限:chown ntop:ntop /usr/local/share/ntop/;
設置密碼:ntop-A;
ntop作為守護進程運行:/usr/local/bin/ntop-d-L-u ntop-P/usr/local/var/ntop--skip-version-check--use-syslog=daemon;
查看統(tǒng)計信息:打開瀏覽器,在地址欄輸入http://host_ip:3000(“IP”就是安裝ntop的那臺網(wǎng)管工作站的IP地址),即可打開ntop界面。
2 網(wǎng)絡流量監(jiān)控系統(tǒng)的接入方式
2.1 網(wǎng)絡數(shù)據(jù)獲得技術
在交換網(wǎng)絡中,有兩種有效的獲得數(shù)據(jù)的方法:
?。?)鏡像端口SPAN(Switch Port Analysis):某些交換機可以將一個或幾個端口的數(shù)據(jù)包復制到一個指定的端口,然后可以在該端口上接網(wǎng)絡流量監(jiān)測系統(tǒng)。
(2)分路器TAP(Test Access Port):可以把任意一個端口收到的數(shù)據(jù)注入到另一個端口??捎糜诩磿r分析網(wǎng)絡流量,且不占用任何網(wǎng)絡資源。分路器TAP串接在被監(jiān)控鏈路上,可永久固定在被監(jiān)控鏈路上,避免插拔鏈路,不用配置交換機和額外占用交換機端口。
2.2 網(wǎng)絡流量監(jiān)控系統(tǒng)的部署方式——SPAN方式
網(wǎng)絡流量監(jiān)控系統(tǒng)的部署方式為SPAN方式。下面主要說明如何在Catalyst 2950上配置SPAN功能,以下是SPAN實現(xiàn)的范例:
C2950#conf t
C2950(config)#
C2950(config)#monitor session 1 source interface fastEthernet 0/2
!-- Interface fa 0/2 is configured as source port
C2950(config)#monitor session 1 destination interface fastEthernet 0/3
!-- Interface fa0/3 is configured as destination port
C2950(config)#
在使用SPAN時需要注意:(1)保證鏡像端口的線速等于或高于被監(jiān)測端口的線速,防止數(shù)據(jù)過載,造成數(shù)據(jù)包丟失;(2)SPAN功能會增加交換機的負荷,占用交換機的CPU、內存等系統(tǒng)資源,致使交換機性能下降,所以在獲取到足夠的數(shù)據(jù)后,需要去除SPAN功能;(3)由于不同交換機轉發(fā)機制不同,有的交換機的SPAN功能會自動丟棄錯誤的數(shù)據(jù)包,導致無法獲取到錯誤的數(shù)據(jù)包,而錯誤的數(shù)據(jù)包能為解決網(wǎng)絡問題提供重要依據(jù)。
2.3 網(wǎng)絡流量監(jiān)控系統(tǒng)的部署方式——TAP方式
網(wǎng)絡流量監(jiān)控系統(tǒng)的部署方式采用TAP方式,TAP方式又分以下幾種:
?。?)交換分路器(TAP)模式。當TurboCap卡處于pass-thru模式時,TurboCap把一個端口收到的數(shù)據(jù)注入到同卡上的另一個端口。兩個端口支持全速對發(fā),從而使TurboCap具有分路器的功能。
?。?)匯聚TAP模式。安裝方法類似于交換TAP。匯聚TAP可以將多條鏈路的全雙工數(shù)據(jù)合并到單一數(shù)據(jù)流中,這樣可以從單一數(shù)據(jù)流中看到來自多個SPAN端口的匯聚流量,將其復制后供分析使用。TurboCap支持同卡上的全速雙口通信聚合。用戶可以通過一個叫做Board Aggregationg Port(BAP)的虛擬端口來訪問聚合通信。TurboCap還支持對多TurboCap卡的端口進行聚合,這樣用戶可以一次捕獲超過兩個端口的通信。
在借助TAP分析網(wǎng)絡數(shù)據(jù)的時候,需要注意以下三點:(1)TAP主要用于對骨干鏈路數(shù)據(jù)的獲?。ó斎灰部梢杂糜谄渌溌罚褂脮r需要預先布放(串接)到鏈路中,避免監(jiān)測骨干鏈路時再串接TAP而引起中斷網(wǎng)絡的情況發(fā)生;(2)被監(jiān)測的鏈路流量不要超過TAP端口的線速,防止數(shù)據(jù)包因過載而丟失;(3)將不同的TAP組合起來使用可以實現(xiàn)更高要求的數(shù)據(jù)監(jiān)測,通過TAP模式和聚合功能,就可以實現(xiàn)聚合TAP的功能。
本文基于高速采集卡和普通服務器設計了高速網(wǎng)絡流量監(jiān)測系統(tǒng),采用Linux操作系統(tǒng)和開源軟件,成本低,滿足了高速鏈路流量監(jiān)測的需求。該系統(tǒng)既支持SPAN方式,也支持TAP方式,這兩種技術在網(wǎng)絡監(jiān)測、分析時都普遍應用。用戶可以根據(jù)自己的使用情況,選擇合適的部署方式來部署網(wǎng)絡流量監(jiān)測系統(tǒng)。
參考文獻
[1] 鄭惠之,羅進文.一種有效的流量控制策略—ntop[J]. 信息科技,2002(3):38-39.
[2] 趙冉.網(wǎng)絡流量測量系統(tǒng)Ntop的分析與研究[D].西安:西北大學,2008.
[3] TAMON M A. Ntop network monitoring guide[EB/OL].[2008].http://techowto.wordpress.com.
交換機相關文章:交換機工作原理
評論