Flexible Netflowとは

NetFlowとは

  • Cisco IOSのテクノロジーで、ルータを通過するパケットの統計情報を提供。
  • IPネットワークから運用データを取得し、ネットワーク監視、ネットワーク計画、トラフィック分析、IPアカウンティングに役立つ。

Flexible NetFlowの特徴

  • NetFlowの機能を強化し、トラフィック分析パラメータをカスタマイズ可能。
  • 再利用可能な構成コンポーネントを使用して、複雑なトラフィック分析とデータエクスポートを容易にする。

NetFlowの主な用途

  1. ネットワーク監視: リアルタイムでネットワークを監視し、トラフィックパターンを視覚化。効率的なトラブルシューティングを支援。
  2. アプリケーションの監視とプロファイリング: アプリケーション使用状況を詳細に把握し、新サービスの計画やリソース割り当てに利用。
  3. ユーザーの監視とプロファイリング: ネットワークやアプリケーションリソースの使用状況を監視し、セキュリティ違反を検出。
  4. ネットワーク計画: 長期的なデータキャプチャにより、ネットワーク成長を予測し、適切なアップグレード計画を立案。
  5. セキュリティ分析: DDoS攻撃やウイルスをリアルタイムで識別し、セキュリティインシデントのフォレンジックツールとしても活用。
  6. 課金とアカウンティング: 詳細なリソース使用率の計測とアカウンティングを提供。柔軟な課金やコスト割り当てが可能。
  7. データウェアハウスとデータマイニング: NetFlowデータを保存・分析し、マーケティングや顧客サービスプログラムに活用。

NetFlowのコンポーネント

NetFlowには、ネットワークトラフィックを監視し、データを収集・分析するためのいくつかの重要なコンポーネントがあります。それぞれの役割は次のとおりです。

フローレコード

フローレコードは、ネットワークトラフィックに関する情報を定義するためのテンプレートです。

  • 定義済みレコード: 迅速に導入でき、NetFlowコレクターと互換性がある。
  • ユーザー定義レコード: キーフィールドと非キー フィールドを指定してカスタマイズ可能。

フローモニター

フローモニターは、フローレコードフローエクスポーターを組み合わせて使用します。

  • ネットワークトラフィックの監視を行うためのFlexible NetFlowコンポーネント。

フローエクスポーター

フローエクスポーターは、フローモニターによってキャッシュに保存されたデータをリモートシステムに送信する役割を持ちます。

  • フローモニタキャッシュのデータをリモートシステムにエクスポートし、分析・保存を実行。
  • テンプレートベースのエクスポート形式で、将来の拡張が容易。

フローサンプラー

フローサンプラーは、監視対象のトラフィックの一部をサンプリングするコンポーネントです。
ネットワーク監視の負荷を軽減するために、分析用パケット数を制限。

フレキシブルネットフローの設定方法

Flexible NetFlow (FNF) を設定するための一般的な手順は以下の通りです。

  1. フローレコードの作成
  2. フローエクスポーターの作成
  3. フローモニターの作成
  4. フローサンプラーの作成(オプション)
  5. インターフェースへの適用

フローレコードの作成

フロー レコードの作成
Device(config)#flow record record-name

キーフィルードの設定

フロー レコードのキー フィールドとして 1 つ以上の IPv4 フィールドを設定します。
Device(config-flow-record)#match ipv4 {destination address | protocol | source address | tos | ttl | version}

フロー レコードのキー フィールドとして 1 つ以上のトランスポート フィールドを設定します。
Device(config-flow-record)#match transport {destination-port | icmp ipv4 | icmp ipv6 | igmp type | source-port}

入力インターフェイスと出力インターフェイスをフロー レコードのキー フィールドとして設定します。
Device(config-flow-record)#match interface {input | output}

フローレコードの CTS 送信元グループタグおよび宛先グループタグを設定します。
Device(config-flow-record)#match flow cts {source | destination} group-tag

指定した値をフローレコードのキーフィールドとして設定します。
Device(config-flow-record)#match datalink {dot1q priority | dot1q vlan | ethertype | mac | vlan}

非キーフィールドの設定

