下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于neflow的大流量網(wǎng)絡(luò)流量采集與存儲
近年來,隨著技術(shù)的發(fā)展和大量公司業(yè)務(wù)的需求,網(wǎng)絡(luò)應(yīng)用的構(gòu)建越來越多。網(wǎng)絡(luò)復(fù)雜性和依賴性日益增強(qiáng),出現(xiàn)了各種網(wǎng)絡(luò)問題。對于網(wǎng)絡(luò)這樣龐大的復(fù)合體,解決網(wǎng)絡(luò)問題的關(guān)鍵在于問題的定位。因此,對網(wǎng)絡(luò)流量及相關(guān)情況實施科學(xué)合理的監(jiān)管和深入分析,成為網(wǎng)絡(luò)管理的重要環(huán)節(jié)之一;同時,它也是為網(wǎng)絡(luò)問題提供有效解決方案及進(jìn)行網(wǎng)絡(luò)規(guī)劃的重要手段之一。目前的網(wǎng)絡(luò)流量分析方法主要有基于SNMP、基于實時抓包分析、基于網(wǎng)絡(luò)探針和基于flow技術(shù)等幾種。NetFlow是Cisco公司在1996年開發(fā)出的技術(shù),它既是一種交換技術(shù)(NetFlow交換),也是一種流量分析技術(shù)。其版本5是到目前為止使用最廣泛的版本?;贜etFlow的流量采集方法可以獲得包括源/目的主機(jī)IP、應(yīng)用協(xié)議類型、源/目的端口等詳細(xì)信息,根據(jù)這些信息就可以對TopN協(xié)議(應(yīng)用)、TopN主機(jī)IP(用戶)以及TopNAS域等進(jìn)行統(tǒng)計排行和趨勢分析,同時也可對異常流量進(jìn)行監(jiān)測分析。另外,基于NetFlow的采集方法是被動式的,因而不會向被測網(wǎng)絡(luò)增加額外的流量負(fù)荷,這也是其優(yōu)點之一。1基于處理能力的流量采集技術(shù)對網(wǎng)絡(luò)流量進(jìn)行監(jiān)控分析,其核心問題就是如何對采集來的數(shù)據(jù)進(jìn)行歸納整理,尤其針對高速大流量網(wǎng)絡(luò)環(huán)境所產(chǎn)生的海量數(shù)據(jù)。有效的數(shù)據(jù)整理是進(jìn)行全面流量統(tǒng)計分析的基礎(chǔ),也是提高系統(tǒng)性能的手段。本文針對高速大流量網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)處理進(jìn)行研究。這里的高速大流量網(wǎng)絡(luò)環(huán)境是指有100~500Mbps左右的實際流量和幾十萬臺活動主機(jī)的網(wǎng)絡(luò)。本文所測試的網(wǎng)絡(luò)環(huán)境是某部委的核心骨干網(wǎng),該網(wǎng)絡(luò)具有200Mbps左右的實際流量,且網(wǎng)絡(luò)中的交換設(shè)備絕大多數(shù)都是Cisco路由器,便于筆者采用基于NetFlow的方法進(jìn)行流量采集。高速大流量網(wǎng)絡(luò)的特點對流量的采集、數(shù)據(jù)存儲組織以及分析展現(xiàn)都提出了較大的挑戰(zhàn)。主要體現(xiàn)在以下幾方面:a)高速流量,接收要及時。經(jīng)實驗觀測,被測網(wǎng)絡(luò)繁忙時1h的NetFlow流條數(shù)可達(dá)百萬條。由于其采用不可靠的UDP方式發(fā)送數(shù)據(jù),采集模塊若不能及時接收并處理如此巨大的數(shù)據(jù)量,必定產(chǎn)生丟包現(xiàn)象。b)原始信息復(fù)雜,需有效整理。由于NetFlow數(shù)據(jù)流所含信息比較詳細(xì),要進(jìn)行細(xì)致的統(tǒng)計分析就需要對原始NetFlow數(shù)據(jù)流進(jìn)行有效的分類整理,提取有用信息,這給數(shù)據(jù)處理和存儲組織帶來了一定難度。c)歷史數(shù)據(jù)量巨大,查詢不便。為了分析流量走勢,就需要保存大量的歷史數(shù)據(jù)。若使用諸如MySQL這種數(shù)據(jù)庫表容量受文件大小所限的數(shù)據(jù)庫作為存儲數(shù)據(jù)庫,就可能出現(xiàn)所需統(tǒng)計的數(shù)據(jù)分散存儲在多個表中的現(xiàn)象,從而導(dǎo)致跨表查詢,給操作帶來不便,也降低了系統(tǒng)效率。本文結(jié)合NetFlow的數(shù)據(jù)特點和實際應(yīng)用需要,提出了一套網(wǎng)絡(luò)流量采集和存儲方案,并基于此方案實現(xiàn)了一個基于NetFlow的、可支持高速大流量網(wǎng)絡(luò)環(huán)境的流量分析系統(tǒng)。2流量檢測和存儲組織2.1后臺采集器及分析器基于以上一些問題,筆者設(shè)計了如圖1所示的系統(tǒng)結(jié)構(gòu)。在路由器上開啟NetFlow流量采集功能后,UDP形式的NetFlow數(shù)據(jù)將被發(fā)送到本系統(tǒng)的NetFlow采集器中,并進(jìn)行數(shù)據(jù)包的解析,提取有用信息。多級聚合處理模塊負(fù)責(zé)對提取的原始信息進(jìn)行分級聚合整理,形成多種適合統(tǒng)計分析需要的數(shù)據(jù),再分門別類地存入數(shù)據(jù)庫。分析器則根據(jù)前端不同的查詢請求,依照一定的查詢策略從數(shù)據(jù)庫不同的表中提取相應(yīng)數(shù)據(jù)進(jìn)行分析展現(xiàn)。本系統(tǒng)的后臺采集器和聚合處理部分用C++編寫實現(xiàn),運(yùn)行在Linux平臺上,數(shù)據(jù)庫采用開源的MySQL,而NetFlow流量分析利用Tomcat服務(wù)器通過Web方式展現(xiàn),前臺部分用JSP編寫實現(xiàn)。本文工作的重點即在于數(shù)據(jù)采集、多級聚合以及數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計部分。2.2數(shù)據(jù)收集2.2.1多線程技術(shù)在流量管理中的實現(xiàn)路由器NetFlowcache內(nèi)過期的NetFlow數(shù)據(jù)以UDP包的形式不斷向采集器的指定端口發(fā)送,每個UDP包攜帶n條flow記錄,如圖2所示。為解決高速大流量數(shù)據(jù)的及時接收問題,本文采用了多線程的方式來實現(xiàn)。用獨(dú)立的兩個線程分別完成數(shù)據(jù)接收和解析操作,偽代碼如圖3所示。由于接收線程和解析線程共享同一個臨界資源,即接收到的數(shù)據(jù)鏈表,因而需要對臨界資源進(jìn)行加鎖操作。為了在解析線程獲得鎖的同時確保接收線程仍在工作,筆者設(shè)計了一個雙鏈表的緩沖存儲結(jié)構(gòu),即解析線程獲得鎖后,首先將接收鏈表備份出來,然后將其置空,隨即釋放鎖繼續(xù)接收,再進(jìn)行鏈表解析。這種雙鏈表緩沖結(jié)構(gòu)的優(yōu)點是在數(shù)據(jù)解析的過程中確保數(shù)據(jù)接收的永不間斷,有效提高了流量采集的可靠性。2.2.2基于優(yōu)先陣列的流量趨勢分析經(jīng)過對NetFlow原始流的觀察發(fā)現(xiàn),在一些網(wǎng)絡(luò)環(huán)境中,少數(shù)原始流的流量/包數(shù)之和占據(jù)了整體流量/包數(shù)的絕大部分,而大量的原始流卻只有很少的流量/包數(shù),這種現(xiàn)象被稱為80-20現(xiàn)象。該現(xiàn)象符合少部分用戶占用絕大部分帶寬的實際情況,具有通用性。對于流量趨勢分析來說,大量的小流量NetFlow記錄會極大增加系統(tǒng)的處理量、降低系統(tǒng)效率?;谏鲜鰡栴},本文提出在原始流聚合入庫操作前加入優(yōu)先隊列(priorityqueue)處理機(jī)制,將原始流按流量降序排列依次執(zhí)行后續(xù)操作,直到入庫的flow總流量達(dá)到全部流量的一定比例(如預(yù)先設(shè)定95%)時停止入庫,將未入庫的記錄丟棄。由實驗可見,優(yōu)先隊列的引入可以在較大程度上減少預(yù)處理的數(shù)據(jù)量,同時也能基本保證流量不丟失。表1所示即為實驗中不同入庫比例對flow的流縮減比率。2.3靜態(tài)分析系統(tǒng)根據(jù)NetFlow的數(shù)據(jù)特點,網(wǎng)絡(luò)流量分析可從靜態(tài)和動態(tài)兩個角度進(jìn)行。靜態(tài)分析主要是指對流量在某個時間段內(nèi)的主機(jī)、應(yīng)用協(xié)議等構(gòu)成情況進(jìn)行的分析;動態(tài)分析則是指隨時間推移,對某應(yīng)用協(xié)議或某端口流量的變化趨勢進(jìn)行的分析。2.3.1壓縮整理后數(shù)據(jù)存儲方式以合理的保存流先對高速大流量網(wǎng)絡(luò)進(jìn)行流量趨勢的動態(tài)分析就需要大量歷史數(shù)據(jù)作為支撐。針對選用的MySQL數(shù)據(jù)庫而言,若單表存儲過多記錄,可能導(dǎo)致查詢效率的明顯降低;若數(shù)據(jù)存儲得太過分散又可能導(dǎo)致經(jīng)常性的跨表查詢,同樣影響效率。可見,為滿足動態(tài)分析的需要,必須將原始流先進(jìn)行壓縮整理,再以較為合理的存儲形式保存在數(shù)據(jù)庫中。目前的靜態(tài)分析主要以新采集的數(shù)據(jù)作為分析對象,本文設(shè)計了如圖4所示的數(shù)據(jù)處理總體策略,通過兩個并發(fā)線程分別生成靜態(tài)分析和動態(tài)分析所需的數(shù)據(jù)。2.3.2詳細(xì)流結(jié)構(gòu)體的創(chuàng)建靜態(tài)構(gòu)成分析需要按源/目的主機(jī)、應(yīng)用協(xié)議及端口等規(guī)則進(jìn)行分類統(tǒng)計、流量構(gòu)成和TopN排行等,因而需從原始流中提取相應(yīng)信息。根據(jù)從UDP包解析出來的原始流信息,創(chuàng)建了如下格式的詳細(xì)流結(jié)構(gòu)體,包含有導(dǎo)入詳細(xì)流表的全部數(shù)據(jù)信息。經(jīng)實際測量發(fā)現(xiàn),被測網(wǎng)絡(luò)流量較大時每天采集的flow數(shù)量可達(dá)百萬條,MySQL數(shù)據(jù)庫單表記錄數(shù)則應(yīng)盡量小于200萬條,以便保證較高的查詢效率。因而本文設(shè)計每天一張詳細(xì)流表來保存流經(jīng)一個路由器(采集點)的原始流記錄,以供靜態(tài)分析時進(jìn)行數(shù)據(jù)查詢。2.3.3流量聚合策略對于動態(tài)分析,本文設(shè)計了一套分級流量聚合策略來滿足流量趨勢分析時的數(shù)據(jù)查詢。所謂流量聚合,是指對符合NetFlow數(shù)據(jù)格式的原始流記錄根據(jù)一定條件進(jìn)行流量合并,實現(xiàn)多條流合并為一條的過程,以實現(xiàn)原始流的壓縮整理。流量聚合有三個關(guān)鍵要素:聚合條件、聚合項和時間粒度。滿足相同聚合條件和時間粒度的流進(jìn)行流量疊加,并保留聚合項(往往聚合條件屬于聚合項的一部分)?;谏鲜鼍酆纤枷?本文提出了三個時間粒度(5、30min和3h)的聚合方案,并通過內(nèi)存級流量聚合與DB級流量聚合相結(jié)合的策略來實現(xiàn)三個粒度的聚合,這就是所謂的分級流量聚合策略。由于內(nèi)存級的聚合操作是在實時采集到原始流后立即執(zhí)行的,為加快聚合條件的匹配速度以適應(yīng)采集速度,筆者在內(nèi)存中采用了hash表的存儲結(jié)構(gòu)。分級聚合策略如圖5所示。12存儲層聚集(1)基于網(wǎng)絡(luò)實名的流量聚合如圖5所示,內(nèi)存級聚合實現(xiàn)了從原始流到5min時間粒度聚合流的轉(zhuǎn)換。為使查詢更加方便快捷,本文又設(shè)計了兩種聚合流結(jié)構(gòu),以分別滿足基于三層協(xié)議(TCP/UDP)的較粗泛的流量趨勢分析和基于應(yīng)用層協(xié)議端口的較細(xì)致的流量趨勢分析。它們采用了不同的聚合條件,其結(jié)構(gòu)如下:在這兩種結(jié)構(gòu)體中,timephase表示一個5min的整點時間段(如00:00:00~00:00:05),用于標(biāo)志聚合流持續(xù)發(fā)生的時間段;ifindex表示原始流所流經(jīng)的路由器接口號;direction表示從該接口流入還是流出的方向標(biāo)志;ipprot表示傳輸層協(xié)議名稱,portnum表示應(yīng)用層端口號,這兩個字段是區(qū)分兩種聚合結(jié)構(gòu)的根本所在。聚合項都包括dpkts(流量)和doctets(包數(shù)),而基于應(yīng)用層協(xié)議端口號的聚合流還記錄了protname(應(yīng)用層協(xié)議名稱)以及其所對應(yīng)的ipprot(傳輸層協(xié)議名稱)。由此,當(dāng)需要進(jìn)行基于傳輸層協(xié)議的流量趨勢分析時,只需直接查詢flow_aggr_total結(jié)構(gòu)體所對應(yīng)的聚合流數(shù)據(jù)表即可,避免了從基于應(yīng)用協(xié)議端口號的聚合表歸總統(tǒng)計的麻煩。對于一個新采集的原始流,必須能根據(jù)其所攜帶的聚合條件信息快速匹配是否已存在與其相同聚合條件的聚合流,若有則做流量疊加,若沒有則創(chuàng)建一條新的聚合流。Hash表具有從key快速映射到value的特點,這種特點對于實時性較高的內(nèi)存級聚合非常有意義。Hash表在內(nèi)存級聚合中的應(yīng)用如圖6所示(以基于應(yīng)用層協(xié)議端口號的聚合為例)。在使用hash表實現(xiàn)流量聚合的過程中,hash函數(shù)的優(yōu)劣將影響匹配過程的快慢。根據(jù)聚合條件四元組的特點,本文設(shè)計的hash函數(shù)算法如下:其中:key是聚合條件四元組結(jié)構(gòu)體,包含四個聚合條件字段。由于key.phasetime(5min時間段)是個大整數(shù)且重復(fù)率較高,而key.portnum(端口號)在1~10000的變化較大,因而考慮以時間段為基礎(chǔ),在其上疊加端口號對300的模值(300是5min折合的秒數(shù)),可實現(xiàn)較好的離散效果。2兩級聚合及流量趨勢分析由圖5可見,除了5min時間粒度的內(nèi)存級聚合外,其他兩個時間粒度的聚合都是DB級聚合,通過每晚固定時間運(yùn)行獨(dú)立的聚合程序來實現(xiàn)。這兩級聚合將根據(jù)當(dāng)天新生成的5min時間粒度聚合流分別創(chuàng)建30min和3h粒度的聚合流存儲到相應(yīng)的聚合流表中。有了這三個時間粒度的聚合流,就可以在動態(tài)流量趨勢分析時,根據(jù)指定的時間段信息動態(tài)確定查詢哪個粒度的聚合流,以避開復(fù)雜且效率低下的跨表查詢。做法是當(dāng)所需查詢的時間段出現(xiàn)跨表時,系統(tǒng)將自動查詢更粗一級時間粒度的聚合流表。33聚合物實驗的結(jié)果對被測網(wǎng)絡(luò)3h左右所產(chǎn)生的共計292307條原始流進(jìn)行聚合。各級聚合結(jié)果如表2所示。2.3.4單表時間跨度根據(jù)被測網(wǎng)絡(luò)的實際流量情況,本文設(shè)計了三級時間粒度聚合表的單表時間跨度,如表3所示。經(jīng)實驗證明,這種時間跨度的設(shè)計不會發(fā)生MySQL單表記錄數(shù)過大從而導(dǎo)致查詢效率低下的現(xiàn)象,同時也不會由于時間跨度過小而出現(xiàn)過多的跨表情況。3實驗結(jié)果分析在本系統(tǒng)多級聚合與存儲策略的支持下,系統(tǒng)數(shù)據(jù)庫為前端分析提供了充足且多樣化的數(shù)據(jù)準(zhǔn)備,前端程序只需通過簡單的查詢語句即可得到所需的數(shù)據(jù)集,極大簡化了查詢的工作量。圖7即為被測網(wǎng)絡(luò)某路由器接口HTTP協(xié)議的流出流量趨勢實驗效果。由圖清晰可見每日流量呈周期性變化。4多種存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國際雇員勞動權(quán)益保護(hù)合同
- 2025年度智能城市建設(shè)內(nèi)部股權(quán)轉(zhuǎn)讓協(xié)議范本
- 2025年度商業(yè)空間窗簾設(shè)計、安裝及后期維護(hù)合同4篇
- 2025年美團(tuán)電商平臺用戶隱私保護(hù)與數(shù)據(jù)安全協(xié)議
- 2025版小區(qū)房屋裝修智能家居系統(tǒng)安全評估與認(rèn)證合同2篇
- 2025年度新能源項目用地承包及轉(zhuǎn)讓合同協(xié)議書4篇
- 2025年度門窗行業(yè)環(huán)保檢測與認(rèn)證服務(wù)合同4篇
- 二零二五年度外教合同終止與清算協(xié)議合同
- 二零二五年度土地租賃合同(農(nóng)業(yè)開發(fā))4篇
- 二零二五年度錨具市場推廣合作合同4篇
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 2024年英語高考全國各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫課件
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
- 《小兒靜脈輸液速度》課件
評論
0/150
提交評論