Cisco CNS NetFlow Collection Engine ユーザ ガイド Release 5.0.2
CNS NetFlow Collection Engine のカ スタマイズ
CNS NetFlow Collection Engine のカスタマイズ
発行日;2012/02/06 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 1MB) | フィードバック

目次

CNS NetFlow Collection Engine のカスタマイズ

CNS NetFlow Collection Engine のコンフィギュレーション ファイルおよびリソース ファイル

XML コンフィギュレーションおよびスキーマ

CNS NetFlow Collection Engine のデータ収集とデータ集約

CNS NetFlow Collection Engine 5.0 コンフィギュレーション情報の概要

フィールド

キーおよび値

キー ビルダーのタイプ

値ビルダーのタイプ

キー ビルダーおよび値ビルダーのデータ タイプ

集計方式の作成

集約器の作成

フィルタの作成

マップの作成

マルチフィールド マップの作成

オプション データ マップの作成

ソース グループの作成

アクセス リストの作成

グローバル設定値

時間帯の設定

メモリ使用状況の調整

ディスク スペースの管理

フィルタ

集約

データ ファイルとディスク スペースのオプション

ディスク使用量の監視

CNS NetFlow Collection Engine のカスタマイズ

この章では、スレッド、フィルタ、プロトコル定義、ポート番号と自律システム番号のリスト、その他の CNS NetFlow Collection Engine コンフィギュレーション パラメータを使用して、CNS NetFlow Collection Engine の動作をカスタマイズする方法について説明します。

この章は、次の項で構成されています。

「CNS NetFlow Collection Engine のコンフィギュレーション ファイルおよびリソース ファイル」

「CNS NetFlow Collection Engine のデータ収集とデータ集約」

「メモリ使用状況の調整」

「ディスク スペースの管理」

CNS NetFlow Collection Engine のコンフィギュレーション ファイルおよびリソース ファイル

CNS NetFlow Collection Engine の動作をカスタマイズするプロセスは、次の 1 つまたは複数の CNS NetFlow Collection Engine コンフィギュレーション ファイルおよびリソース ファイルの変更や追加を必要とします。これらのファイルは NFC_DIR/config ディレクトリにあります。

上記のいずれのファイルも、テキスト エディタを使用して変更することができます。CNS NetFlow Collection Engine UI を使用して、CNS NetFlow Collection Engine コンフィギュレーションを更新することもできます。CNS NetFlow Collection Engine UI の使用方法の詳細については、「CNS NetFlow Collection Engine ユーザ インターフェイスの使用方法」を参照してください。

XML コンフィギュレーションおよびスキーマ

CNS Netflow Collection Engine Release 5.0 コンフィギュレーションを編集するには、XML および XML スキーマの実用的な基礎知識が必要です。XML の概要は、このマニュアルの範囲外です。ただし、XML の概要に関する資料はインターネットから無料で入手できます。また、このトピックに関する本も多数出版されています。XML の出発点として、次の W3C サイトが参考になります。

http://www.w3.org/XML

http://www.w3.org/XML/Schema

ディレクトリ NFC_DIR/config にある次の XML および関連するスキーマ ファイルを使用して、CNS Netflow Collection Engine のコンフィギュレーション情報を定義します。

nfc-config.xml

nfc-config-predefined.xml

nfc-config.xsd

nft-types.xsd

コア コレクタ アプリケーションのコンフィギュレーション情報は、次の 2 つのファイルに保存されています。

nfc-config.xml

nfc-config-predefined.xml

ファイル nfc-config-predefined.xml には、デフォルトの値と、通常はユーザによって変更されない値が含まれています。nfc-config.xml には、追加と変更を行うことができます。CNS Netflow Collection Engine は、実行時にこのファイルを定義済みのファイルとマージします。両方のファイルに定義がある場合、 nfc-config.xml で行われた変更が優先されます。

nfc-config.xml および nfc-config-predefined.xml で参照されるタイプの XML スキーマは、ファイル nfc-types.xsd に含まれています。これらの XML ファイルのドキュメント要素の全体的な構造(順序)は、 nfc-config.xsd で定義されています。上級ユーザは、これらのファイルを参照して、コンフィギュレーションの変更で発生したドキュメント XML 形式のエラーのトラブルシューティングを行うことができます。この種類のエラーで出力されたログは、これらのいずれかのファイルの行を参照する場合があります。

CNS Netflow Collection Engine 5.0 では、CNS Netflow Collection Engine 4.0 以前のコンフィギュレーション ファイルをサポートしていません。コンフィギュレーションの移行に役立つツールが提供されています。このツールの詳細については、 付録 G「CNS NetFlow Collection Engine マイグレーション ツール」 を参照してください。

CNS NetFlow Collection Engine のデータ収集とデータ集約

CNS NetFlow Collection Engine は収集したデータを、CNS NetFlow Collection Engine 集約器で指定したユーザ定義の基準に従って、データ ファイルに要約(集約)します。集約器とは、CNS NetFlow Collection Engine がワークステーションに格納されたトラフィック フローを集約する方法を指定する、ユーザによる設定が可能なアトリビュートのセットで定義されたタスクです。

CNS NetFlow Collection Engine 5.0 コンフィギュレーション情報の概要

表4-1 は、コンフィギュレーション ファイル nfc-config.xml および nfc-config-predefined.xml に含まれるトップレベルのドキュメント要素について簡単に説明しています。特に指定されない限り、編集不可とされている要素は変更できません。

 

表4-1 CNS NetFlow Collection Engine の設定要素

要素
編集
目的

global

全体的にコレクタの動作に影響を与える設定。5.0 より前のリリースでは、これらの設定の多くは nf.resources ファイルに含まれていました。

field-info

各フィールドの名前、タイプ ID、コンテンツ タイプ、および代替名。リリース 4.0 の nfknown.typefile のエントリに対応します。

フィールド情報を更新することにより、新しいフィールド エイリアスを追加したり、新しいルータ機能が新しい V9 フィールドを導入するようにフィールド定義を追加したりできます。

fixed-flow- packet-types

不可

NDE V9 以前のすべてのパケット タイプ(フィールド オフセット、ヘッダー サイズなど)の構造を説明。

通常、この要素の内容は変更できません。ただし、新しい NDE V8 ルータベースの収集方式が追加されると、パケットの追加説明を加えることができます。

flow-interpreters

不可

NDE V9 の場合と同様に、各 fixed-flow-packet-type のインタープリタを定義。

key-builders

集計方式により参照されるキー定義。

value-builders

集計方式により参照される値の定義。

option-data-map

オプションのデータ キー ビルダーでの使用のためにキャッシュされるオプションのデータ マップ エントリを定義。

filters

集約器により参照されるフィルタ定義。

aggregation-schemes

集約器により参照される集計方式の定義(どのキーと値が集約され、出力されるかなど)。

binary-output- mapping-info

不可

集約出力が CNS NetFlow Collection Engine 4.0.1 互換のバイナリ出力形式にマッピングされる方法を説明。

aggregators

集約器の定義(Release 5.0 より前の CNS NetFlow Collection Engine バージョンのスレッド)。

nde-source- groups

1 つ以上のルータ IP アドレスとホスト名をグループ名にマッピングする。Release 5.0 より前のバージョンの CNS NetFlow Collection Engine では、これは
ROUTER_GROUPAME リソースでした。

nde-source- access-list

NDE ソースのアクセス リスト。Release 5.0 より前のバージョンの CNS NetFlow Collection Engine では、これは ACCEPT_PACKETS_FROM リソースでした。

flow-readers

不可

フロー リーダー(NDE プロトコルあたり 1 つ)。CNS NetFlow Collection Engine Release 5.0 では、udp がサポートされる唯一のプロトコルです。sctp または tcp など他のプロトコルは、後続のリリースで追加されます。

option-data-listeners

