Freebsd

如何在 freebsd 路由器上收集完整的網路使用統計資訊?

  • April 13, 2019

我有一個 freebsd 盒子,它充當從 LAN 到外界的路由器。它有幾個 Internet 提供商、OpenVPN 伺服器和客戶端、NAT 等。

我想獲得關於何時、誰、給誰、通過哪個提供商、通過哪個協議以及發送了多少字節的完整統計資訊。

我同意最小的時間尺度是一個小時,即不需要毫秒精度。

我嘗試了 vnstat2、ntopng 和其他一些程序,但它們似乎沒有我需要的東西或者不明顯。

我不明白,為什麼這個功能不容易獲得。但是我不擅長freebsd,所以請給我一些線索。

要獲取網路事務的詳細資訊,您已經實現了適用於 FreeBSD 或 Linux 的 Netflow 生成器:

ng_netflow

名稱 ng_netflow - Cisco 的 NetFlow 實施

描述 ng_netflow 節點在執行 FreeBSD 的路由器上實現 Cisco 的 NetFlow 導出協議。ng_netflow 節點偵聽傳入流量並辨識其中的唯一流。流通過端點 IP 地址、TCP/UDP 埠號、ToS 和輸入介面來區分。過期流在 NetFlow 版本 5/9 UDP 數據報中從節點導出。

至於 NetFlow 本身:

NetFlow 是 Cisco 開發的一種網路協議,用於收集 IP 流量資訊和監控網路流量。通過分析流量數據,可以建構網路流量和流量的圖景。

還有rfc 3954 - NetFlow 服務導出版本 9

為了儲存 Netflow 數據,您還需要所謂的伺服器收集器。它可以是 Linux 或 FreeBSD 機器。它不應該安裝在實際的路由器上。一種這樣的已知實現是nfsen

NfSen 是一個基於圖形 Web 的 nfdump netflow 工具前端。

NfSen 允許您:

  • 顯示您的 netflow 數據:使用 RRD(循環數據庫)的流、數據包和字節。

  • 輕鬆瀏覽 netflow 數據。

  • 在指定的時間跨度內處理 netflow 數據。

  • 創建歷史以及連續的配置文件。

  • 根據各種條件設置警報。

  • 編寫您自己的外掛以定期處理 netflow 數據。

nfsen2

請注意,根據您的可用頻寬,生成 NetFlow 可能會對 CPU 造成負擔。在某些情況下,一種已知的策略是對路由器的交換機埠進行鏡像,並使用另一台機器進行這些操作。

在達到一定的頻寬門檻值後,如果需要生成 NetFlow,則使用專業路由器可能更有意義。

作為最後的警報,有了 NAT,必須在內部/LAN 介面中擷取 NetFlow,否則您將失去對誰在做什麼的感覺。

我為 5-6 個月的流量使用了大約 100GB 的數據,使用 NfSen 從 Cisco 設備收集 NetFlow 數據,您的里程可能會有所不同。

引用自:https://unix.stackexchange.com/questions/327577