NetFlow について
ここでは、NetFlow の機能について説明します。
• 「NetFlow の概要」
• 「PISA での NetFlow」
• 「PFC3B での NetFlow」
NetFlow の概要
NetFlow は、スイッチを通過するパケットに関するトラフィック統計情報を収集し、NetFlow テーブルに保存する機能です。Programmable Intelligent Services Accelarator(PISA)の NetFlow テーブルはソフトウェアでルーティングされたフローの統計情報をキャプチャし、PFC3B の NetFlow テーブルはハードウェアでルーティングされたフローの統計情報をキャプチャします。
NetFlow テーブルを使用する機能はいくつかあります。たとえば、Network Address Translation(NAT; ネットワーク アドレス変換)は、NetFlow を使用してフォワーディングの結果を修正します。また、その他の機能(QoS microflow ポリシングなど)でも、NetFlow テーブルの統計情報を使用して QoS ポリシーが適用されています。NetFlow Data Export(NDE; NetFlow データ エクスポート)は、外部装置(NetFlow 収集装置)に統計情報をエクスポートする機能を提供します。
NetFlow は、ルーテッド トラフィックとブリッジド トラフィックの両方の統計情報を収集するように設定できます。
大量の統計情報の収集とエクスポートは、スーパーバイザ エンジンや PISA のプロセッサ利用率に大きな影響を及ぼします。そのため、NetFlow には、統計情報の量を制御する設定オプションが用意されています。これらのオプションは次のとおりです。
• NetFlow フロー マスクでは、計測されるフローの細かさを設定します。固有性の高いフロー マスクを設定すると、大量の NetFlow テーブル エントリが生成され、エクスポートされる統計情報も大量になります。固有性が低いフロー マスクを設定すれば、比較的少数の NetFlow テーブル エントリにトラフィック統計情報が集約され、生成される統計情報の量は少なくなります。
• NetFlow サンプリング機能を使用すると、フロー内のトラフィック データの一部がエクスポートされるので、統計情報のエクスポート量が大幅に削減されます。NetFlow サンプリングでは、収集される統計情報の量は減りません。
• NetFlow 集約は、収集された統計情報をエクスポート前に統合します。集約では、エクスポートされるレコードの量は減りますが、収集される統計情報の量は減りません。NetFlow 集約を使用すると、スイッチの CPU 利用率が上昇し、収集装置で使用できるデータが少なくなるので注意してください。NetFlow 集約には、NetFlow バージョン 8 が使用されます。
NetFlow には、テーブルから削除できる失効フローを識別するための設定可能なタイマーが 3 つあります。NetFlow は、失効エントリを削除して、新しいエントリのためにテーブル スペースを開放します。
PISA での NetFlow
PISA の NetFlow テーブルは、ソフトウェアでルーティングされるフローの統計情報をキャプチャします。PISA の NetFlow は、NetFlow 集約をサポートしています。NetFlow の集計方式については、次のマニュアルを参照してください。
『 Cisco IOS NetFlow Configuration Guide 』
PISA での NetFlow 集約の設定については、次のマニュアルを参照してください。
『 Cisco IOS NetFlow Configuration Guide 』
PISA の NetFlow は、Type of Service(ToS; サービス タイプ)ベースのルータ集約をサポートしています。次のマニュアルを参照してください。
『 Cisco IOS NetFlow Configuration Guide 』
マルチキャスト IP に対する NetFlow については、次のマニュアルの「NetFlow Multicast Support」を参照してください。
『 Cisco IOS NetFlow Configuration Guide 』
「NetFlow Multicast Support」には、マルチキャスト ファースト スイッチングや Multicast Distributed Fast Switching(MDFS)の設定に必要な前提条件が記載されています。ただし、この前提条件は、Supervisor Engine 32 PISAに NetFlow マルチキャスト サポートを設定する場合には適用されません。
PFC3B での NetFlow
PFC3B の NetFlow テーブルは、ハードウェアでルーティングされるフローの統計情報をキャプチャします。PFC3B は NetFlow サンプリングと NetFlow 集約をサポートしています。PFC3B では、NetFlow ToS ベースのルータ集約はサポートされていません。
ここでは、PFC3B の NetFlow について詳細に説明します。
• 「フロー マスク」
• 「フロー マスクの不一致」
フロー マスク
フローとは、所定の送信元と宛先の間のパケットの単一方向ストリームです。フロー マスクによって、NetFlow がフローの識別に使用する着信パケット内のフィールドが指定されます。NetFlow は、フロー マスクで定義されている各フローの統計情報を収集します。
PFC3B は、次のフロー マスクをサポートしています。
• source-only:より固有性の低いフロー マスク。PFC3B は送信元 IP アドレスごとにエントリを 1 つ維持します。指定された送信元 IP アドレスからのすべてのフローの統計情報がこのエントリに収集されます。
• destination:より固有性の低いフロー マスク。PFC3B は宛先 IP アドレスごとにエントリを 1 つ維持します。指定された宛先 IP アドレスへのすべてのフローの統計情報がこのエントリに収集されます。
• destination-source:より固有性の高いフロー マスク。PFC3B は送信元および宛先 IP アドレスのペアごとにエントリを 1 つ維持します。同じ送信元 IP アドレスと宛先 IP アドレスの間のすべてのフローの統計情報がこのエントリに収集されます。
• destination-source-interface:より固有性の高いフロー マスク。送信元 VLAN Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)ifIndex を destination-source フロー マスク中の情報に追加します。
• full:より固有性の高いフロー マスク。PFC3B は IP フローごとにテーブル エントリを個別に作成し、維持します。full エントリには送信元 IP アドレス、宛先 IP アドレス、プロトコル、およびプロトコル ポートが格納されます。
• full-interface:最も固有性の高いフロー マスク。送信元 VLAN SNMP ifIndex を full フロー マスク中の情報に追加します。
フロー マスクによって、収集される統計情報の細かさが決まります。これによって NetFlow テーブルのサイズを制御できます。より固有性の低いフロー マスクを使用すると NetFlow テーブル内のエントリの数は少なくなり、最も固有性の高いフロー マスクを使用すると NetFlow エントリの数も最大になります。
たとえば、フロー マスクが source-only に設定されている場合、NetFlow テーブルのエントリ数は送信元 IP アドレスごとに 1 つだけです。特定の送信元からのフローはすべて 1 つのエントリに蓄積されます。しかし、フロー マスクが full に設定されていると、NetFlow テーブルには、完全なフローごとに 1 つのエントリが作成されます。1 つの送信元 IP アドレスに対して多くのエントリが作成される場合もあり、NetFlow テーブルは非常に容量が大きくなる可能性があります。NetFlow テーブルの容量については、「NetFlow 設定時の注意事項および制約事項」を参照してください。
フロー マスクの不一致
NetFlow テーブルを使用する機能はいくつかあります。 表 47-1 に各機能のフロー マスク要件を示します。
表 47-1 各機能のフロー マスク要件
|
|
|
|
|
|
|
|
リフレクシブ ACL |
|
|
|
|
|
|
|
TCP インターセプト |
|
|
|
|
|
|
|
Context Based Access Control(CBAC; コンテキストベース アクセス コントロール) |
|
|
|
|
|
|
|
Web キャッシュ リダイレクト(WCCP) |
|
|
|
|
|
|
|
Server Load Balancing(SLB; サーバ ロード バランシング) |
|
|
|
|
|
|
|
Network Address Translation(NAT; ネットワーク アドレス変換) |
|
|
|
|
|
|
|
NDE |
|
|
|
|
|
|
|
NetFlow サンプリング |
|
|
|
|
|
|
|
NetFlow 集約 |
|
|
|
|
|
|
|
microflow ポリシング |
|
|
|
|
|
|
|
機能要件が多岐にわたるため、フロー マスクに不一致が生じることもあります。フロー マスクに関する次の制約事項に留意してください。
• すべての機能に、限定された同じフロー マスク集合を使用しなければなりません。
• PFC3B では、各パケット検索に適用できるフロー マスクは 1 つだけです。
PISA の Feature Manager は、機能間の不一致を解決するソフトウェアです。Feature Manager を使用すると、設定されている NetFlow 機能のすべてに対応する共通のフロー マスクを選択することができます。
ただし、Feature Manager では、設定されている機能に共通のフロー マスクを見つけることができない場合もあります。一部の機能には非常に特殊なフロー マスク要件があるためです。機能間の不一致を解決するために、Feature Manager ソフトウェアは、機能の 1 つを PISA 上のソフトウェアで処理するように指示することもあります。
極端な場合には、Feature Manager ソフトウェアは最初に設定された機能を優先し、以降に設定される機能の設定要求を拒否することもあります。あとから Feature Manager が許容できない機能を設定しようとすると、CLI でエラー メッセージを受信します。
機能間の不一致に関連した問題を回避するために、次の事項に留意してください。
• 最も優先度の高い機能を最初に設定する。解決できない不一致が生じた場合、優先度の低い機能がブロックされます。
• 各機能は、可能な限り、その機能を必要とするインターフェイスだけに設定する。
• 応答メッセージに注意する。Feature Manager が、ある機能のハードウェア アシストをオフにした場合、機能の処理によって RP プロセッサが過負荷状態にならないようにする必要があります。
不一致に関して注意が必要な機能は、次のとおりです。
• CBAC は、full フロー マスクを必要とし、他のフローベースの機能よりも優先されます。フロー マスクに不一致が生じると、他のフローベースの機能は PISA で処理されます。
• 一般的に、NDE は設定されるフローマスクが最小限なので柔軟に利用できます。他のフロー ベースの機能を設定した場合、Feature Manager ソフトウェアは、すべての機能の要件を満たすために、もっと固有性の高いフロー マスクを設定することもあります。
• NetFlow サンプリングには、full-interface フロー マスクが必要です。そのために、同じインターフェイス上の他のフローベースの機能との間で不一致が生じることもあります。
• NDE と QoS の間では不一致が生じます。NDE と QoS の microflow ポリシングは、同じインターフェイス上に設定できません。
• レイヤ 3 インターフェイス上に、NAT に加え、ダイナミック ACE を使用する機能(Web プロキシ認証または Network Admission Control(NAC)レイヤ 3 IP 検証など)が設定されていると、NAT がオーバーロード用に設定されている場合、後続フラグメントが正しく NAT 変換されないことがあります。この場合は、 mls ip nat netflow-frag-l4-zero コマンドを使用すると、NAT 機能を正常に機能させることができます。
NetFlow の設定
ここでは、NetFlow の設定手順について説明します。
• 「PFC3B での NetFlow の設定」
• 「PISA での NetFlow の設定」
(注) インターフェイスに NAT を設定すると、PFC3B はすべての断片化パケットを PISA に送信し、ソフトウェアで処理させます (CSCdz51590)。
NetFlow PFC3B コマンドの概要
表 47-4 に、PFC3B で使用できる NetFlow コマンドの概要を示します。
表 47-4 PFC3B NetFlow コマンドの概要
|
|
mls netflow |
PFC3B で NetFlow をイネーブルにします。 |
mls flow ip |
最小のフロー マスクを設定します。 |
mls aging |
設定可能なエージング パラメータを設定します。 |
show mls netflow {...} |
NetFlow PFC3B のユニキャストおよびマルチキャスト トラフィックに関する情報を表示します。 |
show mls netflow aggregation flowmask |
NetFlow 集約フロー マスクを表示します。 |
(注) • PISA に NetFlow 集約を設定すると、PFC3Bでも自動的にイネーブルになります。
• PISA にレイヤ 2 トラフィックの NetFlow を設定すると、PFC3Bでも自動的にイネーブルになります。
• PISA に マルチキャスト NetFlow を設定すると、PFC3Bでも自動的にイネーブルになります。
PFC3B での NetFlow のイネーブル化
PFC3B で NetFlow 統計情報収集をイネーブルにするには、次の作業を行います。
|
|
Router(config)# mls netflow |
PFC3B で NetFlow をイネーブルにします。 |
Router(config)# no mls netflow |
PFC3B で NetFlow をディセーブルにします。 |
PFC3B で NetFlow 統計情報の収集をディセーブルにする例を示します(デフォルトはイネーブル)。
Router(config)# no mls netflow
最小 IP MLS フロー マスクの設定
PFC3B で NetFlow テーブルに対するフロー マスクの最小特性を設定できます。他の設定機能に固有性の高いフロー マスクが必要な場合、実際のフロー マスクは、 mls flow ip コマンドで設定されたレベルよりも固有性が高くなることもあります(「フロー マスクの不一致」を参照)。
最小 IP Multilayer Switching(MLS; マルチレイヤ スイッチング)フロー マスクを設定するには、次の作業を行います。
|
|
Router(config)# mls flow ip { source | destination | destination-source | interface-destination-source | full | interface-full } |
プロトコルに最小 IP MLS フロー マスクを設定します。 |
Router(config)# no mls flow ip |
デフォルトの IP MLS フロー マスクに戻します(ヌル)。 |
次に、最小 IP MLS フロー マスクを設定する例を示します。
Router(config)# mls flow ip destination
IP MLS フロー マスクの設定を表示するには、次の作業を行います。
|
|
Router# show mls netflow flowmask |
フロー マスクの設定を表示します。 |
次に、MLS フロー マスクの設定を表示する例を示します。
Router# show mls netflow flowmask
current ip flowmask for unicast: destination address
MLS エージング タイムの設定
MLS エージング タイム(デフォルトは 300 秒)は、すべての NetFlow テーブル エントリに適用されます。normal エージング タイムは、32 ~ 4,092 秒の範囲で設定できます。フローは、設定されたインターバルより 4 秒早く、または 4 秒遅く経過する場合があります。フローは、平均して設定値の 2 秒以内に経過します。
ルーティングの変更またはリンク ステートの変化など、エージング以外のイベントによって MLS エントリが削除される場合があります。
(注) MLS エントリの数が推奨利用率(「NetFlow 設定時の注意事項および制約事項」を参照)を超えると、一部のフローで隣接統計情報しか使用できなくなる場合があります。
NetFlow テーブル サイズが推奨利用率を超えないように維持するには、mls aging コマンドを使用する際、次のパラメータをイネーブルにします。
• normal:非アクティブ タイマーを設定します。このタイマーの時間内にパケットを受信しなかった場合、そのフローのエントリがテーブルから削除されます。
• fast aging:わずかな数のパケットしかスイッチングせず、そのあと再び使用されることのないフローに対して作成されるエントリを、効率的に期限切れにするためのプロセスを設定します。fast aging パラメータは、time キーワード値を使用して、各フローについて最低でも threshold キーワード値で指定される数のパケットがスイッチングされているかどうかを調べます。time で指定される時間内に threshold で指定される数のパケットをスイッチングしていないフローについては、このエントリが期限切れになります。
• long:指定時間にわたってアクティブであったエントリは、使用中であっても削除するように設定します。long エージングは、不正確な統計情報の原因となるカウンタ ラップアラウンドを防止するために使用します。
fast aging によって削除される一般的なテーブル エントリは、Domain Name Server(DNS; ドメイン ネーム サーバ)または Trivial File Transfer Protocol(TFTP; 簡易ファイル転送プロトコル)サーバとやりとりするフローに対するエントリです。
MLS fast aging タイムをイネーブルにすることが必要な場合は、最初は 128 秒に設定してください。NetFlow テーブル サイズが増え続け、推奨利用率を超えた場合は、テーブル サイズが推奨利用率未満になるまで設定値を下げます。テーブルのサイズが増大し続けて、推奨利用率を超えた場合は、normal MLS エージング タイムを短くします。
MLS エージング タイムを設定するには、次の作業を行います。
|
|
Router(config)# mls aging {fast [threshold { 1-128 } | time { 1-128 }] | long 64-1920 | normal 32-4092 } |
NetFlow テーブル エントリの MLS エージング タイムを設定します。 |
Router(config)# no mls aging fast |
fast aging をディセーブルにします。 |
Router(config)# no mls aging {long | normal} |
デフォルトの MLS エージング タイムに戻します。 |
次に、MLS エージング タイムを設定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# mls aging fast threshold 64 time 30
MLS エージング タイムの設定を表示するには、次の作業を行います。
|
|
Router# show mls netflow aging |
MLS エージング タイムの設定を表示します。 |
次に、MLS エージング タイムの設定を表示する例を示します。
Router# show mls netflow aging
enable timeout packet threshold
------ ------- ----------------
normal aging true 300 N/A
PFC3B での NetFlow 集約の設定
PISA に NetFlow 集約を設定すると、PFC3Bでは NetFlow 集約が自動的に設定されます(「PISA での NetFlow 集約の設定」を参照)。
PFC3B に関する NetFlow 集約の情報を表示するには、次の作業を行います。
|
|
Router # show ip cache flow aggregation { as | destination-prefix | prefix | protocol-port | source-prefix ) module slot_num |
NetFlow 集約キャッシュ情報を表示します。 |
Router # show mls netflow aggregation flowmask |
NetFlow 集約フロー マスク情報を表示します。 |
(注) PFC3B では、NetFlow ToS ベースのルータ集約はサポートされません。
次に、NetFlow 集約キャッシュ情報を表示する例を示します。
Router# show ip cache flow aggregation destination-prefix module 1
IPFLOW_DST_PREFIX_AGGREGATION records and statistics for module :1
IP Flow Switching Cache, 278544 bytes
2 active, 4094 inactive, 6 added
236 ager polls, 0 flow alloc failures
Active flows timeout in 30 minutes
Inactive flows timeout in 15 seconds
Dst If Dst Prefix Msk AS Flows Pkts B/Pk Active
Gi7/9 9.1.0.0 /16 0 3003 12M 64 1699.8
Gi7/10 11.1.0.0 /16 0 3000 9873K 64 1699.8
次に、NetFlow 集約フロー マスクの情報を表示する例を示します。
Router# show mls netflow aggregation flowmask
Current flowmask set for netflow aggregation : Vlan Full Flow
Netflow aggregations configured/enabled :
PROTOCOL-PORT Aggregation
SOURCE-PREFIX Aggregation
DESTINATION-PREFIX Aggregation
PFC3B NetFlow 情報の表示
PFC3B での NetFlow に関する情報を表示するには、次のコマンドを使用します。
|
|
Router(config)# show mls netflow { aggregation | aging | creation | flowmask | ip | ipv6 | mpls | table-contention | usage } |
PFC3B での NetFlow に関する情報を表示します。 |
PISA の NetFlow コマンドの概要
表 47-5 に、PISA に使用できる NetFlow コマンドを示します。
表 47-5 PISA NetFlow コマンドの概要
|
|
interface x ip flow ingress |
特定のインターフェイスに対して、PISA と PFC3B で NetFlow をイネーブルにします。 |
ip flow-aggregation cache export version {8|9} mask source minimum x |
NetFlow 集約を設定します。PISA で集約を設定すると、PFC3B の集約もイネーブルになります。 集約データ エクスポート形式 8 または 9 を指定します。 集約の最小マスクを指定します。 |
ip flow ingress layer2-switched vlan x |
レイヤ 2 スイッチド トラフィックの NetFlow をイネーブルにします。 |
interface x ip multicast netflow {ingress|egress} |
特定のインターフェイスでの(PISA および PFC3B)NetFlow マルチキャスト トラフィックをイネーブルにします。 |
show ip cache flow aggregation |
NetFlow 集約の設定を表示します。 |
show ip cache verbose flow |
マルチキャスト NetFlow の設定を表示します。 |
PISA での NetFlow のイネーブル化
PISA で NetFlow をイネーブルにするには、NetFlow を実行させたい各レイヤ 3 インターフェイスに対して次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# interface { vlan vlan_ID } | { type slot/port } | { port-channel port_channel_number } |
設定するレイヤ 3 インターフェイスを選択します。 |
ステップ 2 |
Router(config-if)# ip flow ingress |
ハードウェアまたはソフトウェアでルーティングされたフローに関して、選択したインターフェイスの NetFlow をイネーブルにします。ハードウェアでルーティングされたフローの NetFlow をイネーブルにするには、PFC3B での NetFlow もイネーブルにする必要があります。 |
PISA での NetFlow 集約の設定
PISA に NetFlow 集約を設定するには、次のマニュアルに示されている手順を実行します。
『 Cisco IOS NetFlow Configuration Guide 』
PISA で NetFlow ToS ベースのルータ 集約を設定するには、次のマニュアルに示されている手順を実行します。
『 Cisco IOS NetFlow Configuration Guide 』
(注) • PISA に NetFlow 集約を設定すると、PFC3B でも自動的に設定されます(「PFC3B での NetFlow 集約の設定」を参照)。
• PFC3B では、NetFlow ToS ベースのルータ集約はサポートされていません。
入力ブリッジド IP トラフィックに対する NetFlow のイネーブル化
NetFlow は、入力ブリッジド IP トラフィックをサポートしています。
(注) • 入力ブリッジド IP トラフィックに対して NetFlow をイネーブルにすると、NefFlow サンプリング機能にこの統計情報を使用できます(「NetFlow サンプリング」を参照)。
• VLAN 上のブリッジド IP トラフィックに対する NetFlow をイネーブルにするには、対応する VLAN インターフェイスを作成し、そのインターフェイスに IP アドレスを割り当ててから、no shutdown コマンドを入力して、そのインターフェイスをアップにする必要があります。
VLAN 上の入力ブリッジド IP トラフィックに対して NetFlow をイネーブルにするには、次の作業を行います。
|
|
Router(config)# ip flow ingress layer2-switched vlan vlan_ID [- vlan_ID ] [ , vlan_ID [- vlan_ID ]] |
指定の VLAN 上での入力ブリッジド IP トラフィックに対して NetFlow をイネーブルにします。 コマンドを使用して、PFC3B 上で NetFlow をイネーブルにする必要があります。 |
Router(config)# no ip flow ingress layer2-switched vlan vlan_ID [- vlan_ID ] [ , vlan_ID [- vlan_ID ]] |
指定の VLAN 上での入力ブリッジド IP トラフィックに対して NetFlow をディセーブルにします。 |
次に、VLAN 200 上の入力ブリッジド IP トラフィックに対して NetFlow をイネーブルにする例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip flow ingress layer2-switched vlan 200
マルチキャスト IP トラフィックに対する NetFlow のイネーブル化
マルチキャスト IP の NetFlow をイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# interface { vlan vlan_ID } | { type slot/port } | { port-channel port_channel_number } |
設定するレイヤ 3 インターフェイスを選択します。 |
ステップ 2 |
Router(config-if)# ip flow ingress |
インターフェイスで NetFlow をイネーブルにします。 |
ステップ 3 |
Router(config-if)# ip multicast netflow { ingress | egress } |
特定のインターフェイスでの(PISA および PFC3B)NetFlow マルチキャスト トラフィックをイネーブルにします。 • NetFlow マルチキャスト入力アカウンティングをイネーブルにするには、ingress を指定します。 • NetFlow マルチキャスト出力アカウンティングをイネーブルにするには、egress を指定します。 |
マルチキャスト IP に対する NetFlow に関する詳細は、次のマニュアルの「NetFlow Multicast Support」を参照してください。
『 Cisco IOS NetFlow Configuration Guide 』
「NetFlow Multicast Support」には、マルチキャスト ファースト スイッチングや MDFS の設定に必要な前提条件が記載されています。ただし、この前提条件は、Supervisor Engine 32 PISAに NetFlow マルチキャスト サポートを設定する場合には適用されません。