フロー レコードの非キーフィールドとしてフロー内のバイト数またはパケット数を設定します。
Device(config-flow-record)#collect counter {bytes layer2 long | bytes long | packets long}

フローレコードの非キーフィールドとして入力および出力インターフェイス名を設定します。
Device(config-flow-record)#collect interface {input | output}

フロー内の最初または最後に確認されたパケットの絶対時間をフローレコードの非キーフィールドとして設定します。
Device(config-flow-record)#collect timestamp absolute {first | last}

フローからの転送 TCP フラグの収集をイネーブルにします。
Device(config-flow-record)#collect transport tcp flags

(オプション) フロー レコードの説明
Device(config-flow-record)#description description

フローレコードの設定例

この例では、ソースIPアドレス、デスティネーションIPアドレス、バイト数、パケット数、そしてタイムスタンプを収集します。

フロー エクスポータの設定

フローエクスポータの作成
Device(config)#flow exporter exporter-name

フロー エクスポータのエクスポート宛先を設定
Device(config-flow-exporter)#destination {hostname | ip-address } [vrf vrf-name ]

(オプション) フロー エクスポータの説明
Device(config-flow-exporter)#description description

(オプション) Flexible NetFlow のフロー エクスポータのオプションのデータ パラメータを設定
Device(config-flow-exporter)#option {exporter-stats | interface-table | sampler-table} [timeout seconds]

exporter-statsフロー エクスポータの統計情報オプションを設定します。
interface-tableフロー エクスポータのインターフェイス テーブル オプションを設定します。
sampler-tableフロー エクスポータのエクスポート サンプラー テーブル オプションを設定します。
timeout seconds(任意)フロー エクスポータのオプションの再送時間を秒単位で設定します。指定できる範囲は 1 ~ 86400 です。デフォルトは 600 です。

(オプション) フロー エクスポータ データグラムの DSCPの値を設定
Device(config-flow-exporter)#dscp dscp

(オプション) NetFlow バージョン 9 エクスポートを Flexible NetFlow エクスポータのエクスポートプロトコルとして設定
Device(config-flow-exporter)#export-protocol netflow-v9

(オプション) Flexible NetFlow のフロー エクスポータのトランスポート プロトコルを設定
Device(config-flow-exporter)#transport udp udp-port

(オプション) フロー エクスポータ テンプレート データの再送信のタイムアウト期間を指定
Device(config-flow-exporter)#template data timeout seconds

(オプション) 存続可能時間(TTL)を設定
Device(config-flow-exporter)#ttl ttl

フローエクスポータの設定例

この例では、エクスポート先のIPアドレスは192.168.1.100、UDPポートは2055を指定します。

フロー モニターの設定

フローモニタの作成
Device(config)#flow monitor monitor-name

Flexible NetFlow フローモニタのフローレコードを追加
Device(config-flow-monitor)#record {record-name }

フローモニタのフローエクスポータを追加
Device(config-flow-monitor)#exporter exporter-name

(オプション) フローモニタのフローキャッシュパラメータを設定
Device(config-flow-monitor)#cache {timeout {active | inactive | rate-limit | update} seconds | type normal}

(オプション) フローモニタの説明
Device(config-flow-monitor)#description description

フローモニタの設定例

フローレコードとフローエクスポーターを組み合わせて、フローモニターを作成します。

フローサンプラーの設定

フローサンプラーの作成
Device(config)#sampler sampler-name

ランダムサンプリングを有効にし、Flexible NetFlow サンプラーのパケット間隔を指定
window-size 引数の範囲は、2 ~ 1024 です。
Device(config-sampler)#mode random 1 out-of window-size

(オプション)フロー サンプラの説明
Device(config-sampler)#description description

フローサンプラの設定例

この例では、100分の1の確率でパケットをサンプリングします。

インターフェースへの適用

Flexible NetFlow フローモニタをイネーブルにする
Device(config)#interface type number
Device(config-if)#{ip | ipv6 } flow monitor monitor-name [sampler sampler-name] {input | output}

設定例

ここでは、GigabitEthernet 0/1インターフェースの入力と出力に適用します。

参考文献

Flexible Netflow Overview
Flexible NetFlow