Cisco Catalyst 4500 および Catalyst 4948 シリーズ スイッチは、TCAM(Ternary Content Addressable Memory)を使用して、ワイヤ速度のアクセス コントロール リスト(ACL)および QoS 機能をサポートします。 ACL とポリシーをイネーブルにしても、ACL 全体が TCAM にロードされていれば、スイッチのスイッチングとルーティングのパーフォーマンスが低下することはありません。TCAM が使い果たされている場合、パケットは CPU パスで転送される場合がありますが、これらのパケットのパフォーマンスが低下する可能性があります。このドキュメントでは、次の項目についての詳細情報を提供します。
Catalyst 4500 と Catalyst 4948 で使用されているさまざまな種類の TCAM
Catalyst 4500 での TCAM のプログラム方法
スイッチで ACL と TCAM を最適に設定して TCAM の枯渇を防止する方法
このドキュメントに特有の要件はありません。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
Catalyst 4500 シリーズ スイッチ
Catalyst 4948 シリーズ スイッチ
注:このドキュメントはCisco IOS®ソフトウェアベースのスイッチにのみ適用され、Catalyst OS(CatOS)ベースのスイッチには適用されません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
さまざまな種類の ACL および QoS ポリシーをハードウェアで実装するために、Catalyst 4500 は、ハードウェア ルックアップ テーブル(TCAM)とさまざまなハードウェア レジスタをスーパーバイザ エンジンでプログラムします。パケットが到着すると、スイッチでハードウェア テーブル ルックアップ(TCAM ルックアップ)が行われ、そのパケットを許可するか、拒否するかが決定されます。
Catalyst 4500 ではさまざまな種類の ACL がサポートされています。表 1 で ACL のこれらの種類を概説します。
表 1:Catalyst 4500 スイッチでサポートされている ACL の種類ACL タイプ | 適用箇所 | 制御されるトラフィック | 方向 |
---|---|---|---|
RACL1 | L32 ポート、L3 チャネル、または SVI3(VLAN) | ルーティング対象 IP トラフィック | 着信または発信 |
VACL4 | VLAN(vlan filter コマンドによる) | VLAN へ、または VLAN からルーティングされるか、または VLAN 内でブリッジされるすべてのパケット | 方向性なし |
PACL5 | L26 ポートまたは L2 チャネル | すべての IP トラフィックと非 IPv 47(MAC ACL による) | 着信または発信 |
1 RACL = ルータ ACL
2 L3 = レイヤ 3
3 SVI = スイッチ仮想インターフェイス
4 VACL = VLAN ACL
5 PACL = ポート ACL
6 L2 = レイヤ 2
7 IPv4 = IP バージョン 4
Catalyst 4500 TCAM のエントリ数は次のようになります。
セキュリティ ACL(機能 ACL)に 32,000 エントリ
QoS ACL に 32,000 エントリ
セキュリティ ACL および QoS ACL の両方では、次のように専用エントリとなっています。
入力方向に 16,000 エントリ
出力方向に 16,000 エントリ
図 3 は、専用 TCAM エントリを示します。TCAM の詳細については、「TCAM の種類」セクションを参照してください。
表 2 に、さまざまな Catalyst 4500 スーパーバイザ エンジンおよびスイッチで使用可能な ACL リソースを示します。
表 2:さまざまなスーパーバイザ エンジンとスイッチの Catalyst 4500 ACL リソースProduct | TCAM バージョン | Feature TCAM(方向ごと) | QoS TCAM(方向ごと) |
---|---|---|---|
スーパーバイザ エンジン II+ | 0 | 8000 エントリ、1000 マスク | 8000 エントリ、1000 マスク |
スーパーバイザ エンジン II+TS/III/IV/V および WS-C4948 | 0 | 16,000 エントリ、2000 マスク | 16,000 エントリ、2000 マスク |
スーパーバイザ エンジン V-10GE と WS-C4948-10GE | 3 | 16,000 エントリ、16,000 マスク | 16,000 エントリ、16,000 マスク |
Catalyst 4500 では、IP ユニキャストとマルチキャスト ルーティングに別々の専用 TCAM が使用されます。Catalyst 4500 では、ユニキャストとマルチキャストのルートが共用するルート エントリを最大 128,000 まで持つことができます。ただし、これらの詳細については、このドキュメントでは取り上げていません。このドキュメントでは、セキュリティおよび QoS の TCAM 枯渇の問題だけを取り上げます。
図 1 は、Catalyst 4500 のハードウェア テーブルに ACL をプログラムするステップを示します。
図 1:Catalyst 4500 スイッチでの ACL のプログラミング ステップ
このステップでは次の作業のいずれかが必要です。
インターフェイスまたは VLAN への ACL または QoS ポリシーの設定および適用
ACL の作成は動的に発生する可能性があります。その一例は、IP ソース ガード(IPSG)機能の場合です。この機能では、ポートに関連付けられた IP アドレスのための PACL が、スイッチにより自動的に作成されます。
既存の ACL の変更
注:ACLの設定だけでは、TCAMプログラミングは行われません。TCAM に ACL をプログラムするには、ACL(QoS ポリシー)をインターフェイスに適用する必要があります。
ACL はハードウェア テーブル(TCAM)にマージされて初めて、プログラム可能となります。 このマージにより、ハードウェア内に複数の ACL(PACL、VACL、または RACL)が結合してプログラムされます。この方法では、パケットの論理転送パスで該当するすべての ACL に対してチェックするために必要なのは、1 つのハードウェア ルックアップだけです。
たとえば、図 2 では、PC-A から PC-C にルーティングされた可能性のあるパケットには、次の ACL を使用できます。
PC-A のポートの入力 PACL
VLAN 1 の VACL
入力方向の VLAN 1 インターフェイス上の入力 RACL
これらの 3 つの ACL がマージされると、許可か拒否の転送決定を行うのに、入力 TCAM での単一のルックアップしか必要ありません。同様に、TCAM は次の 3 つの ACL のマージ結果でプログラムされるので、単一の出力ルックアップしか必要ありません。
VLAN 2 インターフェイス上の出力 RACL
VLAN 2 VACL
PC-C ポート上の出力 PACL
入力用の単一のルックアップと出力用の単一のルックアップを使用すると、これらの ACL のいずれかまたはすべてがパケット転送パスにある場合、パケットのペナルティ ハードウェア転送は発生しません。
注:入力と出力のTCAMルックアップは、ハードウェアで同時に発生します。よくある誤解は、論理パケット フローから考えられるように、出力 TCAM ルックアップが入力 TCAM ルックアップ後に発生するということです。Catalyst 4500 の出力ポリシーは入力ポリシーが変更された QoS パラメータを照合できないので、これを理解しておくことは重要です。セキュリティ ACL の場合は、最も深刻な動作が発生します。次のいずれかの状態でパケットが廃棄されます。
入力ルックアップの結果がドロップで、出力ルックアップの結果が許可の場合
入力ルックアップの結果が許可で、出力ルックアップの結果がドロップの場合
注:入力と出力の両方のルックアップ結果がpermitの場合、パケットは許可されます。
図 2:Catalyst 4500 スイッチでのセキュリティ ACL によるフィルタリング
Catalyst 4500 での ACL のマージは順序に依存します。このプロセスは Order Dependent Merge(ODM)としても知られています。 ODMでは、ACLエントリはACLに表示される順序でプログラムされます。たとえば、ACLに2つのアクセスコントロールエントリ(ACE)が含まれている場合、スイッチは最初にACE 1をプログラムし、次にACE 2をプログラムします。たとえば、ACL 120 の ACE は、TCAM の ACL 100 で ACE より先に開始できます。
マージされた ACL は TCAM 内にプログラムされます。ACL または QoS の入力や出力の TCAM は、さらに PortAndVlan と PortOrVlan の 2 つの領域に分割されます。同じパケット パスに次の両方の ACL が設定されている場合、マージされた ACL は TCAM の PortAndVlan 領域にプログラムされます。
PACL
注:PACLは通常のフィルタリングACLまたはIPSGが作成したダイナミックACLです。
VACL または RACL
パケットの特定のパスに PACL、VACL、または RACL だけがある場合は、ACL が TCAM の PortOrVlan 領域にプログラムされます。図 3 は、さまざまなタイプの ACL のセキュリティ ACL TCAM の切り分けを示します。Qos も、同様に切り分けられた別々の専用 TCAM を持ちます。
現時点では、TCAM のデフォルトの割り当ては変更できません。ただし、将来のソフトウェア リリースでは、PortAndVlan および PortOrVlan 領域で使用できる TCAM 割り当て変更機能を提供する計画があります。この変更により、入力 TCAM または出力 TCAM のいずれかで、PortAndVlan と PortOrVlan の領域を増やしたり減らしたりすることが可能になります。
注:PortAndVlan領域の割り当てが増加すると、入力TCAMまたは出力TCAMのPortOrVlan領域が減少します。
図 3:Catalyst 4500 スイッチ上のセキュリティ ACL TCAM 構造
show platform hardware ACL statistics utilization brief コマンドは、ACL TCAM QoS TCAM の両方について、領域ごとのこの TCAM 使用率を表示します。このコマンド出力は、図3に示すように、使用可能なマスクとエントリを地域別に示しています。この出力例は、Catalyst 4500 Supervisor Engine II+のものです。
注:マスクとエントリの詳細は、このドキュメントの「TCAMの種類」セクションを参照してください。
Switch#show platform hardware acl statistics utilization brief Entries/Total(%) Masks/Total(%) ----------------- --------------- Input Acl(PortAndVlan) 2016 / 4096 ( 49) 252 / 512 ( 49) Input Acl(PortOrVlan) 6 / 4096 ( 0) 5 / 512 ( 0) Input Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Input Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) L4Ops: used 2 out of 64
Catalyst 4500 は、表 2 に示すように、2 種類の TCAM を使用します。このセクションでは、2 つの TCAM の違いを説明して、ご使用のネットワークと設定に適切な製品を選択できるようにします。
TCAM 2 では、8 つのエントリが 1 つのマスクを共有する構造が使用されています。ACE 内の 8 個の IP アドレスは、その一例です。複数のエントリが共有マスクとして同一のマスクを使用する必要があります。各 ACE に異なるマスクがある場合は、エントリが、必要に応じて異なるマスクを使用する必要があります。別々のマスクの使用は、マスクの枯渇につながる可能性があります。TCAM でのマスクの枯渇は、TCAM 枯渇の一般的な原因の 1 つです。
TCAM 3 では、このような制限はありません。各エントリには、TCAM で一意のマスクを指定できます。ハードウェアで使用できるすべてのエントリを完全に使用することは、そのエントリのマスクに関係なく、可能です。
このハードウェア アーキテクチャを示すために、このセクションの例で、TCAM 2 と TCAM 3 がハードウェアで ACL をプログラムする方法を示します。
access-list 101 permit ip host 8.1.1.1 any access-list 101 deny ip 8.1.1.0 0.0.0.255 any
この ACL の例には 2 つの別々のマスクを持つ 2 つのエントリがあります。ACE 1 はホスト エントリであるため、/32 マスクがあります。ACE 2 は、/24 マスクを持つサブネット エントリです。2 番目のエントリはマスクが異なるため、マスク 1 では空のエントリを使用できず、TCAM 2.の場合には、異なるマスクが使用されます。
次の表は TCAM 2 で ACL がプログラムされるしくみを示しています。
マスク | Entries |
---|---|
マスク 1 の照合:発信元の IP アドレスの 32 ビットすべてには「影響なし」:残りの全ビット | 送信元 IP = 8.1.1.1 |
空のエントリ 2 | |
空のエントリ 3 | |
空のエントリ 4 | |
空のエントリ 5 | |
空のエントリ 6 | |
空のエントリ 7 | |
空のエントリ 8 | |
マスク 2 の照合:発信元の IP アドレスの最も重要な 24 ビットには「影響なし」:残りの全ビット | 送信元 IP = 8.1.1.0 |
空のエントリ 2 | |
空のエントリ 3 | |
空のエントリ 4 | |
空のエントリ 5 | |
空のエントリ 6 | |
空のエントリ 7 | |
空のエントリ 8 |
Mask 1の一部として空きエントリが存在する場合でも、TCAM 2構造はMask 1の空きエントリ2にACE 2が含まれることを防止します。ACE 2のマスクがACE 1の/32マスクと一致しないため、このマスクを使用できません。
表 2 が示すように、別々のマスクを使用すると、結果的に使用可能なリソースの枯渇が早まる可能性があります。他のACLでもマスク1の残りのエントリを使用できます。ただし、ほとんどの場合、TCAM 2の効率は高くなりますが、100 %ではありません。この効率は、各設定のシナリオによって変わります。
次の表は、TCAM 3 でプログラムされた同じ ACL を示しています。TCAM 3 では、次のように各エントリにマスクが割り当てられます。
マスク | Entries |
---|---|
IP アドレス 1 のマスク 32 ビット | 送信元 IP = 8.1.1.1 |
IP アドレス 2 のマスク 24 ビット | 送信元 IP = 8.1.1.0 |
空のマスク 3 | 空のエントリ 3 |
空のマスク 4 | 空のエントリ 4 |
空のマスク 5 | 空のエントリ 5 |
空のマスク 6 | 空のエントリ 6 |
空のマスク 7 | 空のエントリ 7 |
空のマスク 8 | 空のエントリ 8 |
空のマスク 9 | 空のエントリ 9 |
空のマスク 10 | 空のエントリ 10 |
空のマスク 11 | 空のエントリ 11 |
空のマスク 12 | 空のエントリ 12 |
空のマスク 13 | 空のエントリ 13 |
空のマスク 14 | 空のエントリ 14 |
空のマスク 15 | 空のエントリ 15 |
空のマスク 16 | 空のエントリ 16 |
この例では、残りの 14 個のエントリはそれぞれ、無制限で、マスクの異なる複数のエントリを持つことができます。したがって、TCAM 3はTCAM 2よりもはるかに効率的です。この例は、TCAMバージョンの違いを示すために過度に簡略化されています。Catalyst 4500 ソフトウェアでは、実際の設定シナリオに対して TCAM 2 でプログラミングの効率を上げる多くの最適化が使用されます。このドキュメントの「TCAM 2 での最適ではない TCAM プログラミング アルゴリズム」セクションでは、これらの最適化について説明しています。
Catalyst 4500 の TCAM 2 と TCAM 3 の両方で、異なるインターフェイスに同じ ACL が適用される場合は、TCAM エントリが共有されます。この最適化により、TCAM の領域が節約されます。
Catalyst 4500 スイッチでセキュリティ ACL のプログラミング中に TCAM の枯渇が生じると、ACL の一部がソフトウェア パス経由で適用されます。TCAM に適用されない ACE に一致するパケットは、ソフトウェアで処理されます。ソフトウェアによるこの処理の実行は、CPU の使用率が高くなる原因となります。Catalyst 4500 ACL のプログラミングは順序に依存しているため、ACL は常に上から下へとプログラムされます。特定の ACL が TCAM に完全には収まらない場合、ACL の最下部の ACE は、TCAM でプログラムされない可能性が高くなります。
TCAM オーバーフローが発生すると、次の警告メッセージが表示されます。以下が一例です。
%C4K_HWACLMAN-4-ACLHWPROGERRREASON: (Suppressed 1times) Input(null, 12/Normal) Security: 140 - insufficient hardware TCAM masks. %C4K_HWACLMAN-4-ACLHWPROGERR: (Suppressed 4 times) Input Security: 140 - hardware TCAM limit, some packet processing will be software switched.
syslog をイネーブルにしている場合は、show logging コマンドの出力でも、このエラー メッセージが見つかります。このメッセージがあるということはつまり、ソフトウェア処理が行われるということです。その結果、CPU 使用率が高くなる可能性があります。新規 ACL の適用中に TCAM 容量の枯渇が発生しても、TCAM にプログラム済みの ACL はプログラムされたままで TCAM に残ります。プログラム済みの ACL に一致するパケットは、継続してハードウェアで処理され、転送されます。
注:大きなACLを変更すると、TCAM-exceededメッセージが表示されることがあります。スイッチは、ACL を TCAM で再プログラムしようとします。ほとんどの場合、新しい、変更された ACL は、ハードウェアで完全に再プログラムできます。スイッチが TCAM へと正常に ACL 全体を再プログラムできる場合は、次のメッセージが表示されます。
*Apr 12 08:50:21: %C4K_COMMONHWACLMAN-4-ALLACLINHW: All configured ACLs now fully loaded in hardware TCAM - hardware switching / QoS restored
ACL が完全にハードウェアで再プログラムされたことを確認するには、show platform software acl input summary interface interface-id コマンドを使用します。
次の出力では、VLAN 1 に対する ACL 101 の設定および、ACL が完全にハードウェアにプログラムされたことの確認が示されています。
注:ACLが完全にプログラムされていない場合は、TCAM枯渇エラーメッセージが表示されることがあります。
Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface vlan 1 Switch(config-if)#ip access-group 101 in Switch(config-if)#end Switch# Switch#show platform software acl input summary interface vlan 1 Interface Name : Vl1 Path(dir:port, vlan) : (in :null, 1) Current TagPair(port, vlan) : (null, 0/Normal) Current Signature : {FeatureCam:(Security: 101)} Type : Current Direction : In TagPair(port, vlan) : (null, 0/Normal) FeatureFlatAclId(state) : 0(FullyLoadedWithToCpuAces) QosFlatAclId(state) : (null) Flags : L3DenyToCpu
Flags フィールド(L3DenyToCpu)は、ACL のためにパケットが拒否された場合、そのパケットが CPU にパントされることを示します。すると、スイッチからは「Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)-unreachable」メッセージが送信されます。これはデフォルトの動作です。複数のパケットが CPU にパントされると、スイッチで CPU の使用率が高くなる可能性があります。ただし、Cisco IOS ソフトウェア リリース 12.1(13)EW 以降では、これらのパケットが CPU にレート制限されます。ほとんどの場合、シスコでは、ICMP 到達不能メッセージを送信する機能をオフにすることを推奨しています。
次の出力では、「ICMP-unreachable」メッセージを送信しないようにするスイッチの設定と、この変更後の TCAM プログラミングの確認が示されています。このコマンド出力が示すように、ACL 101 の状態は FullyLoaded になります。拒否されたトラフィックは CPU には向かいません。
Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface vlan 1 Switch(config-if)#no ip unreachables Switch(config-if)#end Switch#show platform software acl input summary interface vlan 1 Interface Name : Vl1 Path(dir:port, vlan) : (in :null, 1) Current TagPair(port, vlan) : (null, 1/Normal) Current Signature : {FeatureCam:(Security: 101)} Type : Current Direction : In TagPair(port, vlan) : (null, 1/Normal) FeatureFlatAclId(state) : 0(FullyLoaded) QosFlatAclId(state) : (null) Flags : None
注:特定のQoSポリシーの適用中にQoS TCAMを超過した場合、その特定のポリシーはインターフェイスまたはVLANに適用されません。Catalyst 4500 では、その QoS ポリシーがソフトウェア パスで実装されることはありません。そのため、Qos TCAM の超過時に CPU 使用率が急上昇することはありません。
*May 13 08:01:28: %C4K_HWACLMAN-4-ACLHWPROGERR: Input Policy Map: 10Mbps - hardware TCAM limit, qos being disabled on relevant interface. *May 13 08:01:28: %C4K_HWACLMAN-4-ACLHWPROGERRREASON: Input Policy Map: 10Mbps - no available hardware TCAM entries.
show platform cpu packet statistics コマンドを実行します。ACL sw processing キューが多数のパケットを受け取っているかどうかを判断します。パケットの数は多いことは、セキュリティ TCAM の枯渇を示しています。この TCAM 枯渇により、パケットがソフトウェア転送のために CPU に送られることになります。
Switch#show platform cpu packet statistics !--- Output suppressed. Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- Control 57902635 22 16 12 3 Host Learning 464678 0 0 0 0 L3 Fwd Low 623229 0 0 0 0 L2 Fwd Low 11267182 7 4 6 1 L3 Rx High 508 0 0 0 0 L3 Rx Low 1275695 10 1 0 0 ACL fwd(snooping) 2645752 0 0 0 0 ACL log, unreach 51443268 9 4 5 5 ACL sw processing 842889240 1453 1532 1267 1179 Packets Dropped by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- L2 Fwd Low 3270 0 0 0 0 ACL sw processing 12636 0 0 0 0
ACL sw processing キューで、過大な量のトラフィックが受信されていないことがわかった場合は、「Cisco IOS ソフトウェアベースの Catalyst 4500 スイッチでの高い CPU 使用率」を参照して、他に考えられる原因を調べてください。このドキュメントでは、CPU の使用率が高くなる他のシナリオをトラブルシューティングする方法についての情報を提供しています。
Catalyst 4500 での TCAM のオーバーフローは次の理由で発生する可能性があります。
「TCAM の種類」セクションで説明しているように、TCAM 2 効率は、8 個のエントリが 1 個のマスクを共有するという事実のために、より低くなります。Catalyst 4500 ソフトウェアでは、次の 2 種類の TCAM プログラミング アルゴリズムを TCAM 2 に対して使用できるため、TCAM 2 の効率が向上します。
Packed:ほとんどのセキュリティ ACL のシナリオに適しています。
注:これがデフォルトです。
Scattered:IPSG のシナリオで使用されます。
Scattered アルゴリズムへの変更は可能ですが、RACL のように、セキュリティ ACL だけを設定している場合には、通常これによる改善はありません。Scattered アルゴリズムの効果があるのは、同一の、または類似した小さな ACL が多数のポートに繰り返し適用されるようなシナリオでだけです。このようなシナリオとは、複数のインターフェイスで IPSG がイネーブルにされているような場合です。IPSG のシナリオでは、各ダイナミック ACL が以下に該当します。
エントリの数が少ない。
これには、承認済 IP アドレスの許可、不正な IP アドレスによるポートのアクセスを防ぐための末尾での拒否が含まれています。
設定済みのすべてのアクセス ポートに繰り返し適用されます。
Catalyst 4507R では、ACL は最大で 240 ポートに繰り返し適用されます。
注:TCAM 3はデフォルトのパックアルゴリズムを使用します。TCAM 構造では、エントリごとに 1 個のマスクがあるため、最適なアルゴリズムは Packed アルゴリズムです。このため、これらのスイッチでは Scattered アルゴリズム オプションがイネーブルにされることはありません。
次の例は、IPSG 機能に設定されたスーパーバイザ エンジン II+ によるものです。出力には、49 % のエントリしか使用されていないにもかかわらず、89 % のマスクが消費されていることが示されています。
Switch#show platform hardware acl statistics utilization brief Entries/Total(%) Masks/Total(%) ----------------- --------------- Input Acl(PortAndVlan) 2016 / 4096 ( 49) 460 / 512 ( 89) Input Acl(PortOrVlan) 6 / 4096 ( 0) 4 / 512 ( 0) Input Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Input Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) L4Ops: used 2 out of 64
この場合は、プログラミング アルゴリズムを、デフォルト アルゴリズムの Packed アルゴリズムから Scattered アルゴリズムに変更すると、効果があります。Scattered アルゴリズムでは、マスクの使用率が 89 % から 49 % に削減されます。
Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#access-list hardware entries scattered Switch(config)#end Switch#show platform hardware acl statistics utilization brief Entries/Total(%) Masks/Total(%) ----------------- --------------- Input Acl(PortAndVlan) 2016 / 4096 ( 49) 252 / 512 ( 49) Input Acl(PortOrVlan) 6 / 4096 ( 0) 5 / 512 ( 0) Input Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Input Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Acl(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortAndVlan) 0 / 4096 ( 0) 0 / 512 ( 0) Output Qos(PortOrVlan) 0 / 4096 ( 0) 0 / 512 ( 0) L4Ops: used 2 out of 64
Catalyst 4500 スイッチのセキュリティ機能のベスト プラクティスについては、「スーパーバイザ用 Catalyst 4500 セキュリティ機能のベスト プラクティス」を参照してください。
L4Op という用語は、ACL 設定での gt、lt、neq、range キーワードの使用を意味します。Catalyst 4500 では 1 つの ACL で使用できるこれらのキーワード数に制限があります。この制限は、スーパーバイザ エンジンとスイッチにより変わりますが、ACL ごとに 6 または 8 の L4Op が使用できます。表 3 に、スーパーバイザ エンジンごと、および ACL ごとの制限を示します。
表3:異なるCatalyst 4500スーパーバイザエンジンおよびスイッチでのACLごとのL4Op制限Product | L4Op |
---|---|
Supervisor Engine II+/II+TS | 32(ACL ごとに 6) |
スーパーバイザ エンジン III/IV/V および WS-C4948 | 32(ACL ごとに 6) |
スーパーバイザ エンジン V-10GE と WS-C4948-10GE | 64(ACL ごとに 8) |
ACL ごとの L4Op の制限を超えた場合は、警告メッセージがコンソールに表示されます。次のようなメッセージです。
%C4K_HWACLMAN-4-ACLHWPROGERR: Input Security: severn - hardware TCAM limit, some packet processing will be software switched. 19:55:55: %C4K_HWACLMAN-4-ACLHWPROGERRREASON: Input Security: severn - hardware TCAM L4 operators/TCP flags usage capability exceeded.
また、L4Op の制限を超えた場合は、特定の ACE が TCAM で拡張されます。その結果、追加の TCAM が使用されます。次の ACE がその一例です。
access-list 101 permit tcp host 8.1.1.1 range 10 20 any
ACL 内のこの ACE でスイッチが使用できるのは 1 つのエントリと 1 つの L4Op だけです。ただし、この ACL で 6 個の L4Op がすでに使用されている場合、この ACE はハードウェアで 10 個のエントリに拡張されます。このような拡張により、TCAM でエントリを使い切ってしまう可能性があります。これらの L4Op を慎重に使用すると、TCAM のオーバーフローを防止できます。
注:この場合、スーパーバイザエンジンV-10GEおよびWS-C4948-10GEが含まれる場合、ACLで以前に8つのL4Opが使用されていると、ACEが拡張されます。
Catalyst 4500 スイッチで L4Op を使用するときは、次の点に注意してください。
L4 操作は、演算子またはオペランドが異なる場合は、異なると見なされます。
たとえば、次の ACL には、3 つの異なる L4 操作が含まれます。これは、gt 10 と gt 11 が、2 つの異なる L4 操作と見なされるためです。
access-list 101 permit tcp host 8.1.1.1 any gt 10 access-list 101 deny tcp host 8.1.1.2 any lt 9 access-list 101 deny tcp host 8.1.1.3 any gt 11
L4 操作は、同じ演算子/オペランドの組み合わせが送信元ポートに 1 度、宛先ポートに 1 度適用される場合は、異なると見なされます。
以下が一例です。
access-list 101 permit tcp host 8.1.1.1 gt 10 any access-list 101 permit tcp host 8.1.1.2 any gt 10
Catalyst 4500 では、可能な場合には L4Op が共用されます。
次の例では、太字斜体の行が、このシナリオを示します。
access-list 101 permit tcp host 8.1.1.1 any gt 10 access-list 101 deny tcp host 8.1.1.2 any lt 9 access-list 101 deny udp host 8.1.1.3 any gt 11 access-list 101 deny tcp host 8.1.1.4 any neq 6 access-list 101 deny udp host 8.1.1.5 neq 6 any access-list 101 deny tcp host 8.1.1.6 any gt 10 |
access-list 102 deny tcp host 9.1.1.1 any gt 20 access-list 102 deny udp host 9.1.1.2 lt 9 any access-list 102 deny tcp host 9.1.1.3 range 11 13 any access-list 102 permit tcp host 9.1.1.1 eq 10 any access-list 102 permit udp host 9.1.1.4 any neq 6 |
ACL 101 = 5 への L4Op の使用
ACL 102 = 4 への L4Op の使用
注: eqキーワードはL4Opハードウェアリソースを消費しません。
L4Op 使用総数 = 8
注:ACL 101と102は1つのL4Opを共有します。
注:L4Opは、TCPやUser Datagram Protocol(UDP)などのプロトコルが一致しないか、許可/拒否アクションが一致しない場合でも共有されます。
表 2 が示すように、TCAM は制限付きリソースです。多数の IPSG エントリのある IPSG のような機能や過剰な ACL を設定すると、スーパーバイザ エンジンの TCAM リソースを超過する可能性があります。
スーパーバイザ エンジン用の TCAM スペースを超過した場合は、次の手順を実行します。
スーパーバイザ エンジン II+ があり、Cisco IOS ソフトウェア リリース 12.2(18)EW より前の Cisco IOS ソフトウェア リリースを実行している場合は、最新の Cisco IOS ソフトウェア リリース 12.2(25)EWA メンテナンス リリースにアップグレードします。
これ以降のリリースでは、TCAM の容量が増加されています。
DHCP スヌーピングおよび IPSG を使用しており、TCAM を使い果たしそうな場合は、最新の Cisco IOS ソフトウェア リリース 12.2(25)EWA メンテナンス リリースを使用します。また、TCAM 製品が 2 台の場合は、Scattered アルゴリズムを使用します。
注:散散アルゴリズムは、Cisco IOSソフトウェアリリース12.2(20)EW以降で使用できます。
さらに、最新のリリースでは、DCHP スヌーピングと Dynamic Address Resolution Protocol(ARP; アドレス レゾリューション プロトコル)Inspection(DAI; ダイナミック ARP インスペクション)の機能に関して、TCAM の使用率を改善する改良が加えられています。
L4Op の制限を超えたために TCAM を使い果たしそうな場合は、TCAM オーバーフローを防ぐために ACL での L4Op の使用を減らしてください。
同じ VLAN のさまざまなポートで多くの ACL またはポリシーを使用する場合は、VLAN のインターフェイスで 1 つの ACL またはポリシーに集約します。
この集約により、TCAM 領域が節約されます。たとえば、音声ベースのポリシーを適用する場合は、デフォルト ポート ベースの QoS が分類に使用されます。このデフォルトの QoS により TCAM の容量が超過する可能性があります。QoS を VLAN ベースに切り替えると、TCAM の使用量が削減されます。
引き続き、TCAM に問題がある場合は、スーパーバイザ エンジン V-10GE または Catalyst 4948-10GE などのハイエンド スーパーバイザ エンジンの導入を検討してください。
これらの製品では、最も効率的な TCAM 3 のハードウェアが使用されています。
Catalyst 4500 では設定された ACL が TCAM を使用してプログラムされます。TCAM により、スイッチのパーフォーマンスに影響を与えることなく、ハードウェア転送パスでの ACL の適用が可能となります。パフォーマンスは、ACL ルックアップのパフォーマンスがライン レートで行われるので、ACL のサイズに関係なく一定です。ただし、TCAM は有限のリソースです。そのため、ACL エントリの数が過剰に設定されると、TCAM の容量を超えることになります。Catalyst 4500 では最大の効率を実現するために、多くの最適化が実装され、さらに TCAM のプログラミング アルゴリズムを変更するコマンドが提供されています。スーパーバイザ エンジン V-10GE や Catalyst 4948-10GE などの TCAM 3 製品では、セキュリティ ACL と QoS ポリシーのために最大の TCAM リソースが提供されています。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
27-Oct-2005 |
初版 |