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