亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

如何用Linux安全管理網絡流量
2010-03-26   網絡

一、 網絡流量管理的范疇

近十幾年來,互聯網已經成為越來越重要的需求。據統計,互聯網目前已成為人類社會最重要的信息基礎設施,占人類信息交流的80%。對社會進步、經濟發展和國家安全具有重大戰略意義。在這種大背景下,面對日益復雜的網絡聯機及逐漸增加的網絡流量,系統和網絡管理者必須花費更多時間精力來了解這些網絡設備的運作狀況,以維持一個系統的正常運作。

一般來說,網絡管理者所需要了解的是各個網段的使用情形,頻寬的使用率,網絡問題的瓶頸發生于何處。當網絡問題發生時,必須能夠很快地分析和判斷出問題的發生原因,可能是線路問題、網絡設備問題、或者是路由器的設定問題。對網絡流量進行有效的管理是最大化發揮網絡效能的首要因素。那么,管理網絡流量的時候應該通過什么樣的依據管理,通過什么手段有效的把流量進行識別、分析和管理呢?這是本專題所要解決的主要問題。

一般說來,我們可以將網絡流量管理大致分為如下幾個大的范疇:

1、 流量識別

流量識別,也叫業務識別|(Application Awareness):它是伴隨著網絡業務的蓬勃發展而出現的一個新的概念,通過對業務流量從數據鏈路層到應用層的報文深度檢查分析,依據協議類型、端口號、特征字符串和流量行為特征等參數,獲取業務類型、業務狀態、業務內容和用戶行為等信息,并進行分類統計和存儲。業務識別的基本目的是幫助網絡管理者獲得網絡層之上的業務層流量信息,如業務類型、業務狀態、業務分布、業務流量流向等。業務識別是一個相對復雜的過程,需要多個功能模塊的協同工作,業務識別的工作過程簡單描述如下: 

◆識別處理模塊采用多通道識別處理,通過對網絡流量的源/目的IP地址和源/目的端口號的Hash算法,將網絡流量均勻的分配到多個處理通道中。 

◆多處理通道并行執行網絡流量的深度報文檢查,獲取網絡流量的特征信息,并與業務識別特征庫中的特征進行比對。 

◆將匹配結果送往識別處理模塊,并標識特定網絡流量。如果存在多個匹配結果,選取優先級較高的匹配結果進行標識。特定網絡流量一經識別確定,該網絡流量的后續連接將不再進行深度的報文檢查,直接將其網絡層和傳輸層信息與已知識別結果進行比對,提高執行效率。 

◆識別處理模塊將網絡流量的業務識別結果存儲到識別結果存儲模塊中,為網絡流量的統計分析提供依據。 

◆統計分析模塊從識別結果存儲模塊中讀取相關信息,并以曲線、餅圖、柱狀圖或者文本的方式將識別結果信息顯示,或以文件的形式輸出。 

◆在結果存儲模塊中保存的識別結果信息會輸出到網絡流量管理功能區,為實施網絡流量管理提供依據。

目前常用、典型的業務識別技術就是我們所熟知的DPI技術和DFI技術。

(1)DPI技術

PI是深度報文檢測(Deep Packet Inspection)的簡稱,是一種典型的業務識別技術。DPI技術之所以稱為“深度”的檢測技術,是相對于傳統的檢測技術而言的。傳統的流量檢測技術僅獲取那些寄存在數據包網絡層和傳輸層協議頭中的基本信息,包括源/目的IP地址、源/目的傳輸層端口號、協議號,以及底層的連接狀態等。通過這些參數很難獲得足夠多的業務應用信息。對于當前P2P應用、VoIP應用、IPTV應用被廣泛開展的情況,傳統的流量檢測技術已經不能滿足網絡流量管理的需要了。

DPI技術對傳統的流量檢測技術進行了“深度”擴展,在獲取數據包基本信息的同時,對多個相關數據包的應用層協議頭和協議負荷進行掃描,獲取寄存在應用層中的特征信息,對網絡流量進行精細的檢查、監控和分析。

DPI技術通常采用如下的數據包分析方法: 

◆傳輸層端口分析。許多應用使用默認的傳輸層端口號,例如HTTP協議使用80端口。 

◆特征字匹配分析。一些應用在應用層協議頭,或者應用層負荷中的特定位置中包含特征字段,通過特征字段的識別實現數據包檢查、監控和分析。 

◆通信交互過程分析。對多個會話的事務交互過程進行監控分析,包括包長度、發送的包數目等,實現對網絡業務的檢查、監控和分析。

(2)DFI技術

DFI是深度流行為檢測(Deep Flow Inspection)的簡稱,也是一種典型的業務識別技術。DFI技術是相對于DPl技術提出的,為了解決DPI技術的執行效率、加密流量識別和頻繁升級等問題而出現的。DFI更關注于網絡流量特征的通用性,因此,DFI技術并不對網絡流量進行深度的報文檢測,而僅通過對網絡流量的狀態、網絡層和傳輸層信息、業務流持續時間、平均流速率、字節長度分布等參數的統計分析,來獲取業務類型、業務狀態。

兩種技術的設計基本目標都是為了實現業務識別,但是兩者在實現的著眼點和技術細節方面還是存在著較大區別的。從兩種技術的對比情況看,兩者互有優勢,也互有短處,DPI技術適用于需要精細和準確識別、精細管理的環境,而DFI技術適用于需要高效識別,粗放管理的環境。

2、流量統計分析

網絡流量管理的基本目標是了解網絡、業務和用戶資源的使用情況,找到性能瓶頸并進行精細化管理,對用戶行為進行分析和控制,以及對信息安全防護。

在網絡中多個層面的網絡設備中集成業務識別功能,如骨干節點之間、服務提供商互聯節點之間、國際出口、城域網出口和城域網接入層等,或者單獨部署具備業務識別功能的網絡設備對網絡流量進行統計分析和趨勢判斷。通過流量統計分析,網絡管理者能夠知道當前網絡中的業務流量的類型、帶寬、時間和空間分布、流向等信息。

3、流量管理