不可

オプション データ プロセッサ。CNS NetFlow Collection Engine Release 5.0 では、オプション データ プロセッサだけが CNS NetFlow Collection Engine Release 4.0 オプション データ出力との後方互換性がある出力を生成します。

cns-xml-interface

不可

外部クライアントに対するリモート設定インターフェイスの設定を含む。

event-service

不可

CNS NetFlow Collection Engine イベントと関連オプションに対してサポートされる転送を定義。Syslog および CNS Integration Bus が、CNS NetFlow Collection Engine Release 5.0 でサポートされる形式です。通常、これは変更されませんが、CNS Integration Bus がネットワークでどのように使用されるかによって、追加オプションが必要になる場合もあります。

disk-usage-monitor

使用可能なディスク スペースを監視するファイル システムをリストする。

XML 内のこれらの要素の順序は、スキーマ ファイル nfc-config.xsd で決まります。

フィールド

フィールドは、NetFlow フロー内のルータにより送信されたデータの個々の項目を表します。通常、ユーザがフィールド定義を追加または変更することはありませんが、フィールド定義は集計方式により参照されるキーと値の構築における基本的要素であるため、重要な考慮事項です。

フィールドには、フローのデータで CNS NetFlow Collection Engine が行う内容についての情報はありません。これは、単に必要なデータを識別し、NDE フロー内のフィールドのオフセットと長さを示すフローのテンプレート情報に索引をつけます。CNS NetFlow Collection Engine Release 5.0 では、NDE V9 以前のパケットに対してもテンプレートが内部的に定義されており、V9 以前のパケットおよび V9 のパケットも同様に扱うことができます。

フィールドは、次のように nfc-config-predefined.xml で宣言されます。

<field-info>
<fields>
<field id="1" name="IN_BYTES">
<alias name="octets"/>
</field>
<field id="2" name="IN_PKTS">
<alias name="pkts"/>
</field>
<field id="4" name="PROTOCOL">
<alias name="prot"/>
</field>
<!-- etc. -->
</fields>
</field-info>
 

フィールド要素には、CNS NetFlow Collection Engine により認識されたすべてのフィールドのリストが含まれています。フィールド エイリアスは、CNS NetFlow Collection Engine 5.0 より前のバージョンで事前に定義された集計方式で使用されていた V1-V8 NDE に表示されるフィールドのサブセットの代替名を定義します。集計方式は、フィールド名またはそのエイリアスのいずれかを参照できます。

キーおよび値

集計方式は、キーと値で構成されています。集約期間内に、同じキー セットを持つフロー内のそれぞれの値が、集約期間内の初期の一致するフローからの対応値と一緒に集約(通常は要約)されます。

集計方式は直接フィールドを参照しませんが、 キー ビルダー または値ビルダーがフィールドを参照し、1 つ以上の集計方式がビルダーを参照します。

フィールドは単に NetFlow フロー内のデータの識別子ですが、キー ビルダーと値ビルダーはフィールドに対して、そのタイプ(integer、string、ipaddress、UTC time)、出力形式、出力のカラム名、データで実行される可能性がある操作や変換など、さらに重要な意味を割り当てます。

特別な場合には、ビルダーがどのフィールド(フロー カウントなど)にも関連付けられないようにしたり、複数のフィールド(マルチフィールド マップなど)からデータの結合や変換をしたりすることができます。

この項では、作成できる各タイプのキー ビルダーおよび値ビルダーと、設定可能なアトリビュートおよび要素について簡単に説明します。 /opt/CSCOnfc/config/nfc-config-predefined.xml には、これらのタイプの多くの定義済み例が含まれています。 /opt/CSCOnfc/config/nfc-types.xsd 内の XML スキーマには、各タイプを定義する正確な構文が表示されます。Web ベース ユーザ インターフェイスを使用すると、新しいビルダー インスタンスをさらに簡単に作成できるようになります。詳細については、「Key Builders」および 「Value Builders」を参照してください。

キー ビルダーのタイプ

address-range-map-key

address-range-map-key ビルダーは、IP アドレスを読み込み、マップ検索を実行してストリング値を取得します。マッピングが見つからない場合、デフォルトのラベルが指定されていればそれが使用されます。指定されていなければ、値のストリング表現がそのまま出力されます。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するフィールドの ID。

default-label

マッピング結果が見つからなかった場合の出力値。それ以外の場合は、指定しない場合に、値がそのまま出力されます。

is-null-allowed

false(デフォルト)に設定され、フローにフィールドが含まれていない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

ranges

1 つ以上の範囲と値の定義が含まれます。

アドレス値および値の範囲の任意の数と組み合わせを指定できます。複数の値または範囲を 1 つのラベルに関連付けることができますが、値と範囲は重複できません。範囲は、次の要素とアトリビュートで定義されます。

 

要素
アトリビュート

minimum

範囲内の最小値。

maximum

範囲内の最大値。

label

範囲に関連付けられた出力値。

値要素自体には、次のアトリビュートを持つ整数値が含まれます。

 

要素
アトリビュート

label

範囲に関連付けられた出力値。

bgp-attr-post-agg-key、bgp-attr-key

bgp-attr-post-agg-key および bgp-attr-key ビルダーは、フローのオリジネータによりアドバタイズされたアドレス プレフィックスに対し、フローから得られたアドレスで最長一致検索を実行します。これは、パッシブ CNS NetFlow Collection Engine BGP Peer のピアでもあります。この検索結果は、RFC-1771 で説明されているように BGP-4 アトリビュートです。検索に失敗した場合、結果は空のストリングになります。CNS NetFlow Collection Engine BGP Peer の設定および起動の詳細については、「BGP ピア」を参照してください。

bgp-attr-post-agg-key ビルダーは、各集約期間の最後に一度、集約後検索を実行します。 bgp-attr-key ビルダーは、各フローが受信されるたびに検索を実行します。この方法によって、検索の遅延が削減されますが、パフォーマンスに大きな影響を与える結果となります。このパフォーマンス ペナルティにより、 bgp-attr-post-agg-key は多くの環境で使用されます。


bgp-attr-post-agg-key ビルダーを使用する場合、含まれる集計方式には、ビルダー設定の address-key により参照されるビルダーが含まれる必要があります。


 

キー ビルダー
説明

name

出力のカラム名。

address-field

アトリビュートの検索が実行される an を取得するキー ビルダーの ID。

attribute

整数アトリビュート ID または次に示す RFC-1771 で定義されたアトリビュート名の 1 つ。

ORIGIN

AS_PATH

NEXT_HOP

MED

LOCAL_PREF

ATOMIC_AGGREGATE

AGGREGATOR

COMMUNITY

ORIGINATOR_ID

CLUSTER_LIST

bgp-complete-as-path-post-agg-key、bgp-complete-as-path-key

bgp-complete-as-path-post-agg-key ビルダーおよび bgp-complete-as-path-key ビルダーは、フローのオリジネータによりアドバタイズされたアドレス プレフィックスに対し、フローから得られた発信元アドレスと宛先アドレスの最長一致検索を実行します。これは、パッシブ CNS NetFlow Collection Engine BGP Peer のピアでもあります。結果は、発信元から宛先への完全な AS パスです。これは、2 つの別々の検索で構成されています。結果の精度は、発信元とピア間の対称的なルートを前提としています。検索に失敗すると、結果は空のストリングになります。

bgp-complete-as-path-post-agg-key ビルダーは、各集約期間の最後に一度、集約後検索を実行します。 bgp-complete-as-path-key ビルダーは、各フローが受信されるたびに検索を実行します。この方法によって、検索の遅延が削減されますが、パフォーマンスに大きな影響を与える結果となります。このパフォーマンス ペナルティにより、 bgp-complete-as-path-post-agg-key バリアントは多くの環境で使用する必要があります。


