Reading Time: 2 minutes
この記事の所要時間: 約 8分

弊社フローコレクター製品 NetFlow Analyzerのサポート経験から、2019年現在、NetFlowといえば、エクスポートされるレコード形式がNetFlow v9 であり、Flexible NetFlow という枠組みで設定・利用されているという感触を持っております。
本稿では、NetFlow v9とFlexible NetFlowについて、設定サンプルまで含めてご説明いたします。

アジェンダ

イントロダクション

NetFlow は、Cisco 社の独自技術であり、1996年に登場したとのことなので、もう23才になります。

NetFlow v9の前までのバージョンは、v1、v5、v7、v8とリリースされ、バージョンが上がるごとに
NetFlow データに保持されるフィールドの種類が増えて高機能化していくのが分かります。
※参照URL:https://www.cisco.com/c/en/us/td/docs/net_mgmt/netflow_collection_engine/3-6/user/guide/format.html

共通しているのは、装置からエクスポートされるすべてのNetFlow レコードの
データ形式(上記URL内では、データグラム形式という呼び方をしています)は、
固定されているということです。

例えば、NetFlow v5 形式でNetFlowエクスポートを有効化する設定を行なった場合、
当該筐体からエクスポートされるNetFlow レコードのデータグラム形式は
すべてNetFlow v5の仕様として決められたもので固定となり、
決められた各フィールドの値が状況に応じて変わっていきます。

これに対し、NetFlow v9では、テンプレート・ベースという形に大きく変わりました。
NetFlowレコードのデータ形式を定義するテンプレートがフローコレクターに送られ、
後続のNetFlowレコードは、そのテンプレートに沿ったレコード形式で送られます。
フローコレクターは、受信したテンプレートを読み取り、レコード形式を認識する必要があります。

このメリットは、ニーズに応じたNetFlow レコードを構成できること、
拡張性に富むことという点になります。

[GK1]
NetFlow v9がレコード形式として使われるのは、
(1)Flexible NetFlow
(2)NetFlow-lite (Catalyst 4948EではFlexible NetFlowと異なる設定になります)
(3)AVC(=Application Visibility and Control)
になります。

(2)(3)は、(1)を介して利用するため、
NetFlow レコードのレコード形式はNetFlow v9 が使われることになります。

Flexible NetFlowの概要

Flexible NetFlowの設定は以下の4つの要素から構成されます。
(1)flow record
(2)exporter
(3)flow monitor
(4)sampler

(1)flow record
NetFlow v9はテンプレート・ベースであると上で説明しました。
flow recordは、このテンプレートの設定に該当し、
次の2つのタイプの要素から成ります。
(1-1)match タイプ
(1-2)collect タイプ

(1-1)match タイプ
NetFlowデータのキー・フィールドのタイプです。
以下のようなものを設定します。
*当該IPフローが筐体に出入りするときのインターフェース
*送信元/宛先IP
*送信元/宛先ポート
*プロトコル
*ToS
など

(1-2)collect タイプ
NetFlowデータの非キー・フィールドのタイプです。
以下のようなものを設定します。
*バイト数
*パケット数
*タイムスタンプ
*TCPフラッグ
など

(2)exporter
NetFlowエクスポーターとしての属性となります。
以下のようなものを設定します。
*NetFlowのエクスポート先IPアドレス
*NetFlowのエクスポート先ポート
など

(3)flow monitor
監視対象の各インターフェースにNetFlow エクスポートを設定する際に適用する対象です。
flow recordとexporterとを関連付ける必要があります。

(4)sampler
NetFlowにサンプリングを適用する場合に必要となります。
flow monitorとともに監視対象の各インターフェースに適用します。

上記の最大4つの要素から成るFlexible NetFlow エクスポートを
各インターフェースに設定する書式は、以下のように
flow monitor (および必要ならsampler)を指定し、
IPv4かIPv6か、解析対象を受信(input)パケットにするか送信(output)パケットにするか
を指定する形になります。

{ip flow monitor | ipv6 flow monitor}name [|sampler name] {input | output}

Flexible NetFlow およびNetFlow-lite設定サンプル