將流量識別能力添加到網絡流量管理中,能夠幫助網絡管理者對網絡資源和業務資源進行帶寬控制和資源調度。具備業務識別能力的網絡流量管理將具備P2P應用的管理能力,通過對P2P流量的抑制來提升傳統數據業務的用戶體驗度。具備業務識別能力的網絡流量管理還能夠對嚴重影響業務運營者收入的未經許可的業務進行抑制。通過對VoIP信令流量和媒體流量的關聯檢測和統計分析,通過截斷媒體數據包、偽裝信令報文等方式對VoIP業務進行流量管理。通過綜合使用網絡層、傳輸層和應用層檢測技術,對未經許可的寬帶私接用戶采取中斷連接、主動告警、分時控制等多種管理動作,實現對未經許可的寬帶私接的流量管理。業務識別還能夠幫助網絡流量管理實現業務資源的調度,業務識別能夠獲得業務資源使用、業務狀態的實時隋況。當某一業務服務器負載較大時,可以進行全局的業務資源負載均衡,平均的承擔業務請求;同時也能夠對用戶的業務請求進行調度,決定是否繼續響應用戶新的業務請求,或者根據用戶的優先級,優先響應高優先級用戶的業務請求,提升業務運營效率。

4、其他方面

對于網絡流量管理來說,在網絡中的多個層面的網絡設備中集成業務識別功能,或者單獨部署具備業務識別功能的網絡設備,和防火墻等網絡安全設備協同構建一個主動的安全威脅防御體系,提升整個網絡的安全防護能力。

具備業務識別能力的網絡流量管理具有主動的流量特征識別分析能力,能夠主動的發現諸如DDoS攻擊、病毒和木馬等異常流量,較好的彌補其他網絡安全設備,如防火墻、入侵防護系統(IPS)和統一威脅管理(UTM)等的不足,提升其主動發現安全威脅的能力,并能夠及時的向其他網絡安全設備發出告警,從安全威脅源頭開始就進行主動的防御。

此外,具備業務識別能力的網絡流量管理還能夠獲取并保存網絡流量的網絡層信息(例如,源/目的IP地址、用戶標識ID等信息),通過這些信息,網絡管理者能夠進行有效的安全威脅的溯源定位。

二、 常見的網絡流量

當前隨著網絡應用的不斷豐富和發展,網絡流量也隨之變得復雜和種類繁多起來,下面給出幾種最為常見的網絡流量,以方便網絡管理員在實際的工作中著重對他們監測和管理: 

◆HTTP流量:HTTP是互聯網TCP/IP協議族中的一種應用層協議,被廣泛適用于網頁流量、網絡下載等。HTTP協議正在取代傳統文件下載的主要應用層協議FTP,此外基于HTTP的網頁版郵箱也有取代傳統的POP3協議的趨勢。根據國外媒體報道,最近發布的一個研究報告指出,隨著YouTube等視頻共享網站的拉動,傳統的HTTP協議的網絡流量在過去四年里首次超過了P2P應用的流量。基于HTTP協議的互聯網流量已經占據了全部流量的46%。排名第二的是P2P應用的流量,其占據了37%的比例。排在后面的流量分別屬于新聞組(9%)、非HTTP協議的視頻流媒體(3%)、網絡游戲(2%),以及VOIP網絡電話(1%)。 

◆FTP流量:FTP是互聯網中一種應用非常廣泛的服務,用戶通過其來從服務器獲取需要的文檔、資料、音頻、視頻等。從互聯網出現的開始,它就一直是用戶使用頻率最高的應用服務之一,重要性僅次于HTTP和SMTP。而隨著P2P應用的出現,其重要性地位雖然有所降低,但是仍然是用戶們下載文件不可替代的重要應用和途徑之一。 

◆SMTP流量:電子郵件是整個互聯網業務重要的組成部分。據統計,四分之三以上的用戶上網的主要目的是收發郵件,每天有十數億封電子郵件在全球傳遞。電子郵件已成為網絡用戶不可或缺的需要。并且,電子郵件的廉價和操作簡便在給人們帶來巨大便利的同時,也誘使有些人將它作為大量散發自己信息的工具,最終導致了互聯網世界中垃圾郵件的泛濫。垃圾郵件問題已經極大地消耗了網絡資源,并給人們帶來了極大的不便。據中國互聯網協會(ISC)2005年第一次反垃圾郵件狀況調查顯示,中國郵件用戶2005年4月平均每人每天收到郵件16.8封,占收到郵件總數的60.87%。因此,SMTP流量目前占據相當大的互聯網流量比重。 

◆VoIP流量:2006年全球IP電話用戶從1030萬增長到1870萬,增幅達83%。2007年VoIP通話量將達到全部通話量的75%。數據顯示,PC2Phone的IP電話付費用戶數量超過470萬人,算上運營商IP電話服務的預定用戶的話,這一數字將達到2400萬。因此,互聯網上VoIP的流量也是非常值得管理員關注的。 

◆P2P流量:報告指出,目前網絡帶寬“消費大戶”是P2P文件共享,在中東占據了49%,東歐地區占據了84%。從全球來看,晚上時段的網絡帶寬有95%被P2P占據。在所有P2P工具中,BitTorrent最受歡迎,在南歐地區,電驢處于主導地位。在P2P內容方面并未和去年發生變化,主要還是視頻,最受歡迎的是最新上映的電影、色情電影和音樂。其中在中東,電子書在P2P內容中比例較高,計算機游戲在南歐地區比例較高。 

◆Streaming流量:隨著諸如PPLive、PPStream等視頻軟件的出現,視頻直播和點播成為廣大互聯網用戶觀看節目和網上娛樂的最佳生活方式,因此其流量也在不斷的劇增當中。并且,隨著P2P技術的發展,P2P Streaming也成為今后互聯網中一種非常重要的應用。

三、 網絡流量捕捉:圖形化工具Wireshark

1、Wireshark簡介

Ethereal是一個開放源碼的網絡分析系統,也是目前最好的開放源碼的網絡協議分析器,支持Linux和windows平臺。Ethereal起初由Gerald Combs開發,隨后由一個松散的etheral團隊組織進行維護開發。它目前所提供的強大的協議分析功能完全可以媲美商業的網絡分析系統,自從1998年發布最早的0.2版本至今,大量的志愿者為ethereal添加新的協議解析器,如今ethereal已經支持五百多種協議解析。另外,網絡分析系統首先依賴于一套捕捉網絡數據包的函數庫。這套函數庫工作在網絡分析系統模塊的最底層。作用是從網卡取得數據包或者根據過濾規則取出數據包的子集,再轉交給上層分析模塊。從協議上說,這套函數庫將一個數據包從鏈路層接收,至少將其還原至傳輸層以上,以供上層分析。6月8號,Ethereal的作者Gerald Coombs宣布了離開NIS的消息,因而Ethereal現改名為Wireshark。