bgp-complete-as-path-post-agg-key ビルダーを使用する場合、含まれる集計方式には、ビルダー設定の srcaddr-key および dstaddr-key により参照されるビルダーが含まれる必要があります。


 

キー ビルダー
説明

name

出力のカラム名。

srcaddr-key

発信元アドレスを取得するキー ビルダーの ID。

dstaddr-key

宛先アドレスを取得するキー ビルダーの ID。

bit-field-key

bit-field-key ビルダー は、整数値を読み込み、整数内の指定したオフセットで始まる指定したビット数を抽出します。ビット範囲を整数値として出力します。

 

キー ビルダー
説明

name

出力のカラム名。

field

フローから検索するアドレス フィールドの ID。

least-significant-bit

含める最小重みビットのゼロからのオフセット。

num-bits

含めるビット数。

format

decimal (デフォルト)、または hex のいずれか。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

inetaddress-key

inetaddress-key ビルダーは、IP アドレスの読み込みと出力を行います。IPV4 アドレスおよび IPV6 アドレスの両方がサポートされます。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するフィールドの ID。

format

standard-notation(デフォルト)、hostname、または integer のいずれか。integer 形式オプションは、今後のリリースで削除される予定であり、IPV6 アドレスに対しては有効ではありません。

is-null-allowed

false(デフォルト)に設定され、フローにフィールドが含まれていない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

format が hostname に指定されている場合、DNS lookup が出力時に実行され、アドレスに関連するホスト名を決定します。検索に失敗すると、IP アドレスがストリングとして返されます。ホスト名のキャッシングは、キャッシュに対する調整可能なパラメータを持つ Java Runtime Environment により実行されます。Java Runtime Environment によりホスト名がキャッシュされる方法、およびキャッシング動作の調整方法については、
http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html の InetAddress Caching を参照してください。

integer-key

integer-key ビルダーは、整数の読み込みと出力を行います。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するアドレス フィールドの ID。

format

decimal (デフォルト)、または hex のいずれか。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

integer-range-map-key

integer-range-map-key ビルダーは、整数を読み込み、マップ検索を実行してストリング値を取得します。マッピングが見つからない場合、デフォルトのラベルが指定されていればそれが使用されます。指定されていなければ、値のストリング表現がそのまま出力されます。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するフィールドの ID。

default-label

マッピング結果が見つからなかった場合の出力値。それ以外の場合は、指定しない場合に、値がそのまま出力されます。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

ranges

1 つ以上の範囲と値の定義が含まれます。

整数値および値の範囲の任意の数と組み合わせを指定できます。複数の値または範囲を 1 つのラベルに関連付けることができますが、値と範囲は重複できません。範囲は、次の要素とアトリビュートで定義されます。

 

要素
アトリビュート

minimum

範囲内の最小値。

maximum

範囲内の最大値。

label

範囲に関連付けられた出力値。

値要素自体には、次のアトリビュートを持つ整数値が含まれます。

 

要素
アトリビュート

label

範囲に関連付けられた出力値。

interface-name-key

interface-name-key ビルダーは、フロー内のインターフェイスのインデックスを、デバイスへの SNMP 照会によって取得したインターフェイス名にマッピングします。照会結果は、検索のパフォーマンスを改善するためにキャッシュされます。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するインターフェイス フィールドの ID。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

mask-field-inetaddress-key

mask-field-inetaddress-key ビルダーは、フローから IP アドレスとマスク値の両方を読み込み、マスクをアドレスに適用します。マスクされた値が出力されます。

 

キー ビルダー
説明

name

出力のカラム名。

address-field

フローから検索するアドレス フィールドの ID。

mask-field

フローから検索するマスク フィールドの ID。

format

standard-notation(デフォルト)、hostname、または integer のいずれか。integer 形式オプションは、今後のリリースで削除される予定であり、IPV6 アドレスに対しては有効ではありません。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

masked-inetaddress-key

masked-inetaddress-key ビルダーは、IP アドレスを読み込み、指定したマスク値を適用します。このビルダーと、フローからマスクを取得する mask-field-inetaddress-key の違いに注意してください。

 

キー ビルダー
説明

name

出力のカラム名。

field

フローから検索するアドレス フィールドの ID。

mask

適用する整数マスク値。

format

standard-notation(デフォルト)、hostname、または integer のいずれか。integer 形式オプションは、今後のリリースで削除される予定であり、IPV6 アドレスに対しては有効ではありません。

is-null-allowed

false(デフォルト)に設定され、フローにフィールドが含まれていない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

multi-field-map-key

multi-field-map-key ビルダーは、他のキー ビルダーの組み合わせから出力を結合して、マッピング結果を生成します。たとえば、CNS NetFlow Collection Engine 3.x/4.0-style プロトコル マッピングの一般的な実装は、その値がプロトコル バイト、発信元ポート、および宛先ポートに依存しており、定義済みの設定に供給されます。

マルチフィールド マップの詳細については、「マルチフィールド マップの作成」を参照してください。

option-data-key

option-data-key ビルダーは、フロー内の 1 つ以上のフィールドの組み合わせを使用して、「オプション データ マップの作成」で説明したオプション データ マップからのマップ検索を指定します。1 つ以上のキー フィールドが option-data-key のインスタンスで設定されます。これらのフィールドはトラフィック フロー レコードから抽出され、オプション データ マップ検索の実行に使用されます。検索の結果は、このキー ビルダーの出力値です。オプション データ マップで一致するものがない場合、集計出力に表示される値は空のストリングです。

 

キー ビルダー
説明

name

出力のカラム名。

option-data-map-entry

必要なデータを含むオプション データ マップ エントリの ID。

keys

オプション データ マップ検索を実行するためのキー セットを生成するキー ビルダーの 1 つ以上の ID。

string-key

string-key ビルダーは、UTF-8 ストリング値の読み込みと出力を行います。


) フロー データ内のストリング値は、NetFlow Data Export バージョン 9 だけでサポートされています。


 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するフィールドの ID。

is-null-allowed

false(デフォルト)に設定され、いずれのフィールドもフローに含まない場合は、エラーが記録されます。true に設定した場合は、出力値が空白となり、エラーが記録されません。

値ビルダーのタイプ

active-time-value

active-time-value ビルダーは、集計期間の最初のフローで報告された start-time-field 値と、集計期間の最後のフローで報告された end-time-value 間の差を秒単位で計算し、出力します。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

start-time-field

フローから検索する開始時間フィールドの ID。

end-time-field

フローから検索する終了時間フィールドの ID。

end-time-value

end-time-value ビルダーは、集計期間に処理される最後のフローで報告された時刻を UTC 秒単位で読み込み、出力します。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

end-time-field

フローから検索する終了時間フィールドの ID。

flow-count-value

flow-count-value ビルダーは、各フローを受信するごとにカウントをインクリメントし、合計を出力します。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

max-burst-rate-value

max-burst-rate-value ビルダーは、集計期間の任意の各フローに対して計算されたレートの最大値を管理します。フロー内のカウント(通常はオクテット)を読み込み、それをフローのアクティブ時間(秒単位)で割ります。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

start-time-field

フローから検索する開始時間フィールドの ID。

end-time-field

フローから検索する終了時間フィールドの ID。

octets-field

フローから検索するカウント フィールドの ID。

rate-value

rate-value ビルダーは、 sum-value ビルダーまたは flow-count-value ビルダーを参照してカウントを累計し、集計期間の秒数または分数で最終カウントを割ります。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、 per-second または per-minute に追加された quantity-value-builder ID がデフォルトになります。

quantity-value-builder

sum-value ビルダーまたは flow-count-value ビルダーのインスタンスのカウントを保持する値ビルダーの ID。

unit

最終カウントを seconds または minutes 割るかどうかを指定。

start-time-value

start-time-value ビルダーは、集計期間に処理される最初のフローで報告された時刻を UTC 秒単位で読み込み、出力します。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

