NetFlow(ネットフロー)とは | 意味や読み方など丁寧でわかりやすい用語解説
NetFlow(ネットフロー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ネットフロー (ネットフロー)
英語表記
NetFlow (ネットフロー)
用語解説
NetFlowは、ネットワーク上を流れる通信(トラフィック)の情報を収集し、分析するための技術である。シスコシステムズによって開発され、現在では業界標準の一つとして広く利用されている。ネットワークのどこで、誰が、誰と、どのようなプロトコルやアプリケーションを使い、どれくらいの量のデータを、いつからいつまで通信したかといった詳細なデータを「フロー」という単位で集計し、ネットワーク管理者に提供する。これにより、ネットワーク全体の状況を可視化し、潜在的な問題の発見や効率的な運用を可能にする。例えば、ネットワーク帯域の異常な消費、不審な通信の検知、サービス品質の監視といった多岐にわたる用途で活用されている。パケットの中身そのものではなく、通信のメタデータを収集する点が特徴であり、これにより広範囲かつ詳細なトラフィック監視を少ないオーバーヘッドで実現できる。システムエンジニアにとって、ネットワークの健全性を維持し、問題発生時に迅速に対処するためには、NetFlowが提供する可視化能力は非常に強力なツールとなる。
NetFlowの動作は主に「エクスポートする機器」と「収集・分析するコレクタ」の二つの要素で構成される。NetFlowに対応したルータやスイッチは、通過するパケットを監視し、特定の条件に基づいて「フロー」を識別する。フローとは、一般的に同じ送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコル番号、ToS (Type of Service) 値、入力インターフェースといった複数の属性が一致する一連のパケットのグループを指す。これらの属性の一つでも異なれば、それは別のフローとして扱われる。
ルータやスイッチは、新しいフローを検出すると、そのフローに関する情報を内部の「フローキャッシュ」に記録し、バイト数やパケット数、通信の開始時刻・終了時刻などを集計していく。フローが終了したり、一定期間通信がなかったり、あるいはキャッシュが満杯になったりすると、その集計されたフロー情報をNetFlowパケットとして指定されたNetFlowコレクタに送信する。この送信処理を「エクスポート」と呼ぶ。
NetFlowコレクタは、複数のNetFlow対応機器からエクスポートされたフローデータを受信し、データベースに保存する。その後、保存されたデータを基に、特定の期間におけるトラフィック量、通信元・通信先、使用プロトコルやアプリケーションなどの情報をグラフやレポート形式で可視化し、分析を可能にする。この分析結果は、ネットワークのボトルネック特定、特定のユーザーやアプリケーションによる帯域の占有状況の把握、異常なトラフィックパターン(例:DoS攻撃の兆候、マルウェアの活動)の検出、サービス品質の低下原因の究明、さらには将来のネットワーク容量計画の立案などに役立つ。
NetFlowには複数のバージョンが存在する。初期のv1やv5は固定フォーマットであったが、v9ではテンプレートベースのフォーマットが導入され、エクスポートするデータフィールドを柔軟にカスタマイズできるようになった。これにより、IPv6のような新しいプロトコルや、MPLS (Multi-Protocol Label Switching) のような特定のネットワーク技術に関する情報も効率的に収集できるようになった。さらに、IETF (Internet Engineering Task Force) によってNetFlow v9をベースに標準化されたIPFIX (IP Flow Information Export) は、NetFlowの概念をシスコ以外のベンダー製品にも広げ、フロー情報収集の業界標準となっている。
NetFlowの活用例としては、社内ネットワークのトラフィックが時間帯によってどのように変化するかを監視し、業務時間中の特定のアプリケーションの利用状況を把握して、より効率的なネットワークリソース配分を検討することが挙げられる。また、外部からの不審な接続試行や、内部から外部への異常なデータ送信をNetFlowデータから検知し、セキュリティインシデントの早期発見と対応に繋げることも可能だ。通信の遅延が発生した際には、特定のサーバーやアプリケーションへの通信が急増していないか、あるいは特定のユーザーが大量のデータを送受信していないかなどをNetFlowコレクタの分析画面で確認することで、迅速な原因特定に貢献する。このように、NetFlowはネットワークの「見える化」を実現し、システムエンジニアがより賢く、よりセキュアにネットワークを運用するための不可欠な技術である。ただし、NetFlowはパケットのヘッダー情報やメタデータは収集するが、パケットのペイロード(中身)までは分析しないため、詳細なコンテンツ分析が必要な場合は、別のパケットキャプチャツールなどと併用する必要があることに留意する必要がある。また、大量のフローデータを処理するためには、高性能なコレクタと十分なストレージ容量が必要となる点も考慮すべきである。