網絡分析系統首先依賴于一套捕捉網絡數據包的函數庫。這套函數庫工作在在網絡分析系統模塊的最底層。作用是從網卡取得數據包或者根據過濾規則取出數據包的子集,再轉交給上層分析模塊。從協議上說,這套函數庫將一個數據包從鏈路層接收,至少將其還原至傳輸層以上,以供上層分析。

在Linux系統中,1992年Lawrence Berkeley Lab的Steven McCanne和Van Jacobson提出了包過濾器的一種的實現,BPF(BSD Packet Filter)。Libpcap是一個基于BPF的開放源碼的捕包函數庫。現有的大部分Linux捕包系統都是基于這套函數庫或者是在它基礎上做一些針對性的改進。在window系統中,意大利人Fulvio Risso和Loris Degioanni提出并實現了Winpcap函數庫,作者稱之為NPF。由于NPF的主要思想就是來源于BPF,它的設計目標就是為windows系統提供一個功能強大的開發式數據包捕獲平臺,希望在Linux系統中的網絡分析工具經過簡單編譯以后也可以移植到windows中,因此這兩種捕包架構是非常現實的。就實現來說提供的函數調用接口也是一致的。Ethereal網絡分析系統也需要一個底層的抓包平臺,在Linux中是采用Libpcap函數庫抓包,在windows系統中采用winpcap函數庫抓包。

2、層次化的數據包協議分析方法

取得捕包函數捕回的數據包后就需要進行協議分析和協議還原工作了。由于OSI的7層協議模型,協議數據是從上到下封裝后發送的。對于協議分析需要從下至上進行。首先對網絡層的協議識別后進行組包還原然后脫去網絡層協議頭。將里面的數據交給傳輸層分析,這樣一直進行下去直到應用層。由于網絡協議種類很多,就Ethereal所識別的500多種協議來說,為了使協議和協議間層次關系明顯。從而對數據流里的各個層次的協議能夠逐層處理。Ethereal系統采用了協議樹的方式。

圖1所示就是一個簡單的協議樹。如果協議A的所有數據都是封裝在協議B里的,那么這個協議A就是協議B是另外一個協議的兒子節點(比如圖中的TCP和UDP協議就是IP協議的兒子節點)。我們將最低層的無結構數據流作為根接點。那么具有相同父節點的協議成為兄弟節點。那么這些擁有同樣父協議兄弟節點協議如何互相區分了?Ethereal系統采用協議的特征字來識別。每個協議會注冊自己的特征字。這些特征字給自己的子節點協議提供可以互相區分開來的標識。比如tcp協議的port字段注冊后。Tcp.port=21就可以認為是ftp協議,特征字可以是協議規范定義的任何一個字段。比如ip協議就可以定義proto字段為一個特征字。

在Ethereal中注冊一個協議解析器首先要指出它的父協議是什么。另外還要指出自己區別于父節點下的兄弟接點協議的特征。比如ftp協議。在Ethereal中他的父接點是tcp協議,它的特征就是tcp協議的port字段為21。這樣當一個端口為21的tcp數據流來到時。首先由tcp協議注冊的解析模塊處理,處理完之后通過查找協議樹找到自己協議下面的子協議,判斷應該由那個子協議來執行,找到正確的子協議后,就轉交給ftp注冊的解析模塊處理。這樣由根節點開始一層層解析下去。

由于采用了協議樹加特征字的設計,這個系統在協議解析上由了很強的擴展性,增加一個協議解析器只需要將解析函數掛到協議樹的相應節點上即可。

圖1  協議樹簡單圖示

3、基于插件技術的協議分析器

所謂插件技術,就是在程序的設計開發過程中,把整個應用程序分成宿主程序和插件兩個部分,宿主程序與插件能夠相互通信,并且,在宿主程序不變的情況下,可以通過增減插件或修改插件來調整應用程序的功能。運用插件技術可以開發出伸縮性良好、便于維護的應用程序。它著名的應用實例有:媒體播放器winamp、微軟的網絡瀏覽器IE等。

由于現在網絡協議種類繁多,為了可以隨時增加新的協議分析器,一般的協議分析器都采用插件技術,這樣如果需要對一個新的協議分析只需要開發編寫這個協議分析器并調用注冊函數在系統注冊就可以使用了。通過增加插件使程序有很強的可擴展性,各個功能模塊內聚。

4、安裝Wireshark

Wireshark可以在http://www.wireshark.org/download.html上下載,該軟件有極其方便和友好的圖形用戶界面,并且能夠使得用戶通過圖形界面的配置和選擇,針對多塊網卡、多個協議進行顯示,效果非常好。目前最新版本為:Wireshark 1.0.3。安裝該軟件請按照如下步驟進行:

//將下載的最新版本軟件拷貝到臨時文件夾

# cp wireshark-1.0.3.tar.gz /usr/local/src/

//切換到臨時文件夾目錄

# cd /usr/local/src/

//解壓縮文件

# tar -xvf wireshark-1.0.3.tar.gz

另外,同Tcpdump一樣,在編譯Ethereal之前應先確定已經安裝pcap庫(libpcap),這是編譯Wireshark時所必需的。如果該庫已經安裝,就可以執行下面的命令來編譯并安裝Wireshark:

# cd wireshark-1.0.3

# ./configure

# make

# make install

當編譯并安裝好Wireshark后,就可以執行“wireshark”命令來啟動Wireshark。

5、使用Wireshark

(1)捕包選項

抓包是進行協議分析的第一步驟,在Wireshark中,有幾個抓包的相關選項需要尤其注意(如圖1和2所示): 

◆Interface:指定在哪個接口(網卡)上抓包。一般情況下都是單網卡,所以使用缺省的就可以了Limit each packet: 限制每個包的大小,缺省情況不限制。 

◆Capture packets in promiscuous mode:確定是否打開混雜模式。如果打開,抓取所有的數據包。一般情況下只需要監聽本機收到或者發出的包,因此應該關閉這個選項。 

◆Filter:過濾器。只抓取滿足過濾規則的包。 

◆File:如果需要將抓到的包寫到文件中,在這里輸入文件名稱。use ring buffer:是否使用循環緩沖。缺省情況下不使用,即一直抓包。值得注意的是:循環緩沖只有在寫文件的時候才有效。如果使用了循環緩沖,還需要設置文件的數目,文件多大時回卷。其他的項選擇缺省的就可以了。  

圖1  Wireshark的捕包界面  

圖2  Wireshark捕包選項設置示意圖

(2)協議過濾(Filter)選項

