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の通りとなります。
接続元から以下の条件で、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を説明したいと思います。 エクスポーターとは、フローデータを送信するルーターのことです。
今回の検証ではCisco891Fを利用しており、NetFlow version9のデフォルト設定です。 フローコレクターは、エクスポーターが送信するフローデータを受信して視覚化してくれるサーバーのことです。 接続元PCは、エクスポータの物理ポートに直接接続しているパソコンで、接続先PCはそのパソコンがアクセスしている別サブネットに所属するパソコンとなります。
宛先ポートが3128ですので、プロキシを利用してWEBアクセスとなります。
それでは、表1の条件で収集した実際のフローデータをWireSharkで見てみましょう。
FlowSetの中に、Flow 1, Flow 2 Flow 3… とあります。 それぞれが別個のフローの塊となります。 図2ではFlow 3を展開しています。 これが表2のフローデータとなります
項目 | 値 | 説明 |
---|---|---|
Duration | 2.356 seconds | フローのアクティブ時間(秒) |
Octets | 12569 | フロー中のオクテット数(バイト) |
Packets | 229 | フロー内のパケット |
InputInt | 16 | 入力IFのindex番号 ※ここでは、VLAN1のindex番号 |
OutputInt | 1 | 出力IFのindex番号 ※接続元PCが接続されている物理ポート番号 |
SrcAddr | 192.168.99.129 | 接続元PCのIPアドレス |
DstAddr | 192.168.91.48 | 接続先PCのIPアドレス |
Protocol | TCP(6) | トランスポート層プロトコル |
IP ToS | 0x00 | Type fo Service |
SrcPort | 40128 | 接続元PCの利用ポート番号 |
DstPort | 3128 | 接続先PCの宛先ポート番号 |
SamplerID | 0 | samplerNameで利用する固有指示子 |
FlowClass | 0 | Qosで利用する、トラフィッククラス |
NextHop | 192.168.91.48 | 次のルーター(ネクストホップ) |
DstMask | 24 | 宛先のネットワークマスク |
SrcMask | 24 | 送信元のネットワークマスク |
TCP Flags | 0x1b, ACK… | TCPのフラグ |
Direction | Egress(1) | フローの方向 |
DstAS | 0 | 宛先AS |
SrcAS | 0 | 送信元AS |
(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 minutes, Inactive 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とは?の記事を本ブログに掲載しました。こちらもネットワーク管理者やフローコレクター製品を探している方にとっては非常に有用な記事かと考えますので、是非ご一読ください!
ネットワーク可視化(見える化)無料ebookプレゼントします!
オンプレミス、クラウド、コンテナ環境問わず、ネットワークトラフィックの可視化を希望するお客様からの問い合わせが増加しております。
ネットワークトラフィック見える化(可視化)ソリューションの決定版ntopngの無料ebookを貴社課題のNetwork Visibilityの一助としてください!
今回プレゼントするeBookを読めば、以下のテーマを解決することができます。
ネットワークトラフィック可視化のアプローチ手法
L7アプリケーション分析の概要と実装方法
ntop製品の概要・使い方・インストール・運用方法
クラウド・コンテナのネットワークVisibilityの達成
【ntopng 無料eBookプレゼント】
ntopによる高速トラフィック分析入門(ntopngバージョン5.0.2系)
弊社では、以下の特徴を持ったntop社のntopngという製品を販売しております。
- リアルタイム分析
- アプリケーション分析
- L2,L7サポート
- フローコレクター
- 脅威検知
ご興味のある方は以下のリンクから弊社までお問い合わせください。