NetFlowは、ネットワーク機器を流れる通信を「フロー」としてまとめ、だれがどこへどれだけ通信したかをつかむための仕組みです。通信の中身までは見ませんが、回線の使われ方や、ふだんと違う通信に早く気づく助けになります。この記事では、NetFlowで見えるものと見えないもの、v5・v9・IPFIXの違い、導入時の考え方、運用での見方を順に説明します。

まず押さえたいのは、NetFlowが「パケットそのもの」ではなく「通信の要約(フロー)」を扱う技術だという点です。この前提を踏まえ、次の順で見ていきます。
NetFlowは、もともとCisco社が作った、通信の流れをつかむための仕組みです。ルーターやスイッチなどの機器が、通過する通信を「フロー」としてまとめ、送信元/宛先、ポート、プロトコル、通信量、始まった時刻と終わった時刻などをフローレコードとして出します。
ここで大事なのは、NetFlowが通信の中身(ペイロード)を集める仕組みではないことです。NetFlowは「だれが・どこへ・どれだけ・いつ」通信したかを見るのが得意です。内容そのものを見たい場合は、パケットキャプチャのような別の方法が要ります。
NetFlowを理解するには、なぜ「フロー」という考え方が広がったのかを知っておくと分かりやすくなります。
ネットワークは、たくさんの通信が流れる道のようなものです。問題が起きたときや回線の使い方を考えるときに、すべてのパケットを保存して調べる方法もありますが、現実には負担が大きくなりやすいです。通信量が増えるほど、保存先や処理の負担も重くなります。
そこで出てきたのが、パケットを要約して扱うという考え方です。通信を「フロー」としてまとめることで、見るべき情報を残しつつ、現場で扱いやすい量に抑えやすくなります。
1990年代に、Cisco社は通信の流れを効率よく見るための方法としてNetFlowを開発しました。これにより、通信の様子を、比較的軽い負担でつかみやすくなりました。
その後、ネットワーク機器の役目は、単なる転送だけでなく、制御、見える化、安全面へと広がりました。これに合わせてNetFlowも広がり、テンプレートを使う形を取り込みながら、IETFで決められたIPFIXへつながっていきます。
NetFlowを理解するには、まず「フロー」と「フローレコード」の考え方を押さえるのが近道です。
フローは、ネットワーク上の通信を、一定の条件でひとまとまりとして扱う単位です。代表例としては、次のような情報、いわゆる5タプルで同じ通信を見分けます。
機器や設定によっては、これに加えて、入ってきたインタフェース、出ていくインタフェース、ToS/DSCP、TCPフラグ、AS番号、次ホップなども含まれます。
フローレコードは、フローについての要約情報です。ふつうは次のような値が入ります。
これにより、どの端末が、どの相手と、どれくらいの量を、どの時間帯に通信したかが分かります。たとえば、夜間に特定端末から外へ大量送信している、あるサーバーへ接続が集中している、特定ポートだけ急に増えている、といった変化を見つけやすくなります。
NetFlowは、おおむね次の流れで動きます。
ここで大事なのがタイムアウトです。通信が続く間ずっと送るのではなく、「しばらく更新がない」「一定時間が過ぎた」といった条件で、まとめて送ります。反映の速さと負担のつり合いは、ここで調整します。
NetFlowには複数の形式があります。現場では、まず「v5」「v9」「IPFIX」の違いを押さえると混乱しにくくなります。
NetFlow v5は、長く使われてきた形式の一つです。入る項目が固定なので作りが比較的単純で、多くの機器やコレクターが対応してきました。その一方で、新しい項目を足しにくい弱みがあります。
NetFlow v9は、テンプレートベースの形式です。「このレコードには何が入るか」を示すテンプレートを送り、その内容に沿ってフローレコードを送ります。テンプレートは運用中も再送されるため、コレクター側はその扱いを正しく保つ必要があります。これにより、目的に合わせて集める項目を広げやすくなりました。
v9では自由度が上がる反面、コレクター側でテンプレートをきちんと扱えないと表示が乱れることがあります。テンプレートの切れ目や再送の扱いで表示が欠けたように見えることもあるため、コレクターとの相性や設定は軽く見られません。
IPFIX(IP Flow Information Export)は、IETFで標準化されたフロー情報の出し方です。テンプレートを使う点はv9と近い一方で、ベンダーが違っても扱いやすい形を目指して整えられています。
現場では「IPFIX=NetFlow v10」と呼ばれることもありますが、厳密にはNetFlowの番号というより、標準として決められた別の方式と見た方が誤解が少なくなります。
Flexible NetFlowは、主にCisco機器で使われる考え方で、何をキーにフローを作るか、何を集めるか、どこへ出すかを柔軟に決められます。目的に合った取り方ができる反面、設計を誤ると取りたい情報が足りなかったり、取りすぎて負担が増えたりします。
NetFlowは「パケット全部」ではなく「要約」を扱うため、現場で見たい流れをつかみやすいのが強みです。
NetFlowを使うと、ネットワーク全体の流れを広く見やすくなります。たとえば、次のような問いに答えやすくなります。
その結果、障害が起きたときに、どこで増えたのか、どこが詰まっていそうかを早く当てやすくなります。
NetFlowは時間を追ってためることで、増減の流れを見るのに向きます。ピークの時間、増え方、特定のサービスへの偏りなどを見て、回線の増速や機器の入れ替えを考える材料にできます。パケットキャプチャよりも扱う量を抑えやすく、長く残す運用にも向きます。
NetFlowだけで攻撃を断定するのは難しいものの、「いつもと違う」を見つける材料としては強力です。たとえば、次のような兆しを見つける助けになります。
ただし、フローには内容そのものは入りません。警告の裏を取るには、端末のログ、プロキシのログ、EDR、DNSのログなどと合わせて見るのが現実的です。
NetFlowは有効化するだけでも通信の傾向は見えてきますが、安定して使うには設計が重要です。特に「どこで取るか」「どの形式で出すか」「どれだけ残すか」の三つを先に決めると、後の設定や運用がぶれにくくなります。
まず、使う機器がNetFlowや同等のフロー機能に対応しているかを確認します。ここで見たい点は次の通りです。
機器によっては、フロー機能を有効にするとCPU負荷が上がることがあります。特に通信量が多い環境では、後で触れるサンプリングや、どこで取るかの見直しが必要です。
機器やベンダーでコマンドは違いますが、流れはおおむね共通です。
ここで迷いやすいのは「どこで取るか」です。拠点のWAN出口で取れば外向き通信が見えやすく、データセンター側で取ればサーバー間の通信が見えやすくなります。何のために見るのかに合わせて決めるのが現実的です。
フローコレクターは、フローデータを受け取り、保存し、検索や表示に使う役目を持ちます。導入時には次の点が重要です。
特にv9やIPFIXでは、テンプレートの扱いが安定性の肝になります。機器側のテンプレート再送の間隔と、コレクター側でどれだけ保持するかのつり合いが悪いと、表示が欠けたように見えることがあります。
NetFlowは集めるだけでは十分ではありません。どの切り口で見るかを決めるほど、価値が出やすくなります。ここでは、現場で使いやすい見方を紹介します。
見方の基本は、まず上位Nの切り口を固定することです。たとえば次のような切り口は、多くの環境で使いやすいです。
「いつも上位に出るもの」と「今日だけ上位に出るもの」を見比べるだけでも、気になる通信の当たりを付けやすくなります。
異常を見るときは、まず平常時の流れを知ることが前提です。いきなり異常を探すのではなく、時間帯や曜日ごとの普段の流れを見て、そこからのずれを見る方が実用的です。
たとえば、次のような変化は実際によく見ます。
ただし、フローには内容そのものは入りません。警告の裏を取るには、端末側のログやプロキシのログと合わせて見る必要があります。NetFlowは、早く気づくための入口として置くのが向いています。
回線や経路を見直すときは、混んでいるリンクと、その原因になる通信を結び付けるのが基本です。たとえば、WAN回線が苦しいときに、上位通信がバックアップなのか、OS更新なのか、動画会議なのか、クラウド同期なのかが分かると、時間をずらす、帯域を絞る、経路を見直すといった対策を考えやすくなります。
ここでサンプリングを使っている場合は注意が要ります。サンプリングは負担を下げる代わりに、少量で短い通信が見えにくくなることがあります。大きな通信の流れを見るには向いていますが、小さなスキャンの兆しまで追いたい場合は、別のログも使う方が現実的です。
NetFlowは便利ですが、入れた後に詰まりやすい所もあります。ここを先に押さえると運用が安定しやすくなります。
通信量が多い環境では、全フローをそのまま扱うと機器やコレクターの負担が大きくなることがあります。その場合は、サンプリングで負担を下げます。ただし、サンプリングを入れると通信量は推定値になり、短い通信は見えにくくなることがあります。
HTTPSのように暗号化された通信が増えるほど、パケットの中身を見るのは難しくなります。一方でNetFlowは中身を見ないため、暗号化の有無にかかわらず、相手、量、時間帯を追えます。暗号化が当たり前の時代でも、フロー監視が重く見られる理由の一つです。
フロー情報には通信の中身は入りませんが、通信先や頻度、時間帯から、利用者の行動をある程度推し量れることがあります。何のために集めるか、どれだけ残すか、だれが見られるか、外へ持ち出してよいかを決め、社内の決まりとそろえて運用することが大切です。
NetFlowは、今後も現場で扱いやすいフローの見方として使われ続けると考えられます。
IPFIXのような標準の方式が広がることで、ベンダーが違ってもフロー情報を扱いやすくなります。今後も、SIEMのような分析基盤とつなぐ前提で使われる場面は増えていくでしょう。
フロー監視は安全面だけでなく、使われ方の把握やサービス品質の見直しにも役立ちます。ネットワークが複雑になるほど、全体の流れをつかむための仕組みとして価値が上がります。
ここでは、NetFlowが現場でどう使われるかを、用途ごとに見ます。
外部向けの急な大容量送信、普段と違う宛先への接続増加、特定サーバーへの集中通信などをNetFlowで見つけ、端末のログやログインの記録と合わせて調べます。NetFlowは、侵入の確証を出すというより、調査の出発点として役立ちます。
クラウド利用が増えると、どの拠点や部署が、どのクラウドへどれくらい通信しているかが、費用や品質に直結します。NetFlowで外向き通信の流れを見えるようにすると、回線の考え方やローカルブレイクアウト、帯域制御を考える材料になります。
データセンターでは、サーバー間の通信が増えることがあります。フローで偏りを見つけ、配置の見直しや経路の調整、ロードバランスの調整につなげると、性能を上げる手がかりになります。
この記事では、NetFlowの考え方から、v5・v9・IPFIXの違い、導入時の考え方、運用での見方までを説明しました。NetFlowは「通信の要約」を扱うことで、ネットワーク全体の流れをつかみやすくし、障害が起きたときの初動や、回線の見直し、安全面の見張りを支えます。
一方で、NetFlowは万能ではありません。内容を見たいときは別の方法が必要で、サンプリングやテンプレートの扱いにも注意が要ります。何のために集め、どこで取り、どう見るかを決め、他のログと組み合わせることで、NetFlowの価値はより生きます。
NetFlowは、ネットワーク機器が通過する通信を「フロー」としてまとめ、送信元/宛先、ポート、通信量、時刻などをフローレコードとして出す仕組みです。
基本的には見られません。NetFlowは「だれが・どこへ・どれだけ・いつ」通信したかを見るための要約情報で、ペイロードは取りません。内容確認にはパケットキャプチャなどが必要です。
代表的には送信元IP、宛先IP、送信元ポート、宛先ポート、プロトコルの5タプルを基準に同じ通信をまとめます。機器や設定によっては、ほかの要素も加わります。
v5は入る項目が固定で、v9はテンプレートを使って柔軟に項目を広げられます。v9ではテンプレートの扱いを安定させることが大切です。
IPFIXはIETFで標準化されたフロー情報の出し方です。テンプレートを使う点はv9と近い一方で、ベンダーが違っても扱いやすい形を目指しています。
使えますが、フローはタイムアウトなどの条件でまとまって送られます。そのため、秒単位で常に同じ速さの反映を求める用途では、補助的な情報として使う方が安全です。
通信量が多い環境で負担を下げるため、一定の割合で観測・集計する方法です。大きな通信の流れを見るには役立ちますが、短い通信は見えにくくなることがあります。
見つける助けになります。外部向け通信の急増、宛先数の急増、特定ポートの急増などを手がかりにできます。断定には、認証ログやDNS、EDRなどの別ログも合わせて見ます。
現場で使うなら、ほぼ必要です。機器が出したフローレコードを受け取り、保存し、検索や表示、警告に使う役目を持ちます。v9やIPFIXではテンプレートの扱いも重要です。
「どこで取るか」と「何のために見るか」です。目的によって、必要な項目、入力と出力のどちらで取るか、どれだけ残すか、サンプリングを使うかが変わります。