由于網絡中的協議五花八門,Http、Ftp、ARP、ICMP等協議等都在抓包的范圍之列,因而給協議分析工作帶來了一些麻煩。為了對特定的協議進行分析統計,則可以使用Ehereal提供的Filter選項來對數據報文進行過濾,對特定的協議進行提取,再進行分析。圖3(a)給出了使用Capture菜單下的Capture Filter選項進行過濾設置的示意,該軟件已經提供了許多協議的Filter供用戶選擇使用,而用戶也可以自行添加;圖3(b)則顯示了通過在工具欄的Filter編輯框內輸入協議名稱對已捕捉的包進行過濾的結果,圖中顯示了過濾后所得Http協議的數據包情況。用戶也可以通過輸入Ftp、ARP或者TCP等字段來獲取相應的協議內容。  

圖3  協議過濾選項示意圖

注意:圖3(a)和3(b)所示的設置方法的不同在于:前者設置后該工具只對選取的協議進行捕包;而后者則是在所有捕獲的數據包中(包括各種協議)選擇用戶設定的協議進行提取和顯示。

(3)統計選項(statistics)

統計選項用于對過濾后的各協議類型進行統計,從而從宏觀上對網絡中的流量進行統計分析和全局把握。圖4給出了操作的流程和顯示結果。    

 

 

圖4  統計選項示意圖
 

四、 網絡流量捕捉:命令行工具tcpdump

1、tcpdump簡介

tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。tcpdump就是一種免費的網絡分析工具,尤其是它提供了源代碼,公開了接口,因此具備很強的可擴展性,對于網絡維護和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系統中,由于它需要將網絡界面設置為混雜模式,普通用戶不能正常執行,但具備root權限的用戶可以直接執行它來獲取網絡上的信息。因此系統中存在網絡分析工具主要不是對本機安全的威脅,而是對網絡上的其他計算機的安全存在威脅。另外,由于其相對于Wireshark來說,沒有非常詳細的用戶界面,所以非常適合于在終端上使用,網管員可以通過常見的命令行來進行流量捕捉和過濾等操作,所以非常方便,這也是它一直廣泛為網絡管理員歡迎和使用的原因。

2、 安裝tcpdump

在linux下tcpdump的安裝十分簡單,一般是以源程序的形式安裝。其實,Linux一個最大的誘人之處就是在她上面有很多軟件是提供源程序的,人們可以修改源程序來滿足自己的特殊的需要。所以我特別建議朋友們都采取這種源程序的安裝方法。最新的tcpdump的源代碼可以在網站http://www.tcpdump.org/上即時獲得。

在源程序的安裝方式中,我們首先要取得tcpdump的源程序分發包。目前,該源程序包的最新版本為:tcpdump-4.0.0.tar.gz,安裝的具體過程如下所示:

(1)解壓縮源代碼包

#tar xvfz tcpdump-4.0.0.tar.gz

(2)做好編譯源程序前的準備活動

在編譯源程序之前,需要已經確定庫文件libpcap已經安裝完畢,這個庫文件是tcpdump軟件所需的庫文件。同樣,你同時還要有一個標準的c語言編譯器。在linux下標準的c 語言編譯器一般是gcc。在tcpdump的源程序目錄中。有一個文件是Makefile.in,configure命令就是從Makefile.in文件中自動產生Makefile文件。在Makefile.in文件中,可以根據系統的配置來修改BINDEST和MANDEST這兩個宏定義,缺省值如下:

BINDEST = @sbindir@

MANDEST = @mandir@

第一個宏值表明安裝tcpdump的二進制文件的路徑名,第二個表明tcpdump的man幫助頁的路徑名,用戶可以修改它們來滿足系統的需求。

(3)編譯源程序

使用源程序目錄中的configure腳本,它從系統中讀出各種所需的屬性。并且根據Makefile.in文件自動生成Makefile文件,以便編譯使用。make 命令則根據Makefile文件中的規則編譯tcpdump的源程序。使用make install命令安裝編譯好的tcpdump的二進制文件。

具體的編譯步驟,如下命令所示:

# . /configure

# make

# make install

3、 使用tcpdump

普通情況下,直接啟動tcpdump將監視第一個網絡界面上所有流過的數據包。如下命令所示:

tcpdump支持相當多的不同參數,如使用-i參數指定tcpdump監聽的網絡界面,這在計算機具有多個網絡界面時非常有用,使用-c參數指定要監聽的數據包數量,使用-w參數指定將監聽到的數據包寫入文件中保存,等等。

然而更復雜的tcpdump參數是用于過濾目的,這是因為網絡中流量很大,如果不加分辨將所有的數據包都截留下來,數據量太大,反而不容易發現需要的數據包。使用這些參數定義的過濾規則可以截留特定的數據包,以縮小目標,才能更好的分析網絡中存在的問題。tcpdump使用參數指定要監視數據包的類型、地址、端口等,根據具體的網絡問題,充分利用這些過濾規則就能達到迅速定位故障的目的。請使用man tcpdump查看這些過濾規則的具體用法。

(1)tcpdump的選項介紹

tcpdump的選項非常多,下面給出一些常用的命令選項供大家使用時參考: 

a:將網絡地址和廣播地址轉變成名字; 

-d:將匹配信息包的代碼以人們能夠理解的匯編格式給出 

-dd:將匹配信息包的代碼以c語言程序段的格式給出; 

-ddd:將匹配信息包的代碼以十進制的形式給出; 

-e:在輸出行打印出數據鏈路層的頭部信息; 

-f:將外部的Internet地址以數字的形式打印出來; 

-l:使標準輸出變為緩沖行形式; 

-n:不把網絡地址轉換成名字; 

-t:在輸出的每一行不打印時間戳; 

-v:輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息; 

-vv:輸出詳細的報文信息; 

-c:在收到指定的包的數目后,tcpdump就會停止; 

-F:從指定的文件中讀取表達式,忽略其它的表達式; 

-i:指定監聽的網絡接口; 

-r:從指定的文件中讀取包(這些包一般通過-w選項產生); 

-w:直接將包寫入文件中,并不分析和打印出來; 

-T:將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單網絡管理協議;)

(2)tcpdump的表達式介紹

表達式是一個正則表達式,tcpdump利用它作為過濾報文的條件,如果一個報文滿足表達式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網絡上所有的信息包將會被截獲。在表達式中一般如下幾種類型的關鍵字。

一種是關于類型的關鍵字,主要包括host,net,port, 例如 host 211.78.3.2,指明 211.78.3.2是一臺主機,net 210.0.0.0 指明 210.0.0.0是一個網絡地址,port 25指明端口號是25。如果沒有指定類型,缺省的類型是host。

