内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

解決方法

関連情報

概要

このドキュメントでは、Cisco Catalyst 6500 シリーズ スイッチで TCAM（Ternary Content Addressable Memory）しきい値を超えたときに発生する問題とその解決方法について説明します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、Supervisor Engine 720 が稼働する Cisco Catalyst 6500 シリーズ スイッチに基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

Netflow は、スイッチを通過するトラフィックに関する統計情報を収集するために使われる機能です。統計情報は Netflow テーブルに格納された後、Netflow Data Expert（NDE）にエクスポートされます。 ポリシー フィーチャ カード（PFC）およびそれぞれの分散型フォワーディング カード（DFC）に Netflow テーブルがあります。 ネットワーク アドレス変換（NAT）などの一部の機能では、フローを最初にソフトウェアで処理した後、ハードウェア アクセラレーションを行う必要があります。PFC および DFC 上の Netflow テーブルは、ハードウェア アクセラレーションまたはフロー スイッチが行われたトラフィックに関する統計情報を収集します。

NAT、Quality of Service（QoS）などの一部の機能が Netflow を使用します。NAT は転送を決定するために Netflow を使用し、QoS はマイクロポリシング用にフローをモニタするために Netflow を使用します。NetFlow データ エクスポート（NDE）を使用すると、これらの統計情報を外部 Netflow コレクタにエクスポートしてネットワーク動作をさらに分析することができます。

Supervisor Engine 720 は、NetFlow テーブルがどの程度いっぱいになったかをポーリング間隔ごとにポーリングし、テーブル サイズが設定済みしきい値に達するとアグレッシブ エージングを有効にします。

テーブルがほぼ満杯になると、TCAM 内の空きスペース不足のために作成できない新しいアクティブ フローが発生します。この時点で、新しいフロー用のスペースを作成するために、テーブル内のアクティブでないフローを積極的にエージングアウトすることが理にかなっています。このフローは、設定されたタイムアウト値とパケットしきい値を満たしていれば、テーブルに再挿入できます。

問題

Cisco Catalyst 6500 シリーズ スイッチでこのログが報告されることがあります。

EARL_NETFLOW-4-TCAM_THRLD: Netflow TCAM threshold exceeded, TCAM Utilization [[dec]%]

この問題が発生すると、次のコンソール出力が表示されます。

Aug 24 12:30:53: %EARL_NETFLOW-SP-4-TCAM_THRLD:

Netflow TCAM threshold exceeded, TCAM Utilization [97%]

Aug 24 12:31:53: %EARL_NETFLOW-SP-4-TCAM_THRLD:

Netflow TCAM threshold exceeded, TCAM Utilization [97%]

解決方法

Netflow TCAM 使用状況を評価して最適化するために、次の手順を行います。

1. スイッチで service internal が有効になっている場合は、これを次のように無効化します。
6500(config)#no service internal

2. Netflow TCAM のハードウェア制限を検査します。

- TCAM に存在するフローの数を調べるために show mls netflow ip count コマンドを使用します。

- PFC 動作モードを調べるために show platform hardware pfc mode コマンドを使用します。

注：PFC3A、PFC3B、PFC3C 用の NetFlow TCAM（IPv4）容量は 128,000 エントリです。PFC3BXL および PFC3CXL の場合、容量は 256,000 エントリです。

3. フローマスクを変更する準備をします。NetFlow はマスクの概念を使用します。Netflow マスクを使用すると、収集される統計情報の量と詳細度を制御できます。これにより、スーパーバイザ エンジン プロセッサへの影響を制御することができます。使用されるマスクが具体的であるほど、より多くの Netflow テーブル エントリが使用されます。

たとえば、統計が flows per interface-source IP address に設定されている場合、flows per interface-destination-source のままにするよりも少ないエントリが使用されます。

フローマスクが interface-full mode に設定されている場合、有効化されている対象のインターフェイス数によっては NetFlow 用の TCAM がオーバーフローする可能性があります。この情報をチェックするには、show mls netflow ip count コマンドを発行します。マスクを変更することは可能ですが、interface-full mode に設定すると、レイヤ 2、3、4 に関する情報などの最も詳細な統計情報が得られます。

4. 次のようにして現在のフローマスクを確認します。
6500#show mls netflow flowmask

current ip   flowmask for unicast:   if-full

current ipv6 flowmask for unicast:    null
フローマスクを必要に応じて変更します（interface-full flow キーワードにより、使用される TCAM エントリが最大数に設定されます）。
6500(config)#mls flow ip ?

interface-destination         interface-destination flow keyword

interface-destination-source  interface-destination-source flow keyword

interface-full                interface-full flow keyword

interface-source              interface-source only flow keyword

5. エージング タイマーを確認します。Netflow TCAM エージングには次の 3 つの異なるタイマーがあります：通常（Normal）、高速（Fast）、長期（Long）。

- 通常タイマーは、非アクティブな TCAM エントリを消去するために使用されます。デフォルトでは、300 秒間で一致しないすべてのエントリが消去されます。

- 長期タイマーは、1,920 秒（32 分）を超えてテーブルに存在するエントリを消去するために使用されます。 長期タイマーの主な目的は、カウンタのラッピングによって生じる不正確な統計情報を防ぐことです。

- 高速タイマーは、デフォルトで有効になっていません。高速タイマーを有効にするには mls aging fast [{time seconds} [{threshold packet-count}]] グローバル コマンドを使用します。高速タイマーは、設定された時間内に設定済みパケット数が得られないエントリをすべて消去します。

6500#show mls netflow aging

enable timeout  packet threshold

------ -------  ----------------

normal aging true      300         N/A

fast aging   true       32         100

long aging   true     1920         N/A

6. 次のようにエージング タイマーを変更します。
6500(config)#mls aging normal ?

<32-4092> L3 aging timeout in second

6500(config)#mls aging long ?

<64-1920> long aging timeout

6500(config)#mls aging fast ?

threshold fast aging threshold

time fast aging timeout value

6500(config)#mls aging fast threshold ?

<1-128> L3 fast aging theshold packet count

time fast aging timeout value

6500(config)#mls aging fast time ?

<1-128> L3 fast aging time in seconds

threshold fast aging threshold
高速タイマーを有効にする場合は、最初に値を 128 秒に設定します。MLSキャッシュのサイズが32,000エントリを超えて増加し続ける場合は、キャッシュサイズが32,000未満になるまで設定を減らします。それでもキャッシュが32,000エントリを超える場合は、通常のMLSエージングタイマーをを下します。8 秒の倍数になっていないエージングタイマー値はすべて、最も近い 8 秒の倍数値に調整されます。
6500(config)#mls aging fast threshold 64 time 30

関連情報

- Catalyst 6500 リリース 12.2SX ソフトウェア構成ガイド

- Cisco IOS NetFlow について - 技術概要

- テクニカル サポートとドキュメント – Cisco Systems