start-time-field

フローから検索する開始時間フィールドの ID。

sum-value

sum-value ビルダーは、フローから整数を読み込み、それを実行合計に追加し、合計を出力します。

 

キー ビルダー
説明

name

出力のカラム名。指定しない場合、フィールド ID がデフォルトになります。

field

フローから検索するフィールドの ID。

キー ビルダーおよび値ビルダーのデータ タイプ

次の表に、各キー ビルダーと値ビルダーのデータ タイプを示します。このデータ タイプは、CNS NetFlow Collection Engine 出力ファイルの XML ヘッダーのキーまたは値の説明に含まれています。

表4-2 は、集計方式でキーの定義に使用できるキー ビルダーについて説明しています。

 

表4-2 集計方式のキー ビルダー

キー ビルダー
データ タイプ

integer-key

integer

inetaddress-key

ipaddress

mask-field- inetaddress-key

ipaddress

masked- inetaddress-key

ipaddress

address-range- map-key

string

bgp-attr-post-agg-key、bgp-attr-key

string

bgp-complete-as-path-post-agg-key、
bgp-complete-as-path-key

string

bit-field-key

integer

interface- name-key

string

integer-range- map-key

string

mpls-exp-key

integer

multi-field- map-key

string

option-data-key

参照された option-data-map-entry の値タイプによって異なる。

string-key

string

表4-3 は、集計方式で値の定義に使用できる値ビルダーについて説明しています。

 

表4-3 集計方式の値ビルダー

値ビルダー
データ タイプ

active-time-value

integer

end-time-value

UTC

flow-count-value

integer

max-burst-rate-value

integer

rate-value

integer

start-time-value

UTC

sum-value

integer

CNS NetFlow Collection Engine 出力ファイルの各データ行の場合、対応する集計方式は、データの各カラムに対して、 <key-builders> および <value-builders> で宣言されたキー ビルダーおよび値ビルダーのインスタンスを参照します。キー ビルダーまたは値ビルダーには、集計方式からのビルダー インスタンスの参照に使用される ID アトリビュートが常に含まれます。多くの場合、キー ビルダーまたは値ビルダーは、フロー内のどのフィールドに必要なデータが含まれているかを識別する <field> 要素を参照します。出力のカラム名は、 <name> 要素で指定できます。それ以外の場合は、フィールド名が不明瞭な場合でなければ、出力カラム名のデフォルトはフィールド名です。


) キー ビルダーまたは値ビルダーは、いくつかの異なる集計方式で参照できます。たとえば、srcaddr キーはさまざまな集計方式に表示されます。さらに、特定のフローにビルダーが参照するフィールドが含まれている限り、キーと値、および集計方式は特定のバージョンの NDE から独立しています。


これを説明するため、 nfc-config-predefined.xml で定義されたキー ビルダーと値ビルダーのインスタンスの例を次に示します。

<key-builders>
<inetaddress-key id=”srcaddr-key”>
<field>srcaddr</field>
</inetaddress-key>
[additional key builders not shown]
</key-builders>
 
<value-builders>
<sum-value id=”packet-count-value”>
<field>pkts</field
</sum-value>
[additional value builders not shown]
</value-builders>
 

この例では、キー srcaddr-key がキー ビルダー inetaddress-key のインスタンスとして宣言され、フィールド srcaddr を参照しています。 name 要素が指定されていないため、出力のカラム名は srcaddr がデフォルトとなります。 inetaddress-key のすべてのインスタンスは、フロー内の発信元データの長さに応じて、標準 IPV4 または IPV6 アドレス表記でデータを書き込みます。集計方式は、キーの ID srcaddr-key を参照することにより、出力にこの srcaddr カラムを含めることができます。

packet-count-value は、値ビルダー sum-value のインスタンスとして宣言され、フィールド pkts を参照します。 name 要素が指定されていないため、出力のカラム名は pkts がデフォルトとなります。 sum-value のすべてのインスタンスは、整数値としてデータを書き込みます。集計方式は、値の ID packet-count-value を参照することにより、この pkts カラムを出力に含めることができます。

デフォルトのキーと値の完全なリストについては、 nfc-config-predefined.xml <key-builders> 要素と <value-builders> 要素を参照してください。すべての V1 ~ V8 固定集計方式のキーと値は、デフォルトで用意されています。必要に応じて、ファイル nfc-config.xml でその他のキーと値を追加したり、定義済みのキーと値を変更したりできます。

集計方式の作成

集計方式は、フロー データの集約と、出力の生成に使用される特定のキーと値の宣言です。CNS NetFlow Collection Engine Release 3.x および 4.0 では、V1 ~ V8 NDE の固定集約方式がコードに実装され、変更できませんでした。CNS NetFlow Collection Engine Release 4.0 では、ユーザがキーと値を選択できる「カフェテリアスタイル」集約が導入されましたが、たとえばフィールド マッピングがサポートされないなど、実装には制限がありました。また、この 2 つのアプローチ間には不便な隔たり(たとえば、別々のフィルタ構文)がありました。

CNS NetFlow Collection Engine Release 5.0 では、すべての集約がカフェテリアスタイルとなっています。XML 定義は、必要に応じて変更できる CNS NetFlow Collection Engine Release 3.x および 4.0 のすべての固定集計方式に対して提供されています。

たとえば、HostMatrix 集計方式の定義は次のように定義されます。

<aggregation-scheme id=”HostMatrix”>
<keys>
<key id=”srcaddr-key”/>
<key id=”dstaddr-key”/>
</keys>
<values>
<value id=”packet-count-value”/>
<value id=”byte-count-value”/>
<value id=”flow-count-value”/>
</values>
</aggregation-scheme>
 

ID アトリビュートは、集計方式の名前です。集約器は、ID による集計方式を参照し、出力ファイル ヘッダーは ID を含みます。各キー ID は、 <key-builders> で定義されたキーを参照します。値 ID は、 <value-builders> で定義された値を参照します。

すでに説明したとおり、集計方式は NDE バージョンから独立しています。唯一の要件は、集計方式のすべてのキーおよび値が参照するすべてのフィールドを、集約されたフローで表示する必要があるということです。それ以外の場合は、フローが処理されるときにログでエラーが報告されます。

デフォルトの集計方式の完全なリストについては、 nfc-config-predefined.xml
<aggregation-schemes> 要素を参照してください。ここでは、CNS NetFlow Collection Engine Release 3.x および 4.0 からのすべての固定集計方式が定義されています。

集約器の作成

CNS NetFlow Collection Engine Release 3.x および 4.0 内のスレッドは、現在は集約器と呼ばれています。集約器は、CNS NetFlow Collection Engine にポート上のワークステーションで収集されたトラフィック フローの集約(要約)方法を指定します。集約器は nfc-config.xml <aggregators> 要素で定義されます。

表4-4 に、集約器に対して指定可能なアトリビュートを示します。

 

表4-4 集約器のアトリビュート

アトリビュート
説明

id

集約器を一意に識別。この名前は、出力ファイルのパスとヘッダーに表示されます。

packet-log-enabled

オプション。デフォルトは false です。true にすると、この集約器に指定されたポートからのパケットはすべて、デバッグ目的で記録されます。このアトリビュートを使用すると、パフォーマンスが著しく低下する場合があります。

device-name-format

オプション。デフォルトは address です。address の場合、出力ファイル パスのルータ アドレスは ipaddress として記述されます。name の場合、代わりにルータの DNS 名が使用されます。

表4-5 に、集約器に対して指定可能な要素を示します。

 

表4-5 集約器の要素

要素
説明

aggregation-scheme

使用する集計方式の ID。

period-minutes

集約期間。

port

受信するポート番号。オプションのプロトコル アトリビュートには、UDP 以外の NDE トランスポート プロトコルの将来的なサポートが含まれています。