第二種是確定傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。舉例說明,src 211.78.3.2 ,指明ip包中源地址是211.78.3.2 , dst net 210.0.0.0 指明目的網絡地址是210.0.0.0。如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。

第三種是協議的關鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI(分布式光纖數據接口網絡)上的特定的網絡協議,實際上它是"ether"的別名,fddi和ether具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和分析。其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的信息包。除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway, broadcast,less,greater,還有三種邏輯運算,取非運算是 'not ' '! ', 與運算是'and','&&';或運算是'or' ,'││';這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來進行詳細說明:

a) 截獲所有211.78.3.2的主機收到的和發出的所有的數據包:

#tcpdump host 211.78.3.2

b) 截獲主機211.78.3.2和主機211.78.3.3或211.78.3.4的通信,使用命令:

#tcpdump host 211.78.3.2 and \ (211.78.3.2 or 211.78.3.4 \) 

c) 獲取主機211.78.3.2除了和主機211.78.3.6之外所有主機通信的ip包,使用命令:

#tcpdump ip host 211.78.3.2 and ! 211.78.3.6

d) 獲取主機211.78.3.1接收或發出的telnet包,使用如下命令:

#tcpdump tcp port 23 host 211.78.3.1

(3)查看tcpdump的輸出結果

由于tcpdump的捕包功能強大,因而其輸出也是非常豐富的,下面我們介紹幾種典型的tcpdump命令的輸出信息。

a) 查看數據鏈路層頭信息

使用如下命令

#tcpdump --e host patterson

patterson是一臺裝有linux的主機,其MAC地址是0:58:46:32:EF:AF,S_Server是一臺裝有SOLARIC的SUN工作站,它的MAC地址是7:43:25:98:6E:AF;上一條命令的輸出結果如下所示:

23:49:35.102598 eth0 < 7:43:25:98:6e:af 0:58:46:32:ef:af ip 60: S_Server.33357 >

patterson.telnet 0:0(0) ack 22535 win 8760 (DF)

分析:23:49:35是顯示的時間,102598是ID號,eth0 <表示從網絡接口eth0 接受該數據包,eth0 >表示從網絡接口設備發送數據包, 7:43:25:98:6e:af是主機S_Server的MAC地址,它表明是從源地址S_Server發來的數據包. 0:58:46:32:ef:af是主機PATTERSON的MAC地址,表示該數據包的目的地址是PATTERSON . ip 是表明該數據包是IP數據包,60 是數據包的長度, S_Server.33357 > patterson.telnet 表明該數據包是從主機S_Server的33357端口發往主機PATTERSON的TELNET(23)端口. ack 22535 表明對序列號是222535的包進行響應. win 8760表明發送窗口的大小是8760.

b) ARP包的tcpdump輸出信息

使用如下命令

#tcpdump arp 

得到的輸出結果是:

23:52:42.203783 eth0 > arp who-has route tell patterson (0:58:46:32:ef:af)

23:52:42.204025 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:58:46:32:ef:af)

分析: 23:52:42是時間戳, 203783是ID號, eth0 >表明從主機發出該數據包, arp表明是ARP請求包, who-has route tell patterson表明是主機patterson請求主機ROUTE的MAC地址。0:58:46:32:ef:af是主機patterson的MAC地址。

c) TCP包的輸出信息

src > dst: flags data-seqno ack window urgent options

src > dst:表明從源地址到目的地址,flags是TCP包中的標志信息,S是SYN標志, F(FIN), P (PUSH) , R (RST),"." (沒有標記); data-seqno是數據包中的數據的順序號,ack是下次期望的順序號,window是接收緩存的窗口大小,urgent表明數據包中是否有緊急指針.Options是選項.

d) UDP包的輸出信息

用tcpdump捕獲的UDP包的一般輸出信息是:

route.port1 > patterson.port2: udp length

route.port1 > patterson.port2: udp length

UDP十分簡單,上面的輸出行表明從主機ROUTE的port1端口發出的一個UDP數據包到主機patterson的port2端口,類型是UDP,包的長度是length。

五、 網絡流量分析-NTOP

1、NTOP介紹及其主要特點

MRTG基于SNMP協議獲取信息,對于端口的流量,MRTG能提供精確統計,但對于3層以上的信息則無從得知了。而這正是NTOP的強項。NTOP能夠顯示網絡的使用情況。它能夠顯示正在使用網絡的主機而且能報告每個主機發送和接收的流量的信息。NTOP能作為一個前端數據收集器工作(sFlowand/or netFlow),或者作為一個單獨的既能收集又能顯示的程序工作。看NTOP收集的信息,你需要一個瀏覽器。NTOP工作在第二層和第三層,默認使用MAC地址和IP地址。NTOP能把兩者關聯起來,這樣就能夠在網絡活動圖示里面同時顯示ip和非ip流量(例如:arp和rarp)。NTOP和MRTG相比相比它的安裝配置比較簡單。目前市場上可網管型的交換機、路由器都支持SNMP協議,NTOP支持簡單網絡管理協議所以可以進行網絡流量監控。NTOP幾乎可以監測網絡上的所有協議: TCP/UDP/ICMP、(R)ARP、IPX、Telnet、DLC、Decnet、DHCP-BOOTP、AppleTalk、Netbios、TCP/UDP、FTP、HTTP、DNS、Telnet、SMTP/POP/IMAP、SNMP、NNTP、NFS、X11、SSH和基于P2P技術的協議eDonkey, Overnet, Bittorrent, Gnutella,Kazaa等等。

NTOP工具與tcpdump或ethereal工具有著極大的差異,它主要是提供網絡報文的統計數據,而不是報文的內容。此外,NTOP不需要使用Web服務器,它自身就支持HTTP協議。首先,它提供了一種快速容易的方法來得到網絡活動的準確信息并且不使用網絡探測或偵聽設備。在大多數情況下,網絡探測器對追蹤網絡故障是必需的。但是,在某些情況下,時間是很寶貴的,那么在因為探測器正被使用于監測其他設備而無法獲得時,就可以使用NTOP工具。其次,在某些給定的網絡配置下,不可能與探測器連接,比如一對通過WAN互連的UNIX系統。在這種情況下,當使用探測器可能很困難時,如果可能,用戶應使用NTOP工具。

一般說來,NTOP主要提供以下一些功能: 

◆自動從網絡中識別有用的信息 

◆將截獲的數據包轉換成易于識別的格式 

◆對網絡環境中通信失敗的情況進行分析 

◆探測網絡環境中的通信瓶頸 

◆記錄網絡通信的時間和過程

