Chinaunix首页 | 论坛 | 博客
  • 博客访问: 443072
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: 系统运维

2006-08-01 18:37:30

現存在 TCP/IP 網路上關於 Traffic Flow 的量測的技術包括
RTFM (Real-Time Flow Measurement)
RMON, RMON2
Proprietary Technologies ()
sFlow ()
LFAP ()
Crane (XACCT)
...

由於 CISCO 在 Router 市場上的重要地位,使得 Netflow 的技術成為 de-facto standard
關於 NetFlow
  • Proprietary by CISCO, but de-facto standard
  • Fast and efficient, implemented for IOS
  • Configurable measurement per 5-tuple
  • Unreliable (measurement & data transport)
  • Hardware-supported on some models
  • Not well documented (re-engineered by Juniper)
  • Version 1-7, fixed data model
  • Version 9 (under development)
  
關於本計劃 由於 NetFlow 量測方式廣泛被使用,相對的量測工具也非常普遍,但可惜的是 NetFlow 只能由少數高價的設備輸出。在本計劃中,希望去實現一個在平凡的網路設備的環境中,也可以製造出 Netflow 的輸出(可謂之為窮人的 NetFlow)
架構 <<很抱歉, 還沒做好 ... >>
設備需求
  • 高速的 PC,最好有兩顆以上的 CPU (單 CPU 也可以), RAM 的需求就要看流量的狀況。在同時很多 flow 的狀況下, Flow cache entries 可能會不夠用,在這時候,這些 flow 可能會掉。除了更改一些 aging time 可以改進之外, 增加一些記憶體並提高 flow cache entries 數 ( 由 command line option -f 參數決定 ) 也是一個方式。 記憶體使用的大小可以在本程式的 UI 環境下鍵入 show memory 來瞭解。 其它的一些 export 的資訊可以用 show ip flow export 來觀查。

  • 雙向 Mirror 且效能良好的 L2/L3 Switch, 像中央大學最近買到的設備只能 mirror 一個方向, 實在非常悲慘。 個人覺得 Extreme 的產品在這方面的功能還不錯, 在 survey 時, 不妨借一台來測試, 並以它為底線, 如此必能買到合用的產品。 要注意的是 mirror port 通常是不能再收資料, 所以 Netflow exporter 的 PC 一定要有兩張以上的網路卡 , 以方便和外界溝通。
NetflowExporter 程式 目前只支援在 i386 平台的 Linux 及 FreeBSD 作業系統

        在 FreeBSD 上安裝方式如下:

         # pkg_add NetflowExporter-0.1.25.tgz

        而在 Linux 則以 rpm 來進行安裝,如:

         # rpm -ivh NetflowExporter-0.1.25-1.i386.rpm


        0.1.x 版有較多的改進, 第一次執行可直接打

        # netflow

        進入 netflow 程式的 UI 介面

        UI 的提示符號是 hostname::netflow> , 可先下一個 show configuration 的指令來了解目前系統的設定。

        這個系統有支援 command line completion 的功能, 比方說你要打 show configuration 這個指令, 可以先打 sh 按一個 鍵, 就會跑出 show 出來, 再打一個 con, 再案一個 鍵, 就會跑出 configuration 出來。如果不知道有什 麼指令可以下, 按一個 ? 就會列出系統支援的指令

        你可能需要的指令有 listen on eth1, 如果你要監聽的 interface 在 eth1 的話。
        另外你需要利用類似 ip flow-export destination 192.168.1.1 9991 , 的指令來指定 NetflowExporter 要輸出的位址。
        最後你需要 enable ip flow-export 的指令來啟動 export 的功能。

        設定完成之後, 用 show configuration 再確認一下無誤之後, 用 write 指令將設定存下來, 設定檔會存在 /etc/netflow.conf。

        如果你在設定時有動到關於 buffer/cache 的 entry 或是 interface 時, 這些設定不會立即生效, 你必需存檔重跑一次。離開 NetflowExprter 有兩個指令, 第一個指令是 exit, 這個指令是離開 client 的程式, server 的部份會繼續執行。
        第二個指令是 terminate, 這個指令除了離開 client 之外, server 也會停止。

        在執行 netflow 時, 會檢查是否有 server 程式在 running, 如果 有, 則自動當成 client 程式與 server 連結。如果 server 不存在, 則自動當成 client/server 程式, 其中 client 程式可自行脫離。如果 希望在 batch mode 跑 server 程式, 可用 netflow start 指令。如果 想關掉 netflow 程式的話可以用 netflow stop 指令。

        這裡有一些程式支援的指令, 但這些是舊的。

        這個程式被設計使用在一個高速的 Gigabit 網路上, 這個流量幾乎是完全撞頂的情形。 為了減少 packet drop, 系統會跑 MultiThreading, 每個 Thread 之 間以 memory buffer 來交換。我的系統是一台 dual Xeon 2.8G 的 機器, 透過 HyperThreading 的技術, 這台電腦相當於有四顆 CPU。 我一直苦惱於 packet drop 的問題。 所以這支程式最佳化在一個具有三顆 CPU 以上的機器來執行, 我自 己的環境, 整個程式使用了 1.2G 的記憶體來做 buffer 以免 packet 來不及處理而 drop 掉。
        雖然程式被最佳化在多 CPU 的系統, 但不代表在單 CPU 無法工作, 只是為了平行化而將一件工作分成多段時, 單 CPU 用分時的方式去做這些分段工做時會多一些額外的 overhead。

        這個網頁後面有列一些類似功能的程式, 我想他們做的一定會更好。 如果你還知道有其它程式不在此列表的, 非常希望您不吝通知我, 不勝感激。

        相關工具
        Caligare Flow Inspector Netflow monitor and analyzer with many graph statistics, low level searching, application recognizer and utilization maps.
        flow-tools
        CAIDA cflowd
        FlowScan
        交大的 flow-capture
        相關網站
        關於本程式 本程式為 Jiann-Ching Liu 所撰寫, 可以免費下載, 自由使用。 有關本程式的任何問題或建議也請直接 mail 給我。
          
        類似程式
        fprobe
        fprobe
        softflowd
        pfflowd
        nProbe
        floma
        阅读(2213) | 评论(0) | 转发(0) |
        0

        上一篇:Netflow(FreeBSD)

        下一篇:MRTG流量监控

        给主人留下些什么吧!~~