「NetFlowとは?」「フローとは?」を5分で理解する

2020年9月11日(金) オクテットの説明を修正)

2020年10月19日(月) 表1,表2を画像からgoogleスプレッド形式に変更。図番の間違いを修正。

2022年7月27日(水) Flexible NetFlowとは?を5分で理解する記事のリンクを追加

文:ジュピターテクノロジー よしひろ

本記事は2020年10月19日に更新した記事をアップデートしたものです

フローとは?NetFlowとは?

さて今回の記事では、NetFlow version9実際のフローデータを見ながら「フローとは?」、「NetFlowとは?」の問いに回答したいと思います。

NetFlow version9のフローデータ詳細を把握すれば、自然とこの問が理解できると思います。

弊社内で営業担当者向けにNetFlowの説明を行ったのですが、やはり「フローとは?」「フローコレクターとは?」でつまずく人が多く、また正確に理解していない人が多かったです。

Wiresharkで実際のデータを見ながら解説しますので、視覚的にもイメージしやすく理解も深まると思います。

是非最後まで読んでください。

今回の検証ですが、物理構成は図1の通りとなります。

図1 検証時の物理構成

接続元から以下の条件で、5秒おきにプロキシサーバへの通信を発生させました。
※接続元からwgetを使ったスクリプトを無限ループ実行し、接続先に対して通信を生成。

条件
エクスポーターIPアドレス192.168.91.3
フローコレクターIPアドレス192.168.91.36
接続元PC(送信元IPアドレス)192.168.99.129
接続先PC(送信先IPアドレス)192.168.91.48
送信元ポート番号ランダム
宛先ポート番号3128
トランスポート層プロトコルTCP
頻度5秒おき
表1 トラフィック生成条件

図1と表1を説明したいと思います。 エクスポーターとは、フローデータを送信するルーターのことです。

今回の検証ではCisco891Fを利用しており、NetFlow version9のデフォルト設定です。 フローコレクターは、エクスポーターが送信するフローデータを受信して視覚化してくれるサーバーのことです。 接続元PCは、エクスポータの物理ポートに直接接続しているパソコンで、接続先PCはそのパソコンがアクセスしている別サブネットに所属するパソコンとなります。

 宛先ポートが3128ですので、プロキシを利用してWEBアクセスとなります。 

それでは、表1の条件で収集した実際のフローデータをWireSharkで見てみましょう。

図2 NetFlow version9 フローデータ

FlowSetの中に、Flow 1, Flow 2 Flow 3… とあります。 それぞれが別個のフローの塊となります。 図2ではFlow 3を展開しています。 これが表2のフローデータとなります

項目説明
Duration2.356 secondsフローのアクティブ時間(秒)
Octets12569フロー中のオクテット数(バイト)
Packets229フロー内のパケット
InputInt16入力IFのindex番号
※ここでは、VLAN1のindex番号
OutputInt1出力IFのindex番号
※接続元PCが接続されている物理ポート番号
SrcAddr192.168.99.129接続元PCのIPアドレス
DstAddr192.168.91.48接続先PCのIPアドレス
ProtocolTCP(6)トランスポート層プロトコル
IP ToS0x00Type fo Service
SrcPort40128接続元PCの利用ポート番号
DstPort3128接続先PCの宛先ポート番号
SamplerID0samplerNameで利用する固有指示子
FlowClass0Qosで利用する、トラフィッククラス
NextHop192.168.91.48次のルーター(ネクストホップ)
DstMask24宛先のネットワークマスク
SrcMask24送信元のネットワークマスク
TCP Flags0x1b, ACK…TCPのフラグ
DirectionEgress(1)フローの方向
DstAS0宛先AS
SrcAS0送信元AS
表2 フローデータの実体

(2020年9月11日(金) コメント)表2のOctetsの説明に、「入力カウンタのビット」と記載しておりますが、正確にはバイトとなります 

表2で少し理解しにくいのが、InputIntとOutputIntの方向だと思います。OutputIntに実際の送信元PCが繋がっている物理ポート番号1が設定されています。 これは、スイッチ内部の視点でみると理解が容易です。 

通信方向は物理ポート1からVLAN1インターフェースへのベクトルとなります。

よって、OutputIntが1となり、InputIntがVLAN1インターフェース番号の16となっています。 

この表2のフローデータを使って視覚化してくれるのが、フローコレクターとなります。 

フローコレクターは、単一もしくは複数のエクスポータから送信される表2に類似したフローデータを受信し、データーベースにフローデータを保存、グラフ化をしてくれるサーバーのことです。 