state

active または inactive。inactive の場合、集約器は使用できません。

filter

オプション。この集約器に送信されるフローに適用するフィルタの ID。CNS NetFlow Collection Engine Release 3.x および 4.0 とは異なり、Release 5.0 ではフィルタに複雑な式を含むことができるため、1 つのフィルタだけが指定されます。

writers

1 つ以上の writer 要素を含む。Release 5.0 では、これは ascii-writer または binary-writer です。writer には、次の表に示す追加の要素が含まれます。

use-shortcut- address-as-source-ip

オプション。デフォルトは false です。V7 および特定の V8 NDE には、フローを送信するスイッチによりバイパスされたルータのアドレスを示すフィールド router_sc が含まれます。true にすると、これらのバージョンの NDE の場合、Netflow データを送信するスイッチのアドレスはフロー内の router_sc アドレスで置換されます。

output-v5-sampling- info

オプション。デフォルトは false です。true にすると、特定のタイプのルータにより送信された NDE V5 ヘッダー内のオプションのサンプリング情報は、CNS NetFlow Collection Engine 出力ファイル ヘッダーに含まれます。

表4-6 に、ascii-writer および binary-writer に対して指定されるアトリビュートを示します。


) バイナリ出力のサポートは Release 5.0 から廃止されていくため、binary-writer は使用しないことをお勧めします。出力ファイルのサイズを小さくする場合は、代わりに圧縮 ASCII 出力を使用してください。


 

表4-6 ascii-writer および binary-write アトリビュート

アトリビュート
説明

output-base-dir

/opt/CSCOnfc/Data など、出力ファイルが書き込まれるベース ディレクトリ。

表4-7 に、ascii-writer および binary-writer に指定できる要素を示します。

 

表4-7 ascii-writer および binary-writer 要素

要素
説明

use-compression

オプション。デフォルトは false です。true にすると、出力ファイルは gzip 形式で圧縮されます。

max-disk-usage- megabytes

オプション。デフォルトは 0 です。0 以外の値にすると、この集約器のディスク消費量は、指定したメガバイト数に制限されます。一般的なクリーンアップ機能の代わりにこれを使用すると、パフォーマンスが低下する可能性があります。

filename-includes- date

オプション。デフォルトは false です。true にすると、出力ファイル サフィックスに日付と時刻が含まれます。false の場合は、時刻だけが含まれます。

output- postprocessors

ファイルが使用可能になり、filesready ファイル内に記録される前に、各出力ファイルに対して実行するプログラムまたはスクリプトのリスト。後処理プログラムまたはスクリプトを実行している限り、データの集約に使用されるメモリを解放できないため、これらを迅速に実行し、時間のかかるタスクは決して実行しないでください。時間のかかるタスクを実行する必要があるプログラムの場合は、代わりに filesready ファイル更新イベントを受信する必要があります。

各後処理プログラム上のオプションのアトリビュートである
ignore-exit-status
アトリビュートは、プログラムの終了ステータスを無視すべきかどうかを示します。false(デフォルト)の場合、0 以外の終了ステータスではエラー ログが出力され、filesready ファイルはこのファイル名で更新されません。

後処理プログラムの標準出力およびエラーへの出力は、
NFC_DIR/logs/nfc.log に記録されます。

次に、集約器の定義の例を示します。

<aggregator id=”HostMatrixExample”>
<aggregation-scheme id=”HostMatrix”/>
<period-minutes>5</period-minutes>
<port protocol=”udp”>10000</port>
<state>active</state>
<writers>
<ascii-writer>
<use-compression>true</use-compression>
<output-postprocessor>/var/tmp/copyNFCData.sh</output-postprocessor>
</ascii-writer>
</writers>
</aggregator>
 

この集計器は HostMatrix 集計方式を使用し、UDP ポート 10000 でデータを収集し、圧縮 ASCII 出力を 5 分間隔で書き込みます。ユーザ スクリプト /var/tmp/copyNFCData.sh は、各出力ファイルに対して実行されます。

フィルタの作成

フィルタの仕様と動作は、CNS NetFlow Collection Engine Release 5.0 より前のリリースから、大きく変更されています。Release 5.0 では、フィルタはブール結果を評価する式で構成されています。フィルタがフローに対して true と評価された場合、フローは集約されます。true と評価されなかった場合、フローは無視されます。論理演算子は現在サポートされています。任意複合のネストされたフィルタ式もサポートされています。

フィルタには、トップレベルの または 条件 が含まれます。 には、評価結果が AND または OR される複数の要素が含まれます。結果は、オプションで否定できます。要素は、 条件 、または他の のいずれかです。したがって、任意複合のフィルタ論理は、トップレベルの式のネスト式で定義できます。

フィルタ 条件 は、1 つ以上の値または条件定義で指定された値の範囲に対し、キー ビルダーにより返された値を比較することでブール結果を返します。フィルタ条件操作が equals で、値または範囲のセットにキー ビルダーにより返された値が含まれる場合、条件は true と評価されます。同様に、条件が notequals で、値がセットに表示されない場合、条件は true と評価されます。

次の例を参考にしてください。

<filter id=”FilterExample”>
<expression op=”and”>
<expression op=”or”>
<address-filter-condition key-builder="srcaddr-key" op="equals">
<range>
<minimum>64.102.41.1</minimum>
<maximum>64.102.41.31</maximum>
</range>
</address-filter-condition>
<address-filter-condition key-builder="dstaddr-key" op="equals">
<range>
<minimum>64.102.41.1</minimum>
<maximum>64.102.41.31</maximum>
</range>
</address-filter-condition>
</expression>
<expression op=”or”>
<integer-filter-condition key-builder="srcport-key" op="equals">
<value>80</value>
</integer-filter-condition>
<integer-filter-condition key-builder="dstport-key" op="equals">
<value>80</value>
</integer-filter-condition>
</expression>
</expression>
</filter>
 

上記の例のフィルタは、64.102.41.1 ~ 64.102.41.31 の範囲にある発信元アドレスまたは宛先アドレスからのフローだけを許可します。ここで、発信元ポートまたは宛先ポートは 80 です。このフィルタを参照している集約器は、これらの基準に一致するフローだけを集約します。

2 つのネストされた式の評価結果は、トップレベルの式により、一緒に AND されます。最初にネストされた式には、2 つの条件があります。1 つ目は発信元アドレスが指定された範囲内であることを確認し、2 つ目は宛先アドレスが指定された範囲内であることを確認します。これらの 2 つの条件の結果は一緒に OR され、この結果、最初のネストされた式の評価結果が得られます。

効率を上げるため、CNS NetFlow Collection Engine は lazy 評価を実行します。たとえば、2 つの条件が一緒に OR され、最初の条件が true と評価される場合、2 番目は評価されません。

必要に応じて、複数の値と範囲を 1 つの条件で指定できます。また、追加の式演算子 and および nor が提供され、式に対して返された評価結果を否定します。上記の例でトップレベルの式の演算子として and の代わりに nand が指定されると、フィルタは指定した基準に一致するものを除くすべてのフローを許可します。

複数の異なるターゲット値に対して 1 つのキー ビルダーの結果を評価する場合、1 つの条件で複数のターゲット値を指定するほうが複数の条件を指定するよりも効率的です。

フィルタ条件は、参照されるキー ビルダーのデータ タイプに応じて、 address-filter-condition
integer-filter- condition
string-filter-condition のいずれかで指定されます。特別な条件
nde-source-filter-condition を使用すると、ルータの ipaddress またはホスト名に基づいてフローをフィルタリングできます。

マップの作成

マップの仕様および動作は、5.0 より前のリリースから大きく変更されています。CNS NetFlow Collection Engine Release 5.0 では、アドレス キーを含む任意のキーをマッピングできます。また、任意の数の値または値の範囲をラベルにマッピングできます。

