隨時監控網路的任何風吹草動,才能在問題還未惡化之前即時排除,而NetFlow就是一項符合以上管理需求的網路監測功能,本文將示範如何利用常見的Cacti來收集匯整NetFlow相關資訊,讓企業內的網路管理維護變得更容易。
說到網路監控,NetFlow就是市場上一項相當成熟的網路監控功能,它也是網路管理中不可或缺的一部分。網管人員總是想知道網路中究竟有哪些行為發生、網路裡的電腦有沒有異常行為、有沒有往外丟出一些奇怪的封包。
在本文中,採用簡單易用的Cacti來收集匯整NetFlow的相關資訊,讓NetFlow從印象中的高階管理工具變成可簡易操作維護的常備工具。
NetFlow簡介
NetFlow最早由Cisco提出,後來有許多廠商也跟著提出相同或類似的網路監控功能。這裡可以用一簡易的圖例來說明其輸出,如圖1所示。
在圖1中,可以看到在NetFlow的通訊過程中,其訊息包含了啟始時間、延續時間、協定、來源IP及Port、目的IP和Port、封包數量、封包大小及Flow的數量。此例中,以文字方式呈現,若使用適合的GUI軟體或搭配網頁介面,就可以透過圖型化的方式輸出,以方便閱覽。
|
▲圖1 NetFlow的輸出結果。 |
架構及作業環境說明
圖2是NetFlow的架構圖,圖中的NetFlow Exporter就是常用的網路設備,一般而言,能夠提供NetFlow資訊的設備大多是路由器或防火牆,另外較高階的IP分享器或開源軟體部分也提供此功能。
如圖2所示,本文中所要架設的伺服器包含了NetFlow Collector和Analysis Console的角色。
|
▲圖2 NetFlow架構圖。 |
至於Collector的部分,必須在伺服器上安裝flow-tools軟體,而Analysis的角色則是由Cacti來擔任。
而實作所採用的軟體及套件版本,如下所示:
‧ 作業系統:Ubuntu 14.04.3 LTS
‧ 相關套件及其版本:Cacti 0.8.8b、Cacti Plugin「flowview 1.1-1」、flow-tools 0.68-12.1build1。
如前所述,在Ubuntu上安裝flow-tools來收集NetFlow的封包,並在Ubuntu上安裝Cacti及其外掛程式(Plugin)flowview以分析NetFlow的封包。
安裝及設定flow-tools
在Ubuntu上必須安裝flow-tools,讓其做為NetFlow Collector,以下為安裝程序:
安裝完成後,先以預設值測試能否啟動flow-capture,在此之前,先建立預設的目錄:
接著,執行flow-capture:
執行flow-capture後,可使用netstat指令檢查它是否已順利執行,如圖3所示,指令為「netstat -anuptl | grep flow」,預設會開啟UDP Port 3000和3002。
|
▲圖3 顯示flow-capture執行情形。 |
以NetFlow Exporter測試運作情形
如前所述,可以使用各類的設備作為NetFlow Exporter,在此使用Cisco Router進行驗證,指令如下:(這款Router的IOS版本較舊,請依照所使用的設備進行調整)
指令的部分,只要指定Destination IP、UDP Port及版本即可。這裡指定目的IP是10.100.33.77,UDP Port為3000,所帶的Source IP為Interface 0/0的IP,其版本為5。
接著回到伺服器上,使用tcpdump指令來驗證NetFlow封包是否有進入伺服器,如圖4所示,指令內容為「tcpdump udp port 3000」。
|
▲圖4 使用tcpdump驗證伺服器是否收到封包。 |