この表2がフローデータの実体であり、「NetFlowとは?」「フローとは?」「ネットフローとは?」の回答の一部となります。 

なぜ一部と書いたかというのは、NetFlow version9やNetFlow version5、sFlowといった規格によって、それぞれが保持できるレコードやプロトコル規約によって振る舞いが異なってくるからです。 

今後のブログでより詳細には触れていきますが、先ずはNetFlow version9の振る舞いを確認していきましょう。 

今回の検証で利用したCisco891Fでshow ip cache flowコマンドを実行したところ、以下の出力となりました。

この図3に表示されているActive flows timeout in 30 minutesInactive flows timeout in 15 secondsがポイントです。 この30分、15秒といった数字の意味は、キャッシュ内に保存される時間という理解をしてください。 

つまり、active flow(キャッシュ内のフローデータになんらかの変化があるフロー)は30分キャッシュされた後にエクスポータへ送信され、Inactive flows(キャッシュ内のフローデータに変化のないフロー)は15秒間キャッシュされた後にエクスポータに送信されます。 

例えば、100分間アップロードにかかるトラフィックを発生させると、このトラフィックはactive flow状態を100分間継続するので30分,60分,90分にフローデータをコレクターに送信する動作をします。 

このタイムアウト動作も面白いので、別の機会にブログ掲載したいと思います。 ここまでの説明で、「NetFlowとは?」「フローとは?」「ネットフローとは?」との質問に回答出来る準備は凡そ出来たのかなと思います。

フローとは?

フローとは、2つのノード間セッションの初めから終わりまでの一連の通信のことです。

送信元、宛先IPアドレス、ポート、プロトコルなど属性が同じものが1つのフローとしてカウントされます。フローを取得することで、SNMPでは追跡出来ないユーザーとアプリケーションのトラフィック分析が可能となります。また、DPIより収集するデータ量は圧倒的に少なく済みます。導入・運用コストが低いにも関わらず、既存トラフィック分析・将来インフラ設計に有用なデータを容易に収集することが出来ます。Cisco社が1996年にNetFlowを発表したのが、フローの起源です。歴史あるプロトコルですが、近年再び注目されつつあります。
各ベンダー様々なプロトコルを発表しています。ご利用のNM機器の型番及びファームウェアのバージョンを確認し、どのプロトコルがサポートされているかをご確認ください。

NetFlowとは?

NetFlowとは何でしょうか?1996年にネットワーク、セキュリティの監視、ネットワーク計画、トラフィック分析、IP従量を監視する目的で開発されました。

一般的にフローと言われると、NetFlow と即答される方もいらっしゃいますが、あくまでも Cisco社の独自プロトコルです。 本ブログ記事を最初から読んでいただけると、上記の説明がきちんと理解できるのではないでしょうか? 

Flexible NetFlowとは?の記事を新しく掲載しました!

本ページで、NetFlowとは?フロートは?の理解が進んだかと思います。2022年7月27日に本記事と類似した形で、Flexible NetFlowとは?の記事を本ブログに掲載しました。こちらもネットワーク管理者やフローコレクター製品を探している方にとっては非常に有用な記事かと考えますので、是非ご一読ください!

Flexible NetFlowとは?を5分で理解する

ネットワーク可視化(見える化)無料ebookプレゼントします!

オンプレミス、クラウド、コンテナ環境問わず、ネットワークトラフィックの可視化を希望するお客様からの問い合わせが増加しております。
ネットワークトラフィック見える化(可視化)ソリューションの決定版ntopngの無料ebookを貴社課題のNetwork Visibilityの一助としてください!

今回プレゼントするeBookを読めば、以下のテーマを解決することができます。
 ネットワークトラフィック可視化のアプローチ手法
 L7アプリケーション分析の概要と実装方法
 ntop製品の概要・使い方・インストール・運用方法
 クラウド・コンテナのネットワークVisibilityの達成

【ntopng 無料eBookプレゼント】
ntopによる高速トラフィック分析入門(ntopngバージョン5.0.2系)

弊社では、以下の特徴を持ったntop社のntopngという製品を販売しております。

  • リアルタイム分析
  • アプリケーション分析
  • L2,L7サポート
  • フローコレクター
  • 脅威検知
※画像をクリックすると製品ページにジャンプします

ご興味のある方は以下のリンクから弊社までお問い合わせください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. 産業スパイを発見し、防ぐ方法とは

  2. Flexible NetFlowとは?を5分で理解する

  3. WinSyslog 使い方ガイド#2 受信時刻とデバイスタイムスタンプ両方を出力する

製品カテゴリー

JTC IT用語集
TOP