Flexible Netflow(Netflow v9)のすごい点まとめ
今日は久々にネットワークの話。
そもそもNetflowとは、シスコシステムズが開発した、IPネットワークの様々な情報を収集するためのプロトコルである。
Ciscoのルーター(スイッチ)→各I/FでNetflowの有効/無効を指定できる
(少し細かくなるが、集計するタイミングは、パケットがInした時だ。これをインバウンドトラフィックと呼んでいる)
有効にすると、I/Fを流れるトラフィックを監視し、Netflowキャッシュと呼ばれる場所に、次の情報を格納していく。
[Key Field]
・ 送信元IPアドレス
・ あて先IPアドレス
・ TCP/UDPポート送信元番号
・ TCP/UDPポートあて先番号
・ L3プロトコル
・ ToSバイト(DSCP)
・ 入力インターフェース
[Non Key Field]
・ 送信元IPアドレス/あて先IPアドレス
・ 送信元ポート番号/あて先ポート番号
・ 入力インターフェースと出力インターフェース
・ ToSバイト(DSCP)
・ フローのバイト数、パケット数
・ 送信元AS番号、あて先AS番号
Netflowにはいくつかのバージョンがあって、スタンダードなVersion5だと「key field」をフローを識別するパラメータとして使っている。
つまり、このkey fieldの値が違うパケットは、新規フローとして認識されるわけだ。
このフローは永遠にキャッシュにたまっていくわけではない。ある一定の期間が過ぎると(このことをフローエントリが期限切れになるという)、キャッシュの情報は外部へ出力される。
標準は15分??
これは、
NDE(NetFlow Data Export)パケットとしてカプセル化され、フローを収集する装置へと送られる。
NetFlow - キャッシュタイマー
NetFlowのキャッシュには、いくつかのタイマーがある。いつも一定間隔で外部へ送信されるわけではないのだ。
1. インアクティブタイマーの経過 (Defalut : 15秒)
→同一フローの通信が存在しなくなった時にのみ、カウントダウンが開始されるタイマー。
同一フローが15秒間流れてこなかったら、キャッシュを出力するということ??
2. アクティブタイマーの経過 (Default : 30分)
→これは必ず。
3. NetFlowキャッシュテーブルが満杯になった時(最も古いフローから削除される)
4. TCPのRSTかFINを検出しTCPセッションが終了した時(フローはタイマーに関係なく期限切れとなる)
上記の4つのどれかがトリガーとなり、フローは外部へ送信される。ではどのような情報が送られるのだろうか?
NetFlowとは - Cisco IOS NetFlowより
こんな感じだ。
Ciscoのルータには、標準でVersion5が搭載されている。最近はVersion9が主流になりつつあるので、この2つを覚えておけば間違いない。それ以外のバージョンは知らない。
ここでみんなが気になるのは、Version5と9の違いだ。
簡単に言うと、フォーマットが拡張されている。
つまり、より多くの情報を収集できるようになっているのだ。
バージョン5に比べて柔軟なフローであるため、これをFlexible Netflowと呼んでいる。
(これに対してversion5はTraditional Netflowと呼ばれている)
Flexible Netflowの設定方法については、以下のページがとても参考になる。
たまにこうしてまとめてみると、記憶にも定着するので結構効果的だ。