它可以通過分析網絡流量來確定網絡上存在的各種問題;也可以用來判斷是否有黑客正在攻擊網絡系統;還可以很方便地顯示出特定的網絡協議、占用大量帶寬的主機、各次通信的目標主機、數據包的發送時間、傳遞數據包的延時等詳細信息。通過了解這些信息,網管員可以對故障做出及時的響應,對網絡進行相應的優化調整,以保證網絡運行的效率和安全。

2、安裝NTOP

和MRTG相比,NTOP的安裝配置更簡單,可以不使用Apache服務器。將NTOP安裝在網管工作站上,監測中、小Linux異構網絡的網絡性能非常方便。

在安裝NTOP之前,需要首先到http://downloads.sourceforge.net/NTOP/NTOP-3.3.8.tar.gz下載NTOP最新的源代碼,再到ftp://ftp.rediris.es/sites/ftp.redh...6.2-12.i386.rpm下載相關庫函數模塊libpcap。注意:必須先安裝libpcap軟件包后才能安裝NTOP,具體的安裝步驟如下所示:

(1)安裝libpcap抓包軟件包

#rpm -ivh libpcap-0.6.2-12.i386.rpm

(2)解壓NTOP包

#tar zxvf NTOP-3.3.8.tar.gz

#cd NTOP-3.3.8

(3)生成Makefile文件

#./configure

(4)配置NTOP時,系統會提示先編譯gd和zlib模塊。編譯完gd和zlib,再回到NTOP目錄下重新編譯、安裝:

#cd gd-1.8.3/libpng-1.2.1/

#cp scripts/makefile.linux Makefile

#make

#cd ../../zlib-1.1.4

#./configure

#make

#cd ..

#make

#cd NTOP-3.3.8

#make

make install

(5)建立NTOP軟件需要的log目錄存儲日志:

#mkdir /var/log/NTOP/

(6)以上都完成后,就可以啟動NTOP了

#NTOP -P /var/log/NTOP/ -u nobody &

3、使用NTOP

NTOP支持簡單網絡管理協議(Simple Network Management Protocol,SNMP),并把PNG格式的圖形以HTML的方式顯示出來,便于網管員對所監控的網絡設備(交換機、路由器等)進行管理。

打開瀏覽器,在地址欄輸入http://host_ip:3000(“IP”就是安裝NTOP的那臺網管工作站的IP地址),即可打開NTOP管理界面。第一次運行時會要求輸入管理員的密碼,預設密碼是“admin”,第二次啟動就不用再輸入了。

通過使用NTOP,我們可以在瀏覽器界面下看到許多有關網絡流量的統計和分析信息,下面介紹幾種最重要的統計和分析功能:

(1)查看網絡整體流量(Global Traffic)

網絡管理員在進行網絡流量分析的初始,考慮的大多是宏觀的網絡整體流量情況,因此,NTOP首先提供了查看網絡整體流量的功能。在NTOP的瀏覽器界面中,查看網絡整體流量用鼠標點擊“Stats”選項卡,然后單擊“Traffic”選項。網絡流量會明細表格的形式顯示出來,如圖5所示。另外,圖6和圖7分別向網絡管理員顯示了網絡流量中協議的分布整體情況,以及最常見的傳輸層協議TCP和UDP的分布情況,這些可以為網管人員的統計、分析和審核工作提供強有力的參考依據。  

圖5  Global Traffic Statistics示意圖  

圖6  Global Protocol Distribution示意圖

 圖7  Global TCP/UDP Protocol Distribution示意圖

(2)查看主機流量

網絡管理員在查看了網絡整體流量信息的前提下,第二步一般是進一步分析網絡中主機的流量情況,從而確定網絡中的用戶行為,從而進行安全審計、流量限制等方面的工作。在NTOP中,如果想查看具體節點計算機的網絡流量,用鼠標單擊“IP Traffic”選項卡,然后單擊“Host”選項即可: 

◆監測主機使用的網絡協議:如圖8所示,在圖中網絡管理員可以清楚地看到網絡中的每一臺主機針對FTP、HTTP、DNS等主要網絡協議的使用情況,包括主機的IP地址,具體流量等;  

圖8  Network Traffic示意圖

◆查看網絡流量的方向:NTOP可以把網絡主機中的詳細出入網絡的流量統計和顯示出來。這使得網絡管理員可以更加清楚地了解網絡中主機用戶的網絡行為,為后續的追蹤、審計和流量限制提供了重要信息,如圖9所示。

 圖9  Remote t Local IP Traffic示意圖

◆查看網絡主機數量和基本統計:NTOP還具有Scanner(掃描器)的功能,它能迅速地掃描到網絡中的所有活動主機,如圖10所示  

圖10  Host Statistics示意圖

總而言之,通過上面的分類講解我們不難看到,通過使用NTOP,我們能夠對所有進出網絡的數據做到了如指掌,并且能夠進行非常詳細的網絡流量分析工作。因此,不管是用來監測網絡,還是用來制作網絡情況報告,NTOP都是非常優秀的工具。

六、 網絡流量限制-TC技術

1、TC(traffic control)技術原理

Linux從kernel 2.1.105開始支持QoS(服務質量),不過,需要重新編譯內核。具體步驟為:

(1) 運行 make config命令時,將EXPERIMENTAL_OPTIONS選項設置成y;

(2) 將 Class Based Queueing (CBQ)、Token Bucket Flow、Traffic Shapers選項設置為y;

(3) 運行make dep; make clean; make bzimage,生成新的內核。

在Linux操作系統中流量控制器(TC)主要是在輸出端口處建立一個隊列進行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子網的網絡號的流量控制。流量控制器TC,其基本的功能模塊為隊列、分類和過濾器。Linux內核中支持的隊列有,Class Based Queue ,Token Bucket Flow ,CSZ ,First In First Out ,Priority ,TEQL ,SFQ ,ATM ,RED。由于目前網絡流量種類繁多,網絡管理員在管理時通常都采用分類的方式進行,因此,本專題所介紹的隊列與分類都是基于CBQ(Class Based Queue)的,而過濾器是基于路由(Route)的,其他的分類方式和過濾器使用方式請參看相關的技術文獻。

配置和使用流量控制器TC,主要分以下幾個方面:分別為建立隊列、建立分類、建立過濾器和建立路由,另外還需要對現有的隊列、分類、過濾器和路由進行監視。

其基本使用步驟為:

(1)針對網絡物理設備綁定一個CBQ隊列;

(2)在該隊列上建立分類;

(3)為每一分類建立一個基于路由的過濾器;

(4)最后與過濾器相配合,建立特定的路由表