[Flexible NetFlow]
OS : Cisco IOS XE Release 3S
※参照URL:https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/flexible_netflow/configuration_guide/b_fnf_3se_3650_cg/b_fnf_3se_3650_cg_chapter_010.html#reference_8648E2256B7442B2BF5B864DE2B8ABD1

flow record record1
match ipv4 source address
match ipv4 destination address
match ipv4 protocol
match ipv4 tos
match transport source-port
match transport destination-port
collect counter byte long
collect counter packet long
collect timestamp absolute first
collect timestamp absolute last

flow export export1
destination 192.168.100.1
transport udp 9996

flow monitor monitor1
record record1
exporter export1

interface tenGigabitEthernet 1/0/1
ip flow monitor monitor1 input

interface tenGigabitEthernet 1/0/2
ip flow monitor monitor1 input

interface tenGigabitEthernet 1/0/3
ip flow monitor monitor1 input

[Flexible NetFlow]
OS : Cisco IOS Release 15M&T

flow record rcd_v4
match ipv4 tos
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
collect counter bytes long
collect counter packets long

flow record rcd_v6
match ipv6 traffic-class
match ipv6 protocol
match ipv6 source address
match ipv6 destination address
match transport source-port
match transport destination-port
collect counter bytes long
collect counter packets long

flow exporter xprtr-1
destination 192.168.100.1
transport udp 9996

flow exporter xprtr-2
destination 192.168.100.2
transport udp 9996

flow monitor flw-mntr-v4
record rcd_v4
exporter xprtr-2
exporter xprtr-1

flow monitor flw-mntr-v6
record rcd_v6
exporter xprtr-2
exporter xprtr-1

ip cef

interface GigabitEthernet1/0/1
ip address 192.168.1.1 255.255.255.0
ipv6 address AAAA:AAAA:AAAA:AAAA::2/48
ip flow monitor flw-mntr-v4 input
ipv6 flow monitor flw-mntr-v6 input

interface GigabitEthernet1/0/2
ip address 192.168.1.2 255.255.255.0
ipv6 address AAAA:AAAA:AAAA:AAAB::2/48
ip flow monitor flw-mntr-v4 input
ipv6 flow monitor flw-mntr-v6 input

interface GigabitEthernet1/0/3
ip address 192.168.1.3 255.255.255.0
ipv6 address AAAA:AAAA:AAAA:AAAC::2/48
ip flow monitor flw-mntr-v4 input
ipv6 flow monitor flw-mntr-v6 input

[NetFlow-lite]
OS : Cisco IOS リリース 15.2(2)E,Cisco IOS リリース 15.2(2)E,Cisco IOS Release 15.2(3)E 以降
※参照URL:
https://www.cisco.com/c/ja_jp/td/docs/sw/campuslanswt-access/cat2960-xswt/cg/008/b_fnf_1522e_2960x_cg/b_fnf_1522e_2960x_cg_chapter_010.html

flow record record1
match ipv4 source address
match ipv4 destination address
match ipv4 protocol
match transport source-port
match transport destination-port
collect counter bytes long
collect counter packets long
collect timestamp sys-uptime first
collect timestamp sys-uptime last

flow exporter export1
destination 192.168.100.1
transport udp 9996
template data timeout 60

flow monitor monitor1
cache timeout active 300
cache timeout inactive 120
record record1
exporter export1

sampler SampleTest
mode random 1 out-of 1024

interface GigabitEthernet1/0/1
ip flow monitor monitor1 sampler SampleTest input

interface GigabitEthernet1/0/2
ip flow monitor monitor1 sampler SampleTest input

interface GigabitEthernet1/0/3
ip flow monitor monitor1 sampler SampleTest input

フローコレクターならManageEngine NetFlow Analyzer

NetFlow Analyzer 体験ホームページ
https://www.manageengine.jp/products/NetFlow_Analyzer/demos.html

NetFlow Analyzer 公式ホームページ
https://www.manageengine.jp/products/NetFlow_Analyzer/

30分でご紹介!NetFlow Analzyerオンラインセミナー
https://register.gotowebinar.com/register/3329407367669210125