2 つのマッピング キー ビルダー タイプ( integer-range-map-key および address-range- map-key )があります。整数マップは整数フィールド タイプ(たとえば、発信元ポートと宛先ポート、AS 番号、TOS)に対して指定され、アドレス マップはアドレス フィールド タイプ(たとえば、発信元アドレスと宛先アドレス)に対して指定されます。整数マップは整数の値と範囲を受け入れ、アドレス マップは IPV4 および IPV6 の値と範囲を受け入れることを除き、XML 構文はどちらも同じです。

次に、マップの指定方法の例を示します。

<address-range-map-key id=”MapExample”>
<field>srcaddr</field>
<default-label>OTHER</default-label>
<ranges>
<range label=”SITE1”>
<minimum>64.102.41.1</minimum>
<maximum>64.102.41.254</maximum>
</range>
<range label=”SITE2”>
<minimum>64.102.42.1</minimum>
<maximum>64.102.42.254</maximum>
</range>
<range label=”SITE3”>
<minimum>64.102.43.1</minimum>
<maximum>64.102.43.254</maximum>
</range>
</ranges>
</address-range-map-key>
 

この例では、マッピングする値はフロー内の発信元アドレス フィールドから取得されます。3 つのアドレス範囲が指定されます。アドレスがこれらの範囲のいずれかにある場合は、対応するラベルにマッピングされます。アドレスがどの範囲にも入っていない場合、デフォルトのラベル OTHER にマッピングされます。デフォルトのラベルが指定されていない場合、マッピングの結果はアドレス自体のストリング表現になります。

マルチフィールド マップの作成

CNS NetFlow Collection Engine Release 5.0 で導入されたマルチフィールド マップは、5.0 より前のリリースにおけるプロトコル マップの一般的な実装です。古いプロトコル マップを使用すると、フロー内の prot バイト、発信元ポート、および宛先ポートの組み合わせをラベルにマッピングできます。ただし、マルチフィールド マップでは、任意のキーを組み合わせてマッピングを生成できます。これは、たとえば masked-inetaddress-key や bit-field-key などのフロー データを変換する他のキー ビルダーの出力でマッピングを実行できるため、特に有効です。

マルチフィールド マップは、フィルタ定義と少し似ていますが、再帰的に構成されています。次に、マルチフィールド マップの構造を示します。

refinement
condition
case-1
labelopt
refinementopt
case-2
labelopt
refinementopt
...
condition
case-3
labelopt
refinementopt
case-4
labelopt
refinementopt
...
...
 

各条件は、フローから値を抽出する 1 つのキー ビルダーを参照します。それぞれの場合に対して 1 つ以上の値または値の範囲があります。一致するものがあり、ラベルが指定された場合、フローからの値はそのラベルにマッピングされます。入れ子になった refinement が指定された場合、入れ子になった refinement に導入された新しい条件のセットとそのキーが評価されます。一致するものが見つかるまで検索は続行されます。一致するものが見つからない場合は、ラベルが使用されます。

CNS NetFlow Collection Engine Release 4.0 およびそれ以前のプロトコル マップは、マルチフィールド マップのインスタンスとして実装されています。nfc-config-predefined.xml 内の protocol-map-key の定義は、マルチフィールド マップの定義方法の一例です。定義は非常に大きいものですが、マルチフィールド マップの動作方法を説明するため、定義のほんの一部を次に示します。

<multi-field-map-key id="protocol-map-key">
<name>ProtocolExample</name>
<default-label>OTHER</default-label>
 
<refinement>
<integer-map-condition key-builder="prot-key">
<case>
<value>1</value>
<label>ICMP</label>
</case>
 
<case>
<value>6</value>
<label>TCP_OTHER</label>
 
<refinement>
<integer-map-condition key-builder="srcport-key">
<case>
<range>
<minimum>20</minimum>
<maximum>21</maximum>
</range>
<label>TCP_FTP</label>
</case>
</integer-map-condition>
</refinement>
</case>
</integer-map-condition>
</refinement>
</multi-field-map-key>
 

この例では、出力のカラム名が ProtocolExample であるキーを定義します。キー ビルダー prot-key を参照するトップレベルの条件が 1 つあります。フロー内の prot バイトに値 1 が含まれる場合、ラベル ICMP にマッピングが作成されます。prot バイトに値 6 が含まれる場合、マッピングされた値は、 srcport-key を参照するネストされた条件に対して入れ子になった refinement 内で一致するものが検出されるかどうかによって決まります。 srcport-key が 20 から 21 の範囲内の場合、TCP_FTP にマッピングが作成されます。それ以外の場合、 prot-key 値 6 で指定されたラベル(TCP_OTHER)にマッピングが作成されます。

条件に対して選択されるキー ビルダーによって返されるタイプに応じて、 integer-map-condition
address-map-condition
、または string-map-condition のいずれかを精製の条件として指定する必要があります。上記の両方の条件が整数タイプを返すビルダーを参照するため、 integer-map-condition は、両方に対して指定されます。

条件内の値または範囲が一致した場合でも、ラベルが指定されていなければ、後続の条件は継続して検索されます。これは、入れ子になった refinement がある値と一致したときだけマッピングされるようにする場合に役立ちます。上記の例を使用して説明すると、TCP_OTHER が prot-key 値 6 のラベルとして指定されていないとします。 srcport-key 条件を含む入れ子になった refinement 内で一致するものがなければ、マッピングはトップレベルのデフォルトのラベル OTHER に戻ります。

オプション データ マップの作成

Option Data Map は、オプション データ キー ビルダーによって使用されるオプション データ エントリをキャッシュして、データ フロー内の 1 つ以上のフィールドをオプション データ フローからの値にマッピングします。オプション データ フロー内の 1 つ以上のフィールドは、マッピングが実行されるデータ フロー内に表示される必要があるキーと解釈されます。オプション データ レコード内の 1 つのフィールドだけが、これらのキー フィールドの一意の組み合わせに関連する値として解釈されます。オプション データ キー ビルダーは、Option Data Map で検索を実行することにより、この値へのマッピングを実行します。

同様に、集計方式はデータ フローの集計に必要なフィールドを定義します。オプション データ マップは、オプション データ レコードから抽出されるキー フィールドと値フィールドを定義する 1 つ以上のオプション データ マップ エントリで構成されています。オプション データ レコードに必要なすべてのフィールドが含まれる場合、CNS NetFlow Collection Engine はオプション データ キー ビルダーにより取得できるマップ エントリを作成します。

オプション データ マップ エントリを作成するには、次の手順を実行します。


ステップ 1 データ フローとオプション データ フロー間で関係がある必要なフィールドのフィールド定義を検索します。たとえば、オプション データ フローはインターフェイス インデックスとインターフェイス名のマッピング情報で送信されます。 nfc-config-predefined.xml <fields> 要素にあるこれらのフィールドのフィールド定義を検索します。

<field id=”10” name=”INPUT_SNMP” type=”integer”/>
<field id=”14” name=”OUTPUT_SNMP” type=”integer”/>
<field id=”82” name=”IF_NAME” type=”utf8-string”/>
 

ステップ 2 既存のキー ビルダーを使用するか、これらのフィールドを参照する新しいキー ビルダーを作成して、オプション データ フローとトラフィック データ フローの両方からデータを取得します。

<integer-key id=”input-if-index-key”>
<field>INPUT_SNMP</field>
</integer-key>
<integer-key id=”output-if-index-key”>
<field>OUTPUT_SNMP</field>
</integer-key >
<string-key id=”if-name-key”>
<field>IF_NAME</field>
</string-key>
 

ステップ 3 nfc-config.xml option-data-map 内で、これらのフィールドを参照する option-data-map-entry 要素を作成します。この方法によって、一致するエントリがオプション データ マップ内に作成され、キャッシュされます。

