掃描二維碼
隨時(shí)隨地手機(jī)看文章
l NetFlow技術(shù)
NetFlow是Cisco公司提出的基于Cisco IOS系統(tǒng)的一種應(yīng)用。它用于提供網(wǎng)絡(luò)設(shè)備上數(shù)據(jù)包形成的“流”的統(tǒng)計(jì)信息,并逐漸演變成為網(wǎng)絡(luò)流量統(tǒng)計(jì)和安全分析的主要手段。目前利用:NetFlow可以實(shí)現(xiàn)網(wǎng)絡(luò)流量監(jiān)測(cè),用戶應(yīng)用監(jiān)控,網(wǎng)絡(luò)安全,網(wǎng)絡(luò)規(guī)劃以及流量計(jì)費(fèi)等功能。
NetFlow有兩個(gè)核心的組件:NetFlow緩存,存儲(chǔ)IP流信息;NetFlow的數(shù)據(jù)導(dǎo)出或傳輸機(jī)制,NetFlow利用此機(jī)制將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)管理采集器。
1.1 流(Flow)的定義
一條流由一個(gè)源主機(jī)與一個(gè)目的主機(jī)間的單方向傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)包組成,其中,源和目的主機(jī)由各自的IP地址和端口號(hào)來(lái)標(biāo)識(shí)。一條流一般由以下七個(gè)關(guān)鍵字段惟一標(biāo)識(shí):
·源地址
·目的地址
·源端口號(hào)
·目的端口號(hào)
·第3層協(xié)議類型(如TCP,UDP)
·服務(wù)類型
·入邏輯接口標(biāo)示符
1.2 流(Flow)格式
啟動(dòng)NetFlow的設(shè)備會(huì)輸出其緩沖區(qū)里的信息,以UDP包的形式傳送給NetFlow流量采集器。包由包頭和若干流記錄組成。常用的NetFlOW輸出包格式共有5個(gè)版本,它們分別是Version 1,Version 5,Ver-sion 7,Version 8和Version 9,其中V5是最為流行和成熟的版本,目前得到最廣泛的使用。最新的V9已經(jīng)被列入IETF的標(biāo)準(zhǔn),并有待進(jìn)一步研究和規(guī)范。V9采用了模板技術(shù)與流記錄相結(jié)合的方式,使NetFlow輸出包的格式具有動(dòng)態(tài)和可擴(kuò)展的特性。NetFlow V9的輸出格式主要由三部分構(gòu)成:
(1)包頭部(Packet Header):包括版本號(hào)、包中數(shù)據(jù)流總數(shù)、系統(tǒng)時(shí)間、數(shù)據(jù)流序列、數(shù)據(jù)源ID等。
(2)模板流集(Template FlowSet):包含一個(gè)或多個(gè)模板,模板是用于描繪數(shù)據(jù)流中各個(gè)數(shù)據(jù)段的含義,可以在路由器上根據(jù)需要自行設(shè)置模板。
(3)數(shù)據(jù)流集(。Data FlowSet):包含多個(gè)數(shù)據(jù)流,每個(gè)數(shù)據(jù)流集通過模板ID對(duì)應(yīng)某個(gè)模板。數(shù)據(jù)采集端根據(jù)模板來(lái)解析數(shù)據(jù)流。
2 NetFlow流量采集與聚合
2.1 系統(tǒng)概述
根據(jù)NetFlow的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng),其系統(tǒng)結(jié)構(gòu)如圖1所示。
當(dāng)NetFlow采集器接收到從路由器發(fā)送來(lái)的Net-Flow數(shù)據(jù)包后,采集器將進(jìn)行數(shù)據(jù)包的解析和數(shù)據(jù)流聚合,形成多種適合統(tǒng)計(jì)分析需要的數(shù)據(jù),再分門別類地存入數(shù)據(jù)庫(kù)。分析器則根據(jù)前端不同的查詢請(qǐng)求,依照一定的查詢策略從數(shù)據(jù)庫(kù)不同的表中提取相應(yīng)數(shù)據(jù)進(jìn)行分析展現(xiàn)。
本系統(tǒng)的后臺(tái)采集器和聚合處理部分用JAVA編寫實(shí)現(xiàn),數(shù)據(jù)庫(kù)采用開源的MySQL,而NetFlow流量分析利用Tomcat服務(wù)器通過Web方式展現(xiàn),前臺(tái)部分用JSP編寫實(shí)現(xiàn)。工作的重點(diǎn)即在于數(shù)據(jù)采集、數(shù)據(jù)聚合以及數(shù)據(jù)庫(kù)設(shè)計(jì)部分。
2.2 NetFlow流采集
2.2.1 采集器的設(shè)計(jì)
數(shù)據(jù)采集模塊是整個(gè)系統(tǒng)的基礎(chǔ)。由于。NetFlow數(shù)據(jù)流量非常大,為防止丟包系統(tǒng)采用緩沖區(qū)和線程池結(jié)構(gòu),如圖2所示。
當(dāng)采集器監(jiān)聽到一個(gè)NetFlow數(shù)據(jù)包時(shí),將該數(shù)據(jù)包接收到緩沖區(qū),并從包解析線程池中取出一個(gè)線程,根據(jù)相應(yīng)的NetFlow的報(bào)文格式解析出數(shù)據(jù)流信息,將該原始流信息放入緩沖區(qū),然后將原始流存入數(shù)據(jù)庫(kù),同時(shí)采用相應(yīng)的聚合策略聚合原始流生成聚合流并存入相應(yīng)的數(shù)據(jù)庫(kù)中。
2.2.2 NetFlow數(shù)據(jù)包接收與解析
由于NetFlow數(shù)據(jù)是借助于UDP數(shù)據(jù)報(bào)來(lái)傳送,因而倘若后續(xù)的處理速度跟不上數(shù)據(jù)包到達(dá)的速度,則會(huì)出現(xiàn)嚴(yán)重丟包的現(xiàn)象。為解決高速大流量數(shù)據(jù)的及時(shí)接收及較低丟包率問題,采用了多線程的方式來(lái)實(shí)現(xiàn)。用獨(dú)立的兩個(gè)線程分別完成數(shù)據(jù)接收和解析操作:接收數(shù)據(jù)的線程在特定的IP地址監(jiān)聽相應(yīng)的UDP端口,接收到的數(shù)據(jù)暫存在緩沖區(qū)中;解析線程從緩沖區(qū)提取數(shù)據(jù),按照相應(yīng)的報(bào)文格式進(jìn)行解析。由于接收線程和解析線程共享同一個(gè)臨界資源,即接收的緩沖區(qū),需要對(duì)臨界資源進(jìn)行加鎖操作。
下面為部分實(shí)現(xiàn)多線程采集的JAVA代碼實(shí)例,其中packet為接收的NetFlow數(shù)據(jù)包對(duì)象,linkedLst為linkedList容器,利用synchronized進(jìn)行線程間同步。
(1) 接收線程
[!--empirenews.page--]2.3 NetFlow流聚合
NetFlow的原始數(shù)據(jù)數(shù)據(jù)量非常龐大,保存每一條流數(shù)據(jù)的原始記錄將會(huì)使對(duì)數(shù)據(jù)進(jìn)行查詢分析時(shí)產(chǎn)生效率低下的問題,在絕大部分應(yīng)用中也沒有必要把數(shù)據(jù)粒度設(shè)計(jì)得如此之小。所謂流量聚合,是指對(duì)符合NetFlow數(shù)據(jù)格式的原始流記錄根據(jù)一定條件進(jìn)行流量合并,實(shí)現(xiàn)多條流合并為一條的過程,以實(shí)現(xiàn)原始流的壓縮整理。
2.3.1 聚合策略
流量聚合有三個(gè)關(guān)鍵要素:聚合條件(F)、時(shí)間粒度(T)和聚合項(xiàng)(C)。滿足相同聚合條件和時(shí)間粒度的流進(jìn)行流量疊加,并保留聚合項(xiàng)。三元組聚合策略:<F,T,c>,其中:
按照實(shí)際流量分析的需要,從F,T,C中各取出一個(gè)值組成一個(gè)聚合策略。對(duì)于T的粒度要根據(jù)實(shí)際監(jiān)控的時(shí)間長(zhǎng)短和監(jiān)測(cè)精度來(lái)設(shè)置,一般來(lái)說T=3 min適合于當(dāng)天實(shí)時(shí)流量的監(jiān)測(cè);T=30 min用于一周流量的分析;T=3 h用于一月內(nèi)流量的分析。
2.3.2 聚合的實(shí)現(xiàn)
對(duì)于一個(gè)新采集的原始流,必須能根據(jù)其所攜帶的聚合條件信息快速匹配是否已存在與其相同聚合條件的聚合流,若有則做流量疊加,若沒有則創(chuàng)建一條新的聚合流。Hash表具有從Key快速映射到Value的特點(diǎn),這種特點(diǎn)對(duì)于實(shí)時(shí)性較高的聚合非常有意義。圖3為流量聚合的}Iash表設(shè)計(jì)。
在圖3中聚合條件(F)作為Key,聚合項(xiàng)(C)作為Hash函數(shù)的映射值,時(shí)間粒度(T)作為Hash表導(dǎo)出到數(shù)據(jù)庫(kù)的時(shí)間。這樣可以滿足實(shí)時(shí)流量監(jiān)測(cè)的需要,同時(shí)也壓縮數(shù)據(jù)減少存儲(chǔ)空間,提高數(shù)據(jù)的查詢效率。
3 實(shí)際NetFlow流采集與流量監(jiān)測(cè)
在本系統(tǒng)設(shè)計(jì)的數(shù)據(jù)采集器的支持下,系統(tǒng)數(shù)據(jù)庫(kù)為前端分析提供了充足且多樣化的數(shù)據(jù)準(zhǔn)備,前端程序只需通過簡(jiǎn)單的查詢語(yǔ)句即可得到所需的數(shù)據(jù)集,簡(jiǎn)化了查詢的工作量。利用該系統(tǒng)采集NetFlow數(shù)據(jù)包50 000個(gè),時(shí)間持續(xù)約7 h,時(shí)間粒度為3 min,主要檢驗(yàn)丟包情況,以及聚合后壓縮效率。這次采集無(wú)丟包發(fā)生,表1為該系統(tǒng)采集的數(shù)據(jù)結(jié)果。
圖4是系統(tǒng)由所采集的數(shù)據(jù)生成的該時(shí)段的流量監(jiān)測(cè)圖。
4 結(jié) 語(yǔ)
NetFlow數(shù)據(jù)流的海量特征使得服務(wù)器程序的效率至關(guān)重要,因此基于NetFlow的流量監(jiān)測(cè)的主要任務(wù)是如何根據(jù)應(yīng)用保存最重要的網(wǎng)絡(luò)流特征以及如何更高效地實(shí)現(xiàn)數(shù)據(jù)檢索?;贜etFlow特點(diǎn),提出了一套適用于大流量網(wǎng)絡(luò)的流量采集與聚合存儲(chǔ)方案。流量采集通過多線程和緩沖區(qū)機(jī)制實(shí)現(xiàn),有效提高了流量采集的可靠性。采集的原始流經(jīng)聚合,并通過合理的分級(jí)存儲(chǔ)策略進(jìn)行存儲(chǔ)組織,為前端的數(shù)據(jù)分析提供了全面支持。本系統(tǒng)在實(shí)際應(yīng)用中取得了良好效果。下一步還將對(duì)采集和多級(jí)聚合存儲(chǔ)方案進(jìn)行改進(jìn),以豐富系統(tǒng)對(duì)網(wǎng)絡(luò)流量統(tǒng)計(jì)分析功能,并力爭(zhēng)為異常流量分析提供較為完善的數(shù)據(jù)支持。
北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...
關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心東京2022年10月18日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...
關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...
關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車