发新话题
打印

NetflowExporter Project

NetflowExporter Project

http://sunsite.cc.ncu.edu.tw/NetflowExporter/

關於本計劃
由於 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 一定要有兩張以上的網路卡 , 以方便和外界溝通。

在 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 按一個 <tab> 鍵, 就會跑出 show 出來, 再打一個 con, 再案一個 <tab> 鍵, 就會跑出 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。

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


NetflowExporter Project

現存在 TCP/IP 網路上關於 Traffic Flow 的量測的技術包括
IETF Standards RTFM (Real-Time Flow Measurement)
RMON, RMON2
Proprietary Technologies NetFlow (Cisco)
sFlow (InMon)
LFAP (Riverstone)
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 下載 NetflowExporter-0.1.25.tgz
Linux 下載 NetflowExporter-0.1.25-1.i386.rpm [static]
Linux 下載 NetflowExporter-0.1.26-1.i386.rpm [shared]
Linux 下載 NetflowExporter-0.1.27-1.i386.rpm [fedora core 4]
在 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 按一個 <tab> 鍵, 就會跑出 show 出來, 再打一個 con, 再案一個 <tab> 鍵, 就會跑出 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.
--------------------------------------------------------------------------------
http://www.caligare.com/
flow-tools http://www.splintered.net/sw/flow-tools/
CAIDA cflowd http://www.caida.org/tools/measurement/cflowd/
FlowScan http://net.doit.wisc.edu/~plonka/FlowScan/
交大的 flow-capture http://netflow.nctu.edu.tw/netflow.html

相關網站
http://www.switch.ch/tf-tant/floma/software.html
http://www.splintered.net/sw/flow-tools/

關於本程式
本程式為 Jiann-Ching Liu 所撰寫, 可以免費下載, 自由使用。 有關本程式的任何問題或建議也請直接 mail 給我。  
   
類似程式
fprobe http://fprobe.sourceforge.net/
fprobe http://psi.home.ro/flow/  
softflowd http://www.mindrot.org/softflowd.html  
pfflowd http://www.mindrot.org/pfflowd.html  
nProbe http://www.ntop.org/nProbe.html  
floma http://www.switch.ch/tf-tant/floma

TOP

Linux 下載 NetflowExporter-0.1.25-1.i386.rpm [static]
Linux 下載 NetflowExporter-0.1.26-1.i386.rpm [shared]
Linux 下載 NetflowExporter-0.1.27-1.i386.rpm [fedora core 4]
附件: 您所在的用户组无法下载或查看附件

TOP

发新话题
最近访问的版块