2、使用Linux TC進行流量控制實例

實例條件描述:

在一個局域網中(如圖11所示),我們設定流量控制器上的以太網卡(設備名為eth0)的IP地址為10.172.4.66,在其上建立一個CBQ隊列。假設包的平均大小為1K字節,包間隔發送單元的大小為8字節,可接收沖突的發送最長包數目為20字節。

假如有三種類型的流量需要控制:

(1)發往主機1的流量,其IP地址設定為10.172.4.138。其流量帶寬控制在500Mbit,優先級為2;

(2)是發往主機2的,其IP地址為10.172.4.141。其流量帶寬控制在200Mbit,優先級為1;

(3)是發往子網1的,其子網號為10.172.4.0,子網掩碼為255.255.255.0。流量帶寬控制在300Mbit,優先級為6。

那么,根據上面的實例條件,我們可以采用如下的步驟進行TC配置和控制:  

圖11 Linux TC流量控制示意圖

1.綁定CBQ隊列

一般情況下,針對一個網卡只需建立一個隊列:

將一個cbq隊列綁定到網絡物理設備eth0上,其編號為1:0;網絡物理設備eth0的實際帶寬為1000Mbit,包的平均大小為1000字節;包間隔發送單元的大小為8字節,最小傳輸包大小為64字節。

#tc qdisc add dev eth0 root handle 1: cbq bandwidth 1000Mbit avpkt 1000 cell 8 mpu 64

2. 為隊列建立分類

分類建立在隊列之上。一般情況下,針對一個隊列需建立一個根分類,然后再在其上建立子分類。對于分類,按其分類的編號順序起作用,編號小的優先;一旦符合某個分類匹配規則,通過該分類發送數據包,則其后的分類不再起作用。

(1)創建根分類1:1;分配帶寬為1000Mbit,優先級別為8。

#tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 1000Mbit rate 1000Mbit maxburst

20 allot 1514 prio 8 avpkt 1000 cell 8 weight 100Mbit

該隊列的最大可用帶寬為1000Mbit,實際分配的帶寬為1000Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為8,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為100Mbit。

(2)創建分類1:2,其父分類為1:1,分配帶寬為500Mbit,優先級別為2。

#tc class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 1000Mbit rate 500Mbit maxburst

20 allot 1514 prio2 avpkt 1000 cell 8 weight 50Mbit split 1:0 bounded

該隊列的最大可用帶寬為1000Mbit,實際分配的帶寬為500Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為1,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為50Mbit,分類的分離點為1:0,且不可借用未使用帶寬。

(3)創建分類1:3,其父分類為1:1,分配帶寬為200Mbit,優先級別為1。

#tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 1000Mbit rate 200Mbit

maxburst 20 allot 1514 prio 1 avpkt 1000 cell 8 weight 20Mbit split 1:0

該隊列的最大可用帶寬為1000Mbit,實際分配的帶寬為200Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為2,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為20Mbit,分類的分離點為1:0。

4)創建分類1:4,其父分類為1:1,分配帶寬為300Mbit,優先級別為6。

#tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 1000Mbit rate

300Mbit maxburst 20 allot 1514 prio 6 avpkt 1000 cell 8 weight 30Mbit split 1:0

該隊列的最大可用帶寬為1000Mbit,實際分配的帶寬為300Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為1,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為30Mbit,分類的分離點為1:0。

3. 建立過濾器

過濾器主要服務于分類。一般只需針對根分類提供一個過濾器,然后為每個子分類提供路由映射。

(1)應用路由分類器到cbq隊列的根,父分類編號為1:0;過濾協議為ip,優先級別為100,過濾器為基于路由表。

#tc filter add dev eth0 parent 1:0 protocol ip prio 100 route 

(2)建立路由映射分類1:2, 1:3, 1:4

#ip route add 10.172.4.138 dev eth0 via 10.172.4.66 realm 2 

4. 建立與過濾器對應的路由

該路由是與前面所建立的路由映射一一對應。

1) 發往主機10.172.4.138的數據包通過分類2轉發(分類2的速率500Mbit)

#ip route add 10.172.4.138 dev eth0 via 10.172.4.66 realm 2 

2) 發往主機10.172.4.30的數據包通過分類3轉發(分類3的速率200Mbit)

#ip route add 10.172.4.30 dev eth0 via 10.172.4.66 realm 3 

3)發往子網10.172.4.0/24的數據包通過分類4轉發(分類4的速率300Mbit)

#ip route add 10.172.4.0/24 dev eth0 via 10.172.4.66 realm 4 

在配置路由時特別值得注意的是:一般對于流量控制器所直接連接的網段建議使用IP主機地址流量控制限制,不要使用子網流量控制限制。如一定需要對直連子網使用子網流量控制限制,則在建立該子網的路由映射前,需將原先由系統建立的路由刪除,才可完成相應步驟。

5. 對上述建立的機制進行查看

主要包括對現有隊列、分類、過濾器和路由的狀況進行查看。

(1)顯示隊列的狀況

簡單顯示指定設備(這里為eth0)的隊列狀況

#tc qdisc ls dev eth0

qdisc cbq 1: rate 1000Mbit (bounded,isolated) prio no-transmit

詳細顯示指定設備(這里為eth0)的隊列狀況

#tc -s qdisc ls dev eth0

qdisc cbq 1: rate 1000Mbit (bounded,isolated) prio no-transmit

Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)

borrowed 0 overactions 0 avgidle 31 undertime 0

這里主要顯示了通過該隊列發送了13232個數據包,數據流量為7646731個字節,丟棄的包數目為0,超過速率限制的包數目為0。

(2)顯示分類的狀況

簡單顯示指定設備(這里為eth0)的分類狀況

#tc class ls dev eth0

class cbq 1: root rate 1000Mbit (bounded,isolated) prio no-transmit

class cbq 1:1 parent 1: rate 10Mbit prio no-transmit #no-transmit表示優先級為8

class cbq 1:2 parent 1:1 rate 500Mbit prio 2

class cbq 1:3 parent 1:1 rate 200Mbit prio 1

class cbq 1:4 parent 1:1 rate 300Mbit prio 6

詳細顯示指定設備(這里為eth0)的分類狀況  

#tc -s class ls dev eth0

class cbq 1: root rate 1000Mbit (bounded,isolated) prio no-transmit

Sent 17725304 bytes 32088 pkts (dropped 0, overlimits 0)

borrowed 0 overactions 0 avgidle 31 undertime 0

class cbq 1:1 parent 1: rate 1000Mbit prio no-transmit

Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0)