次の例におけるエントリは、 INPUT_SNMP フィールドおよび IF_NAME フィールドを持つオプション データ レコードをエントリ ID if-name-map-entry を持つオプション データ マップに設置します。各エントリには、1 つのキー、つまり input-if-index-key キー ビルダーにより返される整数と、前述で定義した if-name-key キー ビルダーにより返されるインターフェイス名のストリング値が含まれます。この例では、オプション データ フロー内のインターフェイス インデックスのフィールド タイプは、入力インターフェイス インデックスのみです。インデックスが入力インターフェイスまたは出力インターフェイスかに関わらず、インターフェイス名は同じであるため、ルータはオプション データ レコード内の入力インターフェイスだけを送信します。

<option-data-map>
<option-data-map-entry id=”if-name-map-entry”>
<keys>
<key id=”input-if-index-key”/>
</keys>
<value id=”if-name-key”/>
</option-data-map-entry>
</option-data-map>
 

ステップ 4 このオプション データ マップ エントリを参照する 1 つ以上のオプション データ キー ビルダーを作成して、トラフィック フロー内のフィールドからオプション データ キャッシュ内の値にマッピングします。次の例における input-if-name-map-key キー ビルダーおよび output-if-name-map-key キー ビルダーは、データ フロー内の入力インターフェイス インデックスと出力インターフェイス インデックスを if-name-map-entry オプション データ マップ エントリ内のインターフェイス名の値にマッピングします。

<option-data-key id=”input-if-name-map-key”>
<name>input_interface_name</name>
<option-data-map-entry>if-name-map-entry</option-data-map-entry>
<keys>
<key id=”input-if-index-key”/>
</keys>
</option-data-key>
<option-data-key id=”output-if-name-map-key”>
<name>output_interface_name</name>
<option-data-map-entry>if-name-map-entry</option-data-map-entry>
<keys>
<key id=”output-if-index-key”/>
</keys>
</option-data-key>
 

特定のキーに対してマップ エントリが存在しない場合、CNS NetFlow Collection Engine 出力の結果は空のストリングになります。つまり、出力のカラム値が空になります。CNS NetFlow Collection Engine が起動した直後は、データ フローがオプション データ フローより先に到着するように、必ず時間が少し空くため、CNS NetFlow Collection Engine 出力ファイルを処理するアプリケーションは、このことを予測します。


 


) CNS NetFlow Collection Engine 5.0.2 オプション データ マップ エントリは、Web ベース ユーザ インターフェイスでは作成できません。コンフィギュレーション XML を編集して作成する必要があります。オプション データ キー ビルダーの詳細については、「option-data-key」を参照してください。


ソース グループの作成

通常、別のデバイスからのフローは個別に集約され、デバイスごとに個別の出力ファイルが書き込まれます。ただし、グループ内の各デバイスをリストする NDE ソース グループを指定することにより、複数のデバイスからのフローを一緒に集約して、出力することもできます。これは、CNS NetFlow Collection Engine Release 5.0 より以前のリリースにおける ROUTER_GROUPNAME 機能です。

次に、NDE ソース グループの指定方法の例を示します。

<nde-source-groups>
<group id=”group1”>
<nde-source id=”64.102.41.1”/>
<nde-source id=”64.102.41.2”/>
<nde-source id=”64.102.41.3”/>
</group>
</nde-source-groups>
 

グループは、 nfc-config.xml の nde-source-groups 要素に追加されます。上記の group1 内の 3 台のデバイスからそれぞれ受信された NDE は、集約されて group1 というデバイス名で一緒に出力されます。

アクセス リストの作成

グローバル アクセス リストは、特定のデバイスのセットからのパケットの許可または拒否に使用されます。これは、セット内のデバイスからのパケットだけを拒否するように設定できることを除き、CNS NetFlow Collection Engine Release 5.0 より前のリリースにおける ACCEPT_PACKETS_FROM 機能です。

次に、アクセス リストの指定方法の例を示します。

<nde-source-access-list action=”permit”>
<nde-sources>
<nde-source id=”64.102.41.10”/>
</nde-sources>
 
<nde-source-groups>
<group id=”group1”/>
</nde-source-groups>
</nde-source-access-list>
 

この例では、デバイス 64.102.41.10 と、 group1 でリストされているデバイスからのパケットだけが受信されます。 nde-source-access-list action アトリビュートが deny の場合、リストされたものを除くすべての発信元からのパケットが受信されます。

グローバル設定値

表4-8 に、 nfc-config-predefined.xml に記載されるグローバル設定値を示します。グローバル設定値のすべてのパス名では、トップレベルの CNS NetFlow Collection Engine ディレクトリを ${NFC_DIR} と指定できます。これらの設定値は、 nfc-config.xml に上書きできます。

 

表4-8 グローバル設定値

設定値
説明

num-packet-pool- entries

内部パケット バッファ サイズの設定値。内部使用のみ。

max-nde-packet-size

NDE パケットの最大サイズ。内部使用のみ。

cleanup-interval

各クリーンアップ ジョブ間の時間間隔(時)。

cleanup-job

cleanup-interval の最後に起動される実行ファイルの場所。

filesready-file-dir

filesready ファイルが書き込まれるディレクトリの絶対パス。

packet-log

パケット ログの設定値。 base-dir アトリビュートは、パケット ログ ファイルが書き込まれるディレクトリの絶対パスです。 use-compression アトリビュートは、パケット ログ ファイルが圧縮されるかどうかを表します。

output-field-delimiter

出力のフィールド用の分離記号。カンマまたはパイプのいずれか。

start-output-at-top-of-the-hour

true の場合、コレクタの再始動後に出力ファイルが最初に書き込まれる時間が 0 時から計算されます。 false の場合、出力期間はコレクタの開始時間との相対時間です。

output-format

csv-only、mixed、または xml-only のいずれか。csv-only の場合、
CNS NetFlow Collection Engine 出力ファイル ヘッダーは CNS NetFlow Collection Engine Release 3.x および 4.0 と互換性があります。 mixed の場合、出力ファイル ヘッダーは各フィールドに関する追加情報を含む XML ですが、データ レコードはカンマまたはパイプで区切られたフィールドとして書き込まれます。xml-only の場合、出力ファイル全体が XML として書き込まれます。出力ファイルに CNS NetFlow Collection Engine 5.0 のレポート機能との互換性を持たせるには、output-format を mixed にする必要があります。

時間帯の設定

データ ファイル ディレクトリ構造、データ ファイル名、データ ファイル内のヘッダー、およびログ ファイル内のメッセージに名前を付ける際に使用される日付と時刻は、現地時間帯とは異なる時間帯に関連するように変更できます。旧リリースの CNS NetFlow Collection Engine では、この設定にグローバル設定値が使用されていました。CNS NetFlow Collection Engine Release 5.0 では、標準 UNIX の環境設定値である TZ を使用します。

CNS NetFlow Collection Engine で使用される時間帯を現地時間から GMT に変更するには、起動スクリプト /opt/CSCOnfc/bin/nfcollector の先頭に次のスクリプトを追加します。

TZ=GMT

export TZ

メモリ使用状況の調整

CNS NetFlow Collection Engine のメモリ要件は、次の要因によって決まります。

発信元デバイスの数

集約期間内の Netflow データの量と「一意性」

集約器の数

各集計方式におけるキーと値の数およびタイプ

オーバーヘッド(たとえば、事前に割り当てられるバッファ、およびプログラムのサイズなど)

前のリリースでは、CNS NetFlow Collection Engine プログラムはコンパイルされた実行形式で、展開方法に問題があり、すべてのシステム メモリがなくなるまでメモリを消費しました。CNS NetFlow Collection Engine 5.0 は主に Java テクノロジーを使用して構築されているため、Java Virtual Machine が割り当てできるメモリ量の絶対最大値を JVM のコマンドラインで指定できます。

