web-dev-qa-db-ja.com

freebsdルーターで完全なネットワーク使用統計を収集する方法は?

私は、LANから外の世界へのルーターとして機能するfreebsdボックスを持っています。いくつかのインターネットプロバイダー、OpenVPNサーバーとクライアント、NATなどがあります。

いつ、誰が、誰に、どのプロバイダーを介して、どのプロトコルを介して、そして何バイトが送信されたかについての完全な統計が欲しいのですが。

最小の時間スケールが1時間になることに同意します。つまり、ミリ秒の精度は必要ありません。

Vnstat2、ntopng、その他のプログラムを試しましたが、必要なものがないか、はっきりしていません。

この機能が簡単に利用できない理由がわかりません。しかし、私はfreebsdが苦手なので、手がかりを教えてください。

3
Dims

ネットワークトランザクションの詳細を取得するために、FreeBSDまたはLinux用のNetflowジェネレーターの実装があります。

ng_netflow

NAMEng_netflow-シスコのNetFlow実装

説明ng_netflowノードは、FreeBSDを実行しているルータにCiscoのNetFlowエクスポートプロトコルを実装します。 ng_netflowノードは着信トラフィックをリッスンし、その中の一意のフローを識別します。フローは、エンドポイントIPアドレス、TCP/UDPポート番号、ToS、および入力インターフェイスによって区別されます。期限切れのフローは、NetFlowバージョン5/9UDPデータグラムでノードからエクスポートされます。

NetFlow自体について:

NetFlowは、IPトラフィック情報を収集し、ネットワークトラフィックを監視するためにシスコが開発したネットワークプロトコルです。フローデータを分析することにより、ネットワークトラフィックフローとボリュームの全体像を構築できます。

また rfc 3954 --NetFlow Servicesエクスポートバージョン9

Netflowデータを保存するには、サーバーコレクターと呼ばれるものも必要です。 LinuxまたはFreeBSDボックスのいずれかです。実際のルーターにはインストールしないでください。そのような既知の実装の1つは nfsen

NfSenは、nfdumpnetflowツール用のグラフィカルなWebベースのフロントエンドです。

NfSenを使用すると、次のことができます。
-ネットフローデータを表示します:RRD(Round Robin Database)を使用したフロー、パケット、バイト。
-NetFlowデータを簡単にナビゲートします。
-指定された期間内にNetFlowデータを処理します。
-履歴と継続的なプロファイルを作成します。
-さまざまな条件に基づいてアラートを設定します。
-NetFlowデータを定期的に処理する独自のプラグインを作成します。

nfsen2

使用可能な帯域幅によっては、NetFlowの生成がCPUに負担をかける可能性があることに注意してください。場合によっては、既知の戦略は、ルーターのスイッチポートのミラーリングを実行し、それらの操作に別のマシンを使用することです。

帯域幅の特定のしきい値の後、NetFlowを生成する必要がある場合は、プロのルーターを使用する方が理にかなっています。

最後のアラートとして、NATを使用すると、NetFlowを内部/ LANインターフェイスでキャプチャする必要があります。そうしないと、誰が何をしているのかがわかりなくなります。

Cisco機器からNetFlowデータを収集するNfSenを使用して、5〜6か月のトラフィックで約100 GBのデータを使用しますが、マイレージは異なる場合があります。

7
Rui F Ribeiro