borrowed 16163 overactions 0 avgidle 587 undertime 0

class cbq 1:2 parent 1:1 rate 500Mbit prio 2

Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0)

borrowed 0 overactions 0 avgidle 4137 undertime 0

class cbq 1:3 parent 1:1 rate 200Mbit prio 1

Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

borrowed 0 overactions 0 avgidle 159654 undertime 0

class cbq 1:4 parent 1:1 rate 300Mbit prio 6

Sent 5934679 bytes 9354 pkts (dropped 0, overlimits 0)

borrowed 3797 overactions 0 avgidle 159557 undertime 0

這里主要顯示了通過不同分類發送的數據包,數據流量,丟棄的包數目,超過速率限制的包數目等等。其中根分類(class cbq 1:0)的狀況應與隊列的狀況類似。

例如,分類class cbq 1:4發送了9354個數據包,數據流量為5934679個字節,丟棄的包數目為0,超過速率限制的包數目為0。

(3)顯示過濾器的狀況

#tc -s filter ls dev eth0

filter parent 1: protocol ip pref 100 route

filter parent 1: protocol ip pref 100 route fh 0xffff0002 flowid 1:2 to 2

filter parent 1: protocol ip pref 100 route fh 0xffff0003 flowid 1:3 to 3

filter parent 1: protocol ip pref 100 route fh 0xffff0004 flowid 1:4 to 4

這里flowid 1:2代表分類class cbq 1:2,to 2代表通過路由2發送。

這里flowid 1:2代表分類class cbq 1:2,to 2代表通過路由2發送。

(4)顯示現有路由的狀況

#ip route

10.172.4.66 dev eth0 scope link

10.172.4.138 via 10.172.4.66 dev eth0 realm 2

10.172.4.30 via 10.172.4.66 dev eth0 realm 3

10.172.4.0/24 via 10.172.4.66 dev eth0 realm 4

10.172.4.0/24 dev eth0 proto kernel scope link src 10.172.4.66

172.16.1.0/24 via 10.172.4.66 dev eth0 scope link

127.0.0.0/8 dev lo scope link

default via 10.172.4.254 dev eth0

6. 隊列、分類、過濾器及路由維護

上面我們通過一個完整的例子示意了使用Linux的TC進行流量控制的全過程。不難看出,該技術主要包括如上5步。而在日常的網絡管理過程中,網管員還需要對TC的隊列、分類、過濾器和路由進行相應的增添、修改和刪除等操作,以保證流量控制能夠因時、因地、因應用制宜。可能用到的相應的命令如下所示: 

◆tc class add命令:添加分類; 

◆tc class change命令:修改分類; 

◆tc filter add命令:添加過濾器; 

◆tc filter change命令:修改過濾器; 

◆tc filter del命令:刪除過濾器; 

◆ip route add命令:添加與過濾器對應的路由; 

◆ip route change命令:修改與過濾器對應的路由; 

◆ip route del命令:刪除與過濾器對應的路由。

具體的用法和例子在本專題中不再一一給出,請參看詳細的技術文獻對照使用。

七、 網絡流量管理的策略

隨著網絡流量的不斷增長以及網絡應用的日趨紛繁蕪雜化,我們不難看到,簡單的無限制的增加網絡帶寬是不能解決網絡流量的根本問題的。我們需要對網絡流量進行管理,從而保證網絡的健康和網絡應用的正常服務。在網絡流量管理的過程中,我們首要的問題就要明確網絡管理目標。在網絡流量管理中,我們需要牢記4個目標 

◆首先,我們要了解網絡流量的使用情況; 

◆其次,要找到優化網絡性能的途徑; 

◆第三,要通過網絡管理技術來提升網絡效能; 

◆最后,還需要做好網絡流量信息安全方面的防護工作。

具體說來,要達到上述四個目標,網絡管理員們可以通過有效的分類方式非常明確的知道我們需要的帶寬到底哪些是實際使用的。網絡流量管理的第二個目標是找到網絡性能的瓶頸。網絡性能很重要的一個方面是吞吐量,這是網絡能夠傳輸的最大數據量,還有延遲等。第三,通過本專題所介紹的流量監控及控制軟件可以高效地提升網絡性能,從而滿足不同的網絡應用需求。最后,網管們還可以綜合運用入侵檢測系統(IDS)、防火墻(FireWall)、統一威脅管理(UTM)設備來對網絡流量進行信息安全方面的防護工作。當然,信息安全方面的工作不是本專題的介紹范疇,在這里不作過多介紹。

在日常的網絡流量管理中,為了有效實現網絡管理4個目標,我們需要采取相應的步驟。這個步驟分別是:網絡流量捕捉和分類、網絡流量監視(統計和分析)和控制策略。 

◆網絡流量捕捉和分類:他是進行網絡流量管理的第一步。只有通過設置捕捉點,對網絡流量進行捕捉和分類,才能進行后續的分析和控制工作。這里特別需要強調的是,網絡流量分類可以非常宏觀化,也可以細化。比如TCP、UDP、ICMP等等的分類就比較宏觀,而HTTP、FTP甚至是諸如Kazza、Skype等P2P流量的分類和識別就比較細化了。本專題介紹的Wireshark和tcpdump軟件目前著重的是宏觀流量的捕捉和分類,具體細化的內容管理員可以參看相關的資料獲得。 

◆網絡流量監視(分析):監視步驟用來顯示流量的運行狀況,幫助找出問題所在和執行相應的管理策略。應用程序和網絡管理能夠收集分類、展示和收集信息,包括帶寬利用率、活躍的主機和網絡效率以及對活躍的應用程序。我們的設備能夠跟蹤平均和高信息的流量,識別最大的用戶和應用程序,將網絡流量定位到不同的領域,從應用的角度監視網絡流量,分析網絡帶寬明確的關鍵問題所在。用統計報表來進行表現。該目標可以采用本專題所介紹的NTOP可視化分析管理工具來協助網絡管理員在實際工作中實現。 

◆控制策略:通過網絡流量分析后,接下來根據優先級別分配帶寬資源。分配的依據可以根據主機、應用等等,特別需要考慮的是注意將消耗資源的P2P程序或者音頻視頻下載等進行滯后考慮。用戶們可以根據本專題所介紹的TC工具來進行和實現一個完整的分類監視和控制網絡流量,這樣,我們就可以將網絡流量有效管理起來,將原來無序的網絡流量變得有序起來。

熱詞搜索:

上一篇:數據集中整合的最佳載體
下一篇:未雨綢繆 高瞻遠矚的網絡運維

分享到:           收藏