




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于neflow的大流量網絡流量采集與存儲
近年來,隨著技術的發(fā)展和大量公司業(yè)務的需求,網絡應用的構建越來越多。網絡復雜性和依賴性日益增強,出現了各種網絡問題。對于網絡這樣龐大的復合體,解決網絡問題的關鍵在于問題的定位。因此,對網絡流量及相關情況實施科學合理的監(jiān)管和深入分析,成為網絡管理的重要環(huán)節(jié)之一;同時,它也是為網絡問題提供有效解決方案及進行網絡規(guī)劃的重要手段之一。目前的網絡流量分析方法主要有基于SNMP、基于實時抓包分析、基于網絡探針和基于flow技術等幾種。NetFlow是Cisco公司在1996年開發(fā)出的技術,它既是一種交換技術(NetFlow交換),也是一種流量分析技術。其版本5是到目前為止使用最廣泛的版本。基于NetFlow的流量采集方法可以獲得包括源/目的主機IP、應用協議類型、源/目的端口等詳細信息,根據這些信息就可以對TopN協議(應用)、TopN主機IP(用戶)以及TopNAS域等進行統(tǒng)計排行和趨勢分析,同時也可對異常流量進行監(jiān)測分析。另外,基于NetFlow的采集方法是被動式的,因而不會向被測網絡增加額外的流量負荷,這也是其優(yōu)點之一。1基于處理能力的流量采集技術對網絡流量進行監(jiān)控分析,其核心問題就是如何對采集來的數據進行歸納整理,尤其針對高速大流量網絡環(huán)境所產生的海量數據。有效的數據整理是進行全面流量統(tǒng)計分析的基礎,也是提高系統(tǒng)性能的手段。本文針對高速大流量網絡環(huán)境的數據處理進行研究。這里的高速大流量網絡環(huán)境是指有100~500Mbps左右的實際流量和幾十萬臺活動主機的網絡。本文所測試的網絡環(huán)境是某部委的核心骨干網,該網絡具有200Mbps左右的實際流量,且網絡中的交換設備絕大多數都是Cisco路由器,便于筆者采用基于NetFlow的方法進行流量采集。高速大流量網絡的特點對流量的采集、數據存儲組織以及分析展現都提出了較大的挑戰(zhàn)。主要體現在以下幾方面:a)高速流量,接收要及時。經實驗觀測,被測網絡繁忙時1h的NetFlow流條數可達百萬條。由于其采用不可靠的UDP方式發(fā)送數據,采集模塊若不能及時接收并處理如此巨大的數據量,必定產生丟包現象。b)原始信息復雜,需有效整理。由于NetFlow數據流所含信息比較詳細,要進行細致的統(tǒng)計分析就需要對原始NetFlow數據流進行有效的分類整理,提取有用信息,這給數據處理和存儲組織帶來了一定難度。c)歷史數據量巨大,查詢不便。為了分析流量走勢,就需要保存大量的歷史數據。若使用諸如MySQL這種數據庫表容量受文件大小所限的數據庫作為存儲數據庫,就可能出現所需統(tǒng)計的數據分散存儲在多個表中的現象,從而導致跨表查詢,給操作帶來不便,也降低了系統(tǒng)效率。本文結合NetFlow的數據特點和實際應用需要,提出了一套網絡流量采集和存儲方案,并基于此方案實現了一個基于NetFlow的、可支持高速大流量網絡環(huán)境的流量分析系統(tǒng)。2流量檢測和存儲組織2.1后臺采集器及分析器基于以上一些問題,筆者設計了如圖1所示的系統(tǒng)結構。在路由器上開啟NetFlow流量采集功能后,UDP形式的NetFlow數據將被發(fā)送到本系統(tǒng)的NetFlow采集器中,并進行數據包的解析,提取有用信息。多級聚合處理模塊負責對提取的原始信息進行分級聚合整理,形成多種適合統(tǒng)計分析需要的數據,再分門別類地存入數據庫。分析器則根據前端不同的查詢請求,依照一定的查詢策略從數據庫不同的表中提取相應數據進行分析展現。本系統(tǒng)的后臺采集器和聚合處理部分用C++編寫實現,運行在Linux平臺上,數據庫采用開源的MySQL,而NetFlow流量分析利用Tomcat服務器通過Web方式展現,前臺部分用JSP編寫實現。本文工作的重點即在于數據采集、多級聚合以及數據庫表結構設計部分。2.2數據收集2.2.1多線程技術在流量管理中的實現路由器NetFlowcache內過期的NetFlow數據以UDP包的形式不斷向采集器的指定端口發(fā)送,每個UDP包攜帶n條flow記錄,如圖2所示。為解決高速大流量數據的及時接收問題,本文采用了多線程的方式來實現。用獨立的兩個線程分別完成數據接收和解析操作,偽代碼如圖3所示。由于接收線程和解析線程共享同一個臨界資源,即接收到的數據鏈表,因而需要對臨界資源進行加鎖操作。為了在解析線程獲得鎖的同時確保接收線程仍在工作,筆者設計了一個雙鏈表的緩沖存儲結構,即解析線程獲得鎖后,首先將接收鏈表備份出來,然后將其置空,隨即釋放鎖繼續(xù)接收,再進行鏈表解析。這種雙鏈表緩沖結構的優(yōu)點是在數據解析的過程中確保數據接收的永不間斷,有效提高了流量采集的可靠性。2.2.2基于優(yōu)先陣列的流量趨勢分析經過對NetFlow原始流的觀察發(fā)現,在一些網絡環(huán)境中,少數原始流的流量/包數之和占據了整體流量/包數的絕大部分,而大量的原始流卻只有很少的流量/包數,這種現象被稱為80-20現象。該現象符合少部分用戶占用絕大部分帶寬的實際情況,具有通用性。對于流量趨勢分析來說,大量的小流量NetFlow記錄會極大增加系統(tǒng)的處理量、降低系統(tǒng)效率?;谏鲜鰡栴},本文提出在原始流聚合入庫操作前加入優(yōu)先隊列(priorityqueue)處理機制,將原始流按流量降序排列依次執(zhí)行后續(xù)操作,直到入庫的flow總流量達到全部流量的一定比例(如預先設定95%)時停止入庫,將未入庫的記錄丟棄。由實驗可見,優(yōu)先隊列的引入可以在較大程度上減少預處理的數據量,同時也能基本保證流量不丟失。表1所示即為實驗中不同入庫比例對flow的流縮減比率。2.3靜態(tài)分析系統(tǒng)根據NetFlow的數據特點,網絡流量分析可從靜態(tài)和動態(tài)兩個角度進行。靜態(tài)分析主要是指對流量在某個時間段內的主機、應用協議等構成情況進行的分析;動態(tài)分析則是指隨時間推移,對某應用協議或某端口流量的變化趨勢進行的分析。2.3.1壓縮整理后數據存儲方式以合理的保存流先對高速大流量網絡進行流量趨勢的動態(tài)分析就需要大量歷史數據作為支撐。針對選用的MySQL數據庫而言,若單表存儲過多記錄,可能導致查詢效率的明顯降低;若數據存儲得太過分散又可能導致經常性的跨表查詢,同樣影響效率??梢?為滿足動態(tài)分析的需要,必須將原始流先進行壓縮整理,再以較為合理的存儲形式保存在數據庫中。目前的靜態(tài)分析主要以新采集的數據作為分析對象,本文設計了如圖4所示的數據處理總體策略,通過兩個并發(fā)線程分別生成靜態(tài)分析和動態(tài)分析所需的數據。2.3.2詳細流結構體的創(chuàng)建靜態(tài)構成分析需要按源/目的主機、應用協議及端口等規(guī)則進行分類統(tǒng)計、流量構成和TopN排行等,因而需從原始流中提取相應信息。根據從UDP包解析出來的原始流信息,創(chuàng)建了如下格式的詳細流結構體,包含有導入詳細流表的全部數據信息。經實際測量發(fā)現,被測網絡流量較大時每天采集的flow數量可達百萬條,MySQL數據庫單表記錄數則應盡量小于200萬條,以便保證較高的查詢效率。因而本文設計每天一張詳細流表來保存流經一個路由器(采集點)的原始流記錄,以供靜態(tài)分析時進行數據查詢。2.3.3流量聚合策略對于動態(tài)分析,本文設計了一套分級流量聚合策略來滿足流量趨勢分析時的數據查詢。所謂流量聚合,是指對符合NetFlow數據格式的原始流記錄根據一定條件進行流量合并,實現多條流合并為一條的過程,以實現原始流的壓縮整理。流量聚合有三個關鍵要素:聚合條件、聚合項和時間粒度。滿足相同聚合條件和時間粒度的流進行流量疊加,并保留聚合項(往往聚合條件屬于聚合項的一部分)?;谏鲜鼍酆纤枷?本文提出了三個時間粒度(5、30min和3h)的聚合方案,并通過內存級流量聚合與DB級流量聚合相結合的策略來實現三個粒度的聚合,這就是所謂的分級流量聚合策略。由于內存級的聚合操作是在實時采集到原始流后立即執(zhí)行的,為加快聚合條件的匹配速度以適應采集速度,筆者在內存中采用了hash表的存儲結構。分級聚合策略如圖5所示。12存儲層聚集(1)基于網絡實名的流量聚合如圖5所示,內存級聚合實現了從原始流到5min時間粒度聚合流的轉換。為使查詢更加方便快捷,本文又設計了兩種聚合流結構,以分別滿足基于三層協議(TCP/UDP)的較粗泛的流量趨勢分析和基于應用層協議端口的較細致的流量趨勢分析。它們采用了不同的聚合條件,其結構如下:在這兩種結構體中,timephase表示一個5min的整點時間段(如00:00:00~00:00:05),用于標志聚合流持續(xù)發(fā)生的時間段;ifindex表示原始流所流經的路由器接口號;direction表示從該接口流入還是流出的方向標志;ipprot表示傳輸層協議名稱,portnum表示應用層端口號,這兩個字段是區(qū)分兩種聚合結構的根本所在。聚合項都包括dpkts(流量)和doctets(包數),而基于應用層協議端口號的聚合流還記錄了protname(應用層協議名稱)以及其所對應的ipprot(傳輸層協議名稱)。由此,當需要進行基于傳輸層協議的流量趨勢分析時,只需直接查詢flow_aggr_total結構體所對應的聚合流數據表即可,避免了從基于應用協議端口號的聚合表歸總統(tǒng)計的麻煩。對于一個新采集的原始流,必須能根據其所攜帶的聚合條件信息快速匹配是否已存在與其相同聚合條件的聚合流,若有則做流量疊加,若沒有則創(chuàng)建一條新的聚合流。Hash表具有從key快速映射到value的特點,這種特點對于實時性較高的內存級聚合非常有意義。Hash表在內存級聚合中的應用如圖6所示(以基于應用層協議端口號的聚合為例)。在使用hash表實現流量聚合的過程中,hash函數的優(yōu)劣將影響匹配過程的快慢。根據聚合條件四元組的特點,本文設計的hash函數算法如下:其中:key是聚合條件四元組結構體,包含四個聚合條件字段。由于key.phasetime(5min時間段)是個大整數且重復率較高,而key.portnum(端口號)在1~10000的變化較大,因而考慮以時間段為基礎,在其上疊加端口號對300的模值(300是5min折合的秒數),可實現較好的離散效果。2兩級聚合及流量趨勢分析由圖5可見,除了5min時間粒度的內存級聚合外,其他兩個時間粒度的聚合都是DB級聚合,通過每晚固定時間運行獨立的聚合程序來實現。這兩級聚合將根據當天新生成的5min時間粒度聚合流分別創(chuàng)建30min和3h粒度的聚合流存儲到相應的聚合流表中。有了這三個時間粒度的聚合流,就可以在動態(tài)流量趨勢分析時,根據指定的時間段信息動態(tài)確定查詢哪個粒度的聚合流,以避開復雜且效率低下的跨表查詢。做法是當所需查詢的時間段出現跨表時,系統(tǒng)將自動查詢更粗一級時間粒度的聚合流表。33聚合物實驗的結果對被測網絡3h左右所產生的共計292307條原始流進行聚合。各級聚合結果如表2所示。2.3.4單表時間跨度根據被測網絡的實際流量情況,本文設計了三級時間粒度聚合表的單表時間跨度,如表3所示。經實驗證明,這種時間跨度的設計不會發(fā)生MySQL單表記錄數過大從而導致查詢效率低下的現象,同時也不會由于時間跨度過小而出現過多的跨表情況。3實驗結果分析在本系統(tǒng)多級聚合與存儲策略的支持下,系統(tǒng)數據庫為前端分析提供了充足且多樣化的數據準備,前端程序只需通過簡單的查詢語句即可得到所需的數據集,極大簡化了查詢的工作量。圖7即為被測網絡某路由器接口HTTP協議的流出流量趨勢實驗效果。由圖清晰可見每日流量呈周期性變化。4多種存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇安全技術職業(yè)學院《腫瘤放射治療學》2023-2024學年第一學期期末試卷
- 老年人臥床的護理措施
- 新疆農業(yè)大學《多元音樂文化與世界名曲欣賞》2023-2024學年第一學期期末試卷
- 河北省張家口市涿鹿縣2024-2025學年初三第一次模擬考試(化學試題文)試卷含解析
- 2025年山東省萊蕪市萊城區(qū)茶業(yè)口鎮(zhèn)腰關中學初三下學期十月月考化學試題含解析
- 廣東職業(yè)技術學院《生物納米與高分子材料》2023-2024學年第二學期期末試卷
- 浙江廣廈建設職業(yè)技術大學《馬克思基本原理》2023-2024學年第二學期期末試卷
- 湖南網絡工程職業(yè)學院《地下工程結構》2023-2024學年第一學期期末試卷
- 北京科技經營管理學院《土力學理論與實踐》2023-2024學年第二學期期末試卷
- 廣東工業(yè)大學《電路板設計CAD》2023-2024學年第二學期期末試卷
- 中央企業(yè)商業(yè)秘密安全保護技術指引2015版
- 2023年安徽中考語文總復習二輪專題課件:專題四 非連續(xù)性文本閱讀
- 刻板印象完整版
- 課本劇臺詞-《為中華之崛起而讀書》劇本
- 數據庫原理及應用課件完整版電子講義
- GB/T 14257-2009商品條碼條碼符號放置指南
- GB/T 13576.3-2008鋸齒形(3°、30°)螺紋第3部分:基本尺寸
- GB/T 10067.5-1993電熱設備基本技術條件高頻介質加熱設備
- 檢維修作業(yè)工作危害分析(JHA)評價表
- 工程場地地震安全性評價
- 新世紀福音戰(zhàn)士課件
評論
0/150
提交評論