上限に指定したメモリが不十分な場合、JVM はメモリ不足を報告し、CNS NetFlow Collection Engine は発生した内容を示すログの出力を試行します。ログが $NFC_DIR/logs のいずれかのログ ファイルでメモリが消費されたことを報告された場合、追加のシステム メモリが使用可能であれば上限を上げることができます。

すべての CNS NetFlow Collection Engine プロセスのメモリ設定は、ファイル
$NFC_DIR/config/nfcmem で統合されます。各プロセスには、プロセスにより使用可能な初期メモリと最大メモリの 2 つの設定が定義されています。たとえば、メモリを最も多く消費するものにコア集約処理があります。このプロセスが割り当てできる初期メモリ量と最大メモリ量のデフォルト設定は、次に示すように nfcmem で定義されます。

COLLECTOR_MEM_INI=-Xms256M
COLLECTOR_MEM_MAX=-Xmx768M
 

-Xms256M は開始サイズが 256 メガバイトであることを表し、 -Xmx768M は、Netflow データの集約の必要に応じて最大で 768 メガバイトを割り当てできることを表します。これらの値は、CNS NetFlow Collection Engine を実行するためだけの 1 ギガバイト マシンの初期デフォルトとして選択されています。他の CNS NetFlow Collection Engine プロセスはさらにメモリを消費する可能性があります。

たとえば、レポートの生成には Web プロセスのデフォルトよりもさらに多くのメモリが必要な場合があります。Web プロセスに対して初期メモリ サイズを 128MB、最大メモリサイズを 256MB にそれぞれ設定するには、ファイル $NFC_DIR/config/nfcmem WEB_MEM_INI -Xms128M に設定し、 WEB_MEM_MAX -Xms256M に設定します。推奨設定は 128MB および 256MB ですが、これでは不十分な場合もあります。レポートの生成時にメモリ関連のエラーが続いて発生する場合は、より大きな値を設定する必要があります。

次の表に、 nfcmem 内の各メモリ設定、および対応するプロセスを示します。関連する Process
Watcher サブシステムが適用可能な場合はカッコ内に記載しています。

 

表4-9 nfcmem 設定

メモリ設定
対応するプロセス

COLLECTOR_MEM_INI、
COLLECTOR_MEM_MAX

コア収集および集約(nfc)

RE_MEM_INI、
RE_MEM_MAX

Report Generator(re)

WEB_MEM_INI、
WEB_MEM_MAX

Web サーバ(web)

BGP_MEM_INI、
BGP_MEM_MAX

CNS NetFlow Collection Engine BGP ピア

CNSXML_MEM_INI、
CNSXML_MEM_MAX

CNS-XML インターフェイス(nfcxml)

GEN_REPORT_MEM_MIN、
GEN_REPORT_MEM_MAX

コマンドライン報告ツール

nfcmem 設定 UDP_READER_POOL_ENTRIES は、内部パケット バッファ内のエントリの数を指定します。バッファにより消費される実際のメモリは、この値に各バッファ エントリのサイズをかけた値です。これは、グローバル設定値 max-nde-packet-size で決定します。
UDP_READER_POOL_ENTRIES のデフォルト値は、通常、更新されませんが、ローエンド システム上の NetFlow データの低ピークなスループット率の場合、この値を小さくするとメモリを保護できますが、パケットが削除される危険性が増します。

ディスク スペースの管理

エクスポート デバイスからエクスポートされるフロー データの量と、CNS NetFlow Collection Engine のスレッド アトリビュート設定によっては、CNS NetFlow Collection Engine は大量のディスク スペースを短時間に消費することがあります。CNS NetFlow Collection Engine には、ディスク スペースの使用量を管理するため、次のような機能が用意されています。

フィルタ

集約

データ ファイルとディスク スペースのオプション

フィルタ

前述のとおり、フィルタを使用することで、不要なフロー データを廃棄することができます。フィルタを使用すると、必要なデータのみを格納でき、CNS NetFlow Collection Engine で使用するディスク スペースを削減できる可能性があります。

集約

集計方式は、エクスポート デバイスからエクスポートされたフロー データを CNS NetFlow Collection Engine で要約する方法を定義するために使用します。アプリケーションで必要な集計方式のみを使用し、可能な場合はディスク上に最小限のデータを生成する集計方式を選択することで、CNS NetFlow Collection Engine で使用するディスク スペースの量を最小限に抑えることができます。たとえば、 HostMatrix 集計方式を使用すると、 DetailHostMatrix 集計方式を使用した場合に比べ、ディスク スペースの使用量が少なくなります。もちろん、使用する集計方式は、主に必要なデータおよびデータを要約する方法により決定されます。ただし、異なる集計方式を使用すると、CNS NetFlow Collection Engine で使用するディスク スペース量に大きな影響を与えるので、注意が必要です。

NetFlow データ エクスポートが有効な場合にエクスポート デバイスが生成する、UDP トラフィック量を見積もることができます。そのためには、スイッチング スループットの 1 秒あたりの平均パケット数やフローごとの平均パケット数を含む、ネットワークのトラフィック特性を理解する必要があります。

たとえば、NetFlow が使用可能なエクスポート デバイスでの平均スループットが 1 秒あたり 150 パケットでフローごとの平均パケット数が 100 の場合、エクスポート デバイスからの 1 秒あたりのフロー レコード数は約 1500(150 * 100)となります。NetFlow データ エクスポート形式 Version 5 データグラムが使用されている場合、期待される 1 秒あたりのエクスポート デバイスからの NetFlow エクスポート データグラム数は約 50(1500 フロー / 30 エクスポート データグラム)または 45 KB/秒(30 * 1500バイト/データグラム)です。

データ ファイルとディスク スペースのオプション

オプション パラメータは、ディスク スペースの制限に使用可能で、同時にシステム パフォーマンスを向上させます。これらのパラメータについては、「集約器の作成」および 「グローバル設定値」に記載されています。ディスク スペースの制限とシステム パフォーマンスの向上を行うには、次のいずれかを実行します。

データ ファイルに gzip 圧縮を適用します。

ASCII 形式のデータ ファイルの代わりにバイナリ データ ファイルを作成します。

max-disk-usage-megabytes パラメータを使用して、データ ファイルが削除される前にそれらで使用されるディスク スペース量を指定します。


) 定期クリーンアップ機能を使用する代わりに集約器の max-disk-usage を指定すると、パフォーマンスが大幅に低下する可能性があります。


cleanup-interval パラメータを使用して、各データ ファイル cleanup-job の時間間隔を指定します。

cleanup-job パラメータを使用して cleanup-interval パラメータの最後で実行するプログラムまたはスクリプトを指定し、データ ファイルをフラッシュします。

ディスク使用量の監視

CNS NetFlow Collection Engine には、ディスク使用量が設定可能な制限値に到達またはそれを超えた場合、ログ ファイル $NFC_DIR/logs/nfc.log に警告ログを書き込むディスク使用量の監視ユーティリティが含まれます。警告ログへの書き込みが行われると、ディスク使用量が個別の設定可能な制限値を下回ったときに情報ログが書き込まれます。必要に応じて、1 つ以上のファイルシステムが監視されます。

ディスク使用量を監視するには、XML 設定の disk-usage-monitor 要素を作成します。監視される各ファイルシステムに対して、監視要素を含めます。

たとえば、次のコンフィギュレーションでは、 $NFC_DIR/Data ディレクトリを含むファイルシステムが 1 分間隔で確認されます。使用率が 90% に達すると警告ログが発行され、使用率が 80% を下回ると情報ログが続けて発行されます。

<disk-usage-monitor>
<monitor filesystem="${NFC_DIR}/Data" interval="1" warning-threshold="90" clear-threshold="80"/>
</disk-usage-monitor>