• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
    CAIAC 2025
    2025工業(yè)安全大會
    OICT公益講堂
    當(dāng)前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    基于NetFlow的網(wǎng)絡(luò)流量采集系統(tǒng)設(shè)計
    • 企業(yè):控制網(wǎng)     領(lǐng)域:工業(yè)以太網(wǎng)     行業(yè):綜合    
    • 點擊數(shù):2423     發(fā)布時間:2009-11-27 16:59:35
    • 分享到:
        摘  要:本文主要介紹流量分析中主要使用的NetFlow技術(shù),并根據(jù)NetFlow的特點,給出了一個基于NetFlow的網(wǎng)絡(luò)流量采集系統(tǒng)設(shè)計實例。

        關(guān)鍵詞:
    NetFlow;流量采集;多線程

        Abstract:
    By analyzing the principles of the widely-used NetFlow technology,this paper,according to the characteristics of data flow of NetFlow,Provides us with a practical illustration of system design on collecting data of NetFlow.

        Key words:
    NetFlow; flow collection; multi-thread
     
        引言

        隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,各種基于網(wǎng)絡(luò)的業(yè)務(wù)和應(yīng)用不斷增加,這些業(yè)務(wù)和應(yīng)用對網(wǎng)絡(luò)性能和安全提出了更高的要求。在這種環(huán)境下,網(wǎng)絡(luò)流量數(shù)據(jù)對網(wǎng)絡(luò)服務(wù)質(zhì)量和網(wǎng)絡(luò)安全管理等變得十分重要。因此,對網(wǎng)絡(luò)流量及相關(guān)情況的深入分析,是網(wǎng)絡(luò)管理的重要環(huán)節(jié)。

        目前,網(wǎng)絡(luò)流量分析技術(shù)主要有基于SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、基于包嗅探和基于Flow(流)等幾種。本文研究探討的NetFlow則是基于Flow技術(shù)。
     
        1 NetFlow技術(shù)

        1
    .1 NetFlow技術(shù)介紹

        NetFlow技術(shù)于1996年由Cisco的Darren Kerr和Barry Bruins發(fā)明,它起初用于網(wǎng)絡(luò)設(shè)備對數(shù)據(jù)交換進(jìn)行加速,并同步實現(xiàn)對高速轉(zhuǎn)發(fā)的IP數(shù)據(jù)流(Flow)進(jìn)行測量和統(tǒng)計。經(jīng)過多年的技術(shù)演變和發(fā)展,NetFlow技術(shù)已成為當(dāng)前最主要的網(wǎng)絡(luò)流量分析和計量行業(yè)標(biāo)準(zhǔn)。利用NetFlow技術(shù)可以實現(xiàn)網(wǎng)絡(luò)流量監(jiān)測、用戶行為監(jiān)控、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)規(guī)劃以及流量計費(fèi)等功能。

        NetFlow技術(shù)已經(jīng)在大多數(shù)Cisco路由器和交換機(jī)中廣泛應(yīng)用,并得到了主流廠商(諸如Juniper、Foundry、Extreme等)的支持。國內(nèi)華為推出的NetStream技術(shù)與NetFlow技術(shù)兼容。

        1
    .2 NetFlow技術(shù)原理

        NetFlow技術(shù)基于流。所謂流,就是在高速數(shù)據(jù)交換中一定時間段內(nèi)給定的源端和目的端所發(fā)生的具有相同屬性的連續(xù)數(shù)據(jù)包的集合。一條NetFlow流一般由以下7個關(guān)鍵字段惟一標(biāo)識:

    (1)源地址
    (2)目的地址
    (3)源端口
    (4)目的端口
    (5)第3層協(xié)議類型(如TCP、UDP)
    (6)服務(wù)類型(ToS)
    (7)輸入的邏輯端口
        每當(dāng)路由器或交換機(jī)的端口上接收到數(shù)據(jù)包時,NetFlow就會掃描這7個字段,判斷此數(shù)據(jù)包是否屬于一個已經(jīng)存在的流。若是,則相應(yīng)流的流量統(tǒng)計將增加。否則,在NetFlow的高速緩沖中生成一條新的流記錄。在新的流不斷產(chǎn)生的同時,NetFlow的高速緩沖內(nèi)過期的流以UDP數(shù)據(jù)報的方式導(dǎo)出。

        路由器每秒檢查一次NetFlow的高速緩存,在如下情況時輸出流:

    (1)流TCP終結(jié);
    (2)流緩存滿;
    (3)某個流中止;
    (4)某個流超時(默認(rèn)值30分)
         1.3 NetFlow數(shù)據(jù)格式

         NetFlow導(dǎo)出的數(shù)據(jù)由1個包頭和1~30個流記錄組成。NetFlow導(dǎo)出的數(shù)據(jù)格式共有5個版本,它們分別是Version 1、Version 5、Version 7、Version 8和Version 9,其中V5是最為流行和成熟的版本,目前已得到最廣泛的使用,而最新的V9已經(jīng)被列入IETF的標(biāo)準(zhǔn)。NetFlow V5版本數(shù)據(jù)包的包頭格式和流記錄格式分別如圖1和圖2所示。
     

                    

    圖1 V5版本數(shù)據(jù)包的包頭格式

                    
     
    圖2 V5版本數(shù)據(jù)包的流記錄格式
     
         2 NetFlow網(wǎng)絡(luò)流量采集與聚合

         2
    .1 系統(tǒng)概述

         根據(jù)NetFlow技術(shù)的特點結(jié)合華北科學(xué)院圖書館網(wǎng)絡(luò)環(huán)境,本文設(shè)計并實現(xiàn)了一個網(wǎng)絡(luò)流量采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖3所示:

                  
     
    圖3 NetFlow流量采集與聚合系統(tǒng)結(jié)構(gòu)

         系統(tǒng)在Windows平臺下使用C#作為開發(fā)語言,SQL SERVER 2005作為數(shù)據(jù)庫。

        2
    .2 NetFlow在Cisco Catalyst 6509上的配置

        華北科技學(xué)院圖書館網(wǎng)絡(luò)環(huán)境中配置1臺Cisco Catalyst 6509交換機(jī)。NetFlow在交換機(jī)上配置如下:

    Switch(config)#mls netlfow
    !Enables NetFlow on the PFC(Policy Feature Card)
    Switch(config)#mls flow ip full
    !Configures flow mask on the PFC
    Switch(config)#mls nde sender version 5
    !Configures NDE(NetFlow Data Export) on the PFC
    Switch(config)#ip flow-export source loopback 0
    Switch(config)#ip flow-export destination 10.1.14.41 9996
    !Configures NDE on the MSFC(Multilayer Switch Feature Card) with the NetFlow collector IP address and the application port number 9996
    ……
        配置完成后可以使用Show mls netflow ip命令顯示NetFlow高速緩沖中的流記錄詳情。

        2
    .3 NetFlow流量采集與聚合

        由于NetFlow數(shù)據(jù)是由UDP數(shù)據(jù)報的形式導(dǎo)出,因而隨著數(shù)據(jù)量的增加數(shù)據(jù)解析速度跟不上數(shù)據(jù)包到達(dá)速度,則會出現(xiàn)嚴(yán)重的丟包現(xiàn)象。為了實現(xiàn)大流量數(shù)據(jù)及時接收和低丟包率,NetFlow流量采集與聚合采用多線程實現(xiàn)。
    NetFlow流量采集與聚合器結(jié)構(gòu)如圖4所示:

               
     
    圖4 NetFlow流量采集與聚合器結(jié)構(gòu)
        (1)UDP監(jiān)聽線程

        根據(jù)在交換機(jī)上配置的端口,系統(tǒng)啟動相應(yīng)的監(jiān)聽端口,并采集從交換機(jī)上送來的UDP數(shù)據(jù)報,對采集到的每個數(shù)據(jù)報,取出其凈載(即NetFlow數(shù)據(jù)),并將該NetFlow數(shù)據(jù)壓入隊列(Queue)。以下為部分代碼:

                 
       
        (2)NetFlow數(shù)據(jù)拆分線程

        首先定義流記錄結(jié)構(gòu),然后從隊列取出NetFlow數(shù)據(jù),再根據(jù)定義的結(jié)構(gòu)將NetFlow數(shù)據(jù)進(jìn)行拆分,分離出源IP、目的lP、源端口、目的端口、數(shù)據(jù)包大小、協(xié)議類型等信息,最后將這些數(shù)據(jù)壓入內(nèi)存數(shù)據(jù)表(DataTable)中。以下為部分代碼:


                  
      
        (3)聚合與寫數(shù)據(jù)庫線程
        每隔3分鐘,從內(nèi)存數(shù)據(jù)表中取出數(shù)據(jù),根據(jù)源IP、目的IP進(jìn)行聚合,將聚合結(jié)果保存在數(shù)據(jù)庫。以下為部分代碼:

                   
        3 實際的流量采集與監(jiān)測

        在本系統(tǒng)的支持下,系統(tǒng)數(shù)據(jù)庫為前端分析提供了充足且多樣化的數(shù)據(jù)準(zhǔn)備,前端程序只需通過簡單的查詢語句即可得到所需的數(shù)據(jù)集,極大簡化了查詢的工作量。圖5為某時段系統(tǒng)采集的數(shù)據(jù)生成的流量監(jiān)測圖。

                  
     
    圖5 某時段流量監(jiān)測圖
     
        4 結(jié)束語

        本文基于NetFlow的特點,提出了一套適用于高速大流量網(wǎng)絡(luò)的流量采集方案。流量采集通過多線程實現(xiàn),有效提高了流量采集的可靠性。采集的原始流經(jīng)聚合和存儲,為前端的數(shù)據(jù)分析提供了全面支持。本系統(tǒng)在實際應(yīng)用中取得了良好效果。
     
        參考文獻(xiàn):

        [1] Cisco System Inc. NetFlow Services Solution Guide. 2007.

        [2] Cisco System Inc. Introduction to Cisco IOS NetFlow – A Technique Overview. 2007.

        [3]http://www.cisco.com/en/US/products/hw/switches/ps708/products_configuration_example09186a0080721701.shtml

        [4] 郭劍云,曹慶華. NetFlow流量采集與聚合的研究實現(xiàn). 現(xiàn)代電子技術(shù),2009(7).

        [5] 袁梅宇. 高效率多線程網(wǎng)絡(luò)流量采集處理的關(guān)鍵技術(shù)和算法. 計算機(jī)工程,2004(增).

        [6] 徐川,唐紅,趙國鋒. 降低高速網(wǎng)絡(luò)流量測量器報文丟失率技術(shù)的研究. 計算機(jī)工程 2006(16).

    熱點新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: