概要
このドキュメントでは、TCAMリソースの問題の回避策について説明します。
一般的なTCAMエラー
%ACLQOS-SLOT3-4-ACLQOS_OVER_THRESHOLD Tcam 0 Bank 0の使用状況がしきい値に達しました
%ACLMGR-3-ACLMGR_VERIFY_FAIL検証に失敗しました:クライアント8200016E、十分な空きエントリがTCAMバンクで使用できない
「Error:Spanslogic TCAMの制約によりTCAMエントリの挿入に失敗しました" — XLモジュールのみ
TCAMの制約の詳細については、を参照してください。
ハードウェアACLリソース使用率
コマンド:
show hardware access-list resource utilization module <mod>
SITE1-AGG1# show hardware access-list resource utilization mod 3
INSTANCE 0x0
-------------
ACL Hardware Resource Utilization (Mod 3)
--------------------------------------------
Used Free Percent
Utilization
-----------------------------------------------------
Tcam 0, Bank 0 9 16375 0.05
Tcam 0, Bank 1 2 16382 0.01
Tcam 1, Bank 0 7 16377 0.04
Tcam 1, Bank 1 246 16138 1.50
LOU 3 101 2.88
Both LOU Operands 2
Single LOU Operands 1
LOU L4 src port: 0
LOU L4 dst port: 1
LOU L3 packet len: 0
LOU IP tos: 0
LOU IP dscp: 0
LOU ip precedence: 0
LOU ip TTL: 0
TCP Flags 0 16 0.00
Protocol CAM 4 3 57.14
Mac Etype/Proto CAM 9 5 64.28
Non L4op labels, Tcam 0 2 6141 0.03
Non L4op labels, Tcam 1 3 6140 0.04
L4 op labels, Tcam 0 0 2047 0.00
L4 op labels, Tcam 1 1 2046 0.04
Ingress Dest info table 131072 510 0.39
Egress Dest info table 65536 511 0.19
SITE1-AGG1#
Options
TCAMの使用率が高いときのオプションを次に示します。
- アトミックアップデート
コマンド:no hardware access-list update atomic
- すべてのACLのエントリごとの統計情報を無効にする
コマンド:no statistics per-entry
- フラグメントの処理
コマンド:fragments deny-all/permit-all
- ACE拡張しきい値
コマンド:hardware access-list lou resource threshold
- リソースのプーリング(既存のエントリは移動されないため、サービスに影響しません)
コマンド:hardware access-list resource pooling mod <x>
アトミックアップデート
デフォルトでは、N7Kは、ACLが変更されたときにモジュールに対してアトミックアクセスコントロールリスト(ACL)の更新を実行します。 アトミックアップデートは、アップデートされたACLが適用されるトラフィックを中断しません。ただし、アトミック更新では、ACL更新を受信するI/Oモジュールに、影響を受けるACL内のすべての既存エントリに加えて、更新された各ACLエントリを保存するのに十分なリソースが必要です。更新が発生すると、更新に使用される追加リソースが解放されます。I/Oモジュールに必要なリソースがない場合、デバイスはエラーメッセージを生成し、I/OモジュールへのACLの更新が失敗します。
I/Oモジュールにアトミック更新に必要なリソースがない場合は、
no hardware access-list update atomic
ただし、デバイスが既存のACLを削除し、更新されたACLを実装するのに必要な短時間の間に、ACLが適用されるトラフィックはデフォルトで廃棄されます。 ACLが非アトミック更新を受信している間に、ACLが適用されるすべてのトラフィックを許可する場合。hardware access-list update default-result permitコマンドを使用します。
注:アトミックと非アトミックの両方のアップデートが可能な場合(TCAMに十分な空き領域があるなど)、アトミックが望ましい。アトミック更新を行うための十分な空き領域がない場合、非アトミックが試されます。したがって、現在の実装は、アトミック更新が無効になっている場合でも、常にatomicを最初に試します。しかし、現在、スパニズム制約による障害が発生した場合は非アトミックに切り替えられず、CSCud36802は、この問題に対処するために提出されています(現在はフリータウンで修正されています)。
注:TCAMの使用率が高い状態でACEを削除しようとすると、アトミックアップデートが常に先に行われるため、スパニックスコントレインはヒットする可能性があり、この問題に対処するためにCSCua24513(5.2.7で修正)がされました。
エントリごとの統計情報
デフォルトでは、N7KはTCAMのプログラミング時に機能のマージを試みます。これはTCAMリソースの保存に役立ちます。エントリごとの統計情報が設定されている場合、エントリはマージされず、アクセス制御エントリ(ACE)ごとの統計情報が維持されます。その場合、リソースが増える可能性があります。
ACL処理は常にハードウェア内にあるため、このコマンドはパフォーマンスに影響しません。
統計情報を表示するには、次の2つのオプションがあります。
show ip access-list <acl>
注:ポリシータイプPACL/RACL(インターフェイスに適用されたaclなど)でプログラムされたハードウェアエントリに対してのみ、カウンタを表示します
show hardware internal access-list input entries detail module <x>
注:coppポリシー内で使用されるACLは、パケットの分類に使用されます。パケットが許可/拒否/レート制限されるかどうかは、コントロールプレーンのqos policy/class-map configによって決定されます。aclで指定された許可/拒否アクションは、コピーポリシー内で使用される場合は有効ではありません。
copp aclでstatsを有効にし、かつcopp class-map内で同じaclを使用している場合でも、上記の理由によりshow ip access <acl>ではこの結果が反映されません。基本的に、copp qosポリシー内で使用されるaclは、ポリシータイプ(QoS)としてプログラムされます。coppコントロールプレーンqosポリシーにヒットしているパケットを確認するには、次のコマンドを使用できます。
show system internal access-list input entries detail module <x> | b CoPP
フラグメントの処理
デフォルトのプログラミングモデルでは、各ACEのハードウェアに先頭以外のパラレルフラグメントエントリが作成されます。このエントリは、元のACEと同じ送信元/宛先IPアドレスとプロトコルに一致しますが、L4ポート情報がなく、先頭以外のフラグメントと一致します。
注:非XLフォワーディングエンジンでプログラムされていないL3 ACEのフラグメントエントリ。
デフォルトのフラグメント処理では、2倍のCL TCAM使用率が発生します。すべての先頭以外のフラグメントを許可または拒否するための設定ノブ:
fragments {permit-all | deny-all}
CL TCAM使用率の最適化:ACL全体に対して1つのCL TCAMエントリを消費します(L4 ACEごとに1つのエントリに対して)。
ACE拡張しきい値
L4演算子(range、gt、lt、neq)を使用するACEソフトウェアがL4オペレータを処理する方法は2つあります。
- L4op(ハードウェアリソース)とプログラムLOUレジスタ(別のハードウェアリソース)を割り当てます。
- ACEを複数のeqエントリ(CL TCAMエントリなど)に展開します
グローバルコマンドhardware access-list lou resource thresholdは、ACEに対してオプション1とオプション2が発生した場合に制御します。拡張しきい値は、拡張が発生したときに制御します。デフォルトのしきい値は5です。ACEを<=5 CL TCAMエントリに拡張できる場合、L4opは割り当てられません。
長所/短所:
- 拡張により、TCAMエントリの消費量が増加
- L4op/LOUの使用は、ラベル(10)およびLOUレジスタ(208)ごとにL4opによって制限される
リソースプール
A.K.A.バンクチェーン。詳細は、
関連情報
Cisco BUG ID CSCtd24377 AD-XL:Spanslogicアルゴリズムの制約
Cisco BUG ID CSCuc98853 ACLQOS is not hooring fragment deny-all/permit-all for route-map for XL
ティム・スティーブンスの分類スライド