内容

概要

背景説明

Capmap テーブルと LOU レジスタのプログラミング

ケース スタディ #1：TCP フラグを使用した ACL

ケース スタディ #2：LOU レジスタ使用率 100%

ケース スタディ #3：L4Op を使用した QoS のプログラミング

ケーススタディ#4：デュアルスタックACLによりCAPMAPが枯渇する

概要

このドキュメントでは、LOU(Logical Operation Unit)とLayer 4 Operations(L4Op)がcapmapテーブルにどのようにプログラムされるかについて説明します。障害シナリオと、それらのシナリオでよく発生するエラー、および、それらのエラーから推察すべきことについても説明します。

分類マネージャ(CM)は、分類Ternary Content Addressable Memory(TCAM)と、ラベル、LOU、capmapエントリなどの関連リソースを管理します。CMサービスは、Feature Manager(FM)およびQoS Manager(QM)によって、Cisco IOSをサポートするTCAMエントリをプログラムするために使用されます® アクセスコントロールリスト(ACL)およびQuality of Service(QoS)機能

背景説明

LOU と L4Op：LOU は Logical Operation Units（論理演算ユニット）の略です。これは、ハードウェア レジスタであり、ACL および VLAN アクセス コントロール リスト（VACL）に指定された TCP/UDP ポート番号を表す {operator, operand} タプルを保存するために使用されます。 このタプルのことを L4Op とも呼びます。たとえばホスト X をホスト Y gt 1023 に対応させる場合、タプルは {gt, 1023} になります。

L4Op：Layer 4 Operations

Capmap テーブル：前述の L4Op は LOU レジスタにプログラムされ、Capmap テーブルのエントリから参照されます。Capmap テーブル 1 つにつきエントリ（L4Op）は 10 個までという制限があります（方向のために 1 つ予約されるので、実質的な制限は 9 個に減ります）。 Capmap テーブルのインデックスは、TCAM のラベルそのものです。

TCAM には A と B の 2 つがあります。各 TCAM のラベルは 8 K です。TCAM ごとに、2 K のエントリを含む capmap テーブルが 1 つあります。各 TCAM のラベルは 8 K であるため、4:1 でオーバーラップが発生します。つまり、4 つのラベルが 1 つの capmap エントリに対応します。オーバーラップするのは1=2049=4097=6145。

基本的に、これは、TCAM のラベル 1、2049、4097、および 6145 が同じ capmap インデックスを使用することを意味します。このオーバーラップが理由で、従来の Cisco の TCAM ラベル割り当て実装方式は問題を引き起こしています。Cisco では、2 K（正確には 2048）間隔で TCAM のラベルを割り当ててきました。 これは、割り当てが 1、2049、4097、6145、2、2050、4098、6146 というような形式になることを意味します。

したがって、この TCAM 割り当てでは最初から Capmap テーブルがオーバーラップすることになります。これを示す例を次に示します（Cisco Bug ID CSCuo02666 から取得しました）。 a1 と a2 という 2 つの ACL があり、以下に示すように、VLAN 1 と VLAN 2 のインターフェイスに定義され、適用されています。

Sup2T(config)#ip access-list extended a1

Sup2T(config-ext-nacl)# permit ip host 1.1.1.1 any dscp 1

Sup2T(config-ext-nacl)# permit ip host 1.1.1.1 any dscp 2

Sup2T(config-ext-nacl)# permit ip host 1.1.1.1 any dscp 3

Sup2T(config-ext-nacl)# permit ip host 1.1.1.1 any dscp 4

Sup2T(config-ext-nacl)# permit ip host 1.1.1.1 any dscp 5

Sup2T(config-ext-nacl)#exit

Sup2T(config)#int vlan 1

Sup2T(config-if)#ip access-group a1 in

Sup2T(config-if)#exit

Sup2T(config)#ip access-list extended a2

Sup2T(config-ext-nacl)# permit ip host 1.1.1.2 any dscp 6

Sup2T(config-ext-nacl)# permit ip host 1.1.1.2 any dscp 7

Sup2T(config-ext-nacl)# permit ip host 1.1.1.2 any dscp cs1

Sup2T(config-ext-nacl)# permit ip host 1.1.1.2 any dscp 9

Sup2T(config-ext-nacl)#exit

Sup2T(config)#int vlan 2

Sup2T(config-if)#ip access-group a2 in

Sup2T(config-if)#end

これらのインターフェイスの TCAM は次のとおりです。

Sup2T#show platform hardware acl entry interface vlan 1 security in ip detail

mls_if_index:20000001 dir:0 feature:0 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match,

I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

---------

fno:0

tcam:B, bank:0, prot:0    Aces

I  V  16366   2049  0    0     0         1.1.1.1               -         0.0.0.0

- 0  0      0      -       ----- dscp=5;                       0x0000000000000038

0

I  M  16366 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  16367   2049  0    0     0         1.1.1.1               -         0.0.0.0

- 0  0      0      -       ----- dscp=4;                       0x0000000000000038

0

I  M  16367 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  16368   2049  0    0     0         1.1.1.1               -         0.0.0.0

- 0  0      0      -       ----- dscp=3;                       0x0000000000000038

0

I  M  16368 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  16369   2049  0    0     0         1.1.1.1               -         0.0.0.0

- 0  0      0      -       ----- dscp=2;                       0x0000000000000038

0

I  M  16369 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  16370   2049  0    0     0         1.1.1.1               -         0.0.0.0

- 0  0      0      -       ----- dscp=1;                       0x0000000000000038

0

I  M  16370 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  16371   2049  0    0     0         0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x0000000040000038

0

I  M  16371 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

Sup2T#show platform hardware acl entry interface vlan 2 security in ip detail

mls_if_index:20000002 dir:0 feature:0 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

fno:0

tcam:B, bank:1, prot:0    Aces

I  V  32738   4097  0    0     0         1.1.1.2               -         0.0.0.0

- 0  0      0      -       ----- dscp=9;                       0x0000000000000038

0

I  M  32738 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  32739   4097  0    0     0         1.1.1.2               -         0.0.0.0

- 0  0      0      -       ----- dscp=8;                       0x0000000000000038

0

I  M  32739 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  32740   4097  0    0     0         1.1.1.2               -         0.0.0.0

- 0  0      0      -       ----- dscp=7;                       0x0000000000000038

0

I  M  32740 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  32741   4097  0    0     0         1.1.1.2               -         0.0.0.0

- 0  0      0      -       ----- dscp=6;                       0x0000000000000038

0

I  M  32741 0x1FFF  0 0x00 0x000 255.255.255.255               -         0.0.0.0

- 0  0    0x0

I  V  32745   4097  0    0     0         0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x0000000040000038

0

I  M  32745 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

インターフェイス VLAN 1 に割り当てられた TCAM のラベルは 2049 で、VLAN 2 に割り当てられた TCAM のラベルは 4097 です。これは、両方のインターフェイスが、L4Op のプログラミングで、同じ Capmap テーブルを使用して LOU レジスタを参照することを意味します。

これは、このコマンドで確認できます（ACL a1 には 5 つの ACE があり、ACL a2 には 4 つの ACE があるということは、この capmap テーブルがいっぱいであることを意味します）。

Sup2T#show platform hardware acl capmap tcam B label 4097

Hardware Capmap Table Entry For TCAM B. Free items are not shown

Index   Loc[9]  [8]  [7]  [6]  [5]  [4]  [3]  [2]  [1]  [0]

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

1      212   10    9    8    7    6    5    4    3    2

Sup2T#show platform hardware acl capmap tcam B label 2049

Hardware Capmap Table Entry For TCAM B. Free items are not shown

Index   Loc[9]  [8]  [7]  [6]  [5]  [4]  [3]  [2]  [1]  [0]

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

1      212   10    9    8    7    6    5    4    3    2

この段階で、拡張可能ではない別の L4Op ベースのアクセス コントロール エントリ（ACE）をこれらのインターフェイス用にインストールしようとすると、[No free capmap entry available] というエラーを受け取ります。

Sup2T(config)#ip access-list extended a2

Sup2T(config-ext-nacl)#permit ip host 1.1.1.2 any dscp 10

Sup2T(config-ext-nacl)#end

*Sep 16 14:57:55.983: %EARL_CM-5-NOCAPMAP: No free capmap entry available

*Sep 16 14:57:55.991: %FMCORE-4-RACL_REDUCED: Interface Vlan2 routed traffic

will be software switched in ingress direction. L2 features may not be applied

at the interface

そのため、インターフェイス全体をソフトウェア ブリッジすることになりますが、スイッチングが遅くなり、CPU 使用率が高くなるといった問題を引き起こす可能性があります。

注：この問題を解決するために、Cisco Bug ID CSCuo02666 が発行されています。これによって導入された最大のロジック変更は、TCAM のラベルの割り当て方法です。Cisco は、TCAM のラベルを 2 K 間隔ではなく連続で（2、3、4、5 というように）2048 まで割り当てるようになりました。つまり、capmap テーブルが共有されることは最初からあり得ません。

他のハードウェア リソースと同様に LOU には限界があることを忘れないでください。使用可能な LOU の総数は 104 です。

Sup2T#show platform software acl lou

LOUs Registers (shadow copies)

Index      Type  A_Op  A_Val  A_Cnt  B_Op  B_Val  B_Cnt

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

0PKT_QOS_GI A is free.            NEQ      0      1

1  DST_PORT    LT     81      2 B is free.

2  B & A are free

3  B & A are free

4  B & A are free

5  B & A are free

6  B & A are free

7  B & A are free

8  B & A are free

9  B & A are free

10  B & A are free

11  B & A are free

12  B & A are free

13  B & A are free

14  B & A are free

15  B & A are free

*snip*

95  B & A are free

96  B & A are free

97  B & A are free

98  B & A are free

99  B & A are free

100  B & A are free

101  B & A are free

102  B & A are free

103  B & A are free

Capmap テーブルと LOU レジスタのプログラミング

Capmap テーブルは L4 操作を考慮する必要があるときにのみ使用されます。ここで、Differentiated Services Code Point（DSCP; DiffServ コード ポイント）/サービス クラス（CoS）の値のマッチングも L4Op と見なされることに注意してください。このドキュメントが段階的にビルドする簡単な例(Cisco Bug ID CSCuo02666の修正を含むコードのバージョンを使用する)を次に示します。

Sup2T#show ip access-lists a3

Extended IP access list a3

10 permit ip host 192.168.1.1 host 192.168.1.2

I have this applied to interface VLAN 1.

Sup2T#show run int vlan 1

Building configuration...

Current configuration : 84 bytes

!

interface Vlan1

ip address 192.168.1.1 255.255.255.0

ip access-group a3 in

end

これは TCAM に正しくプログラムされます。

Sup2T#show platform hardware acl entry interface vlan 1 security in ip

mls_if_index:20000001 dir:0 feature:0 proto:0

pass#0 features

fno:0

tcam:B, bank:1, prot:0    Aces

Permit                ip host 192.168.1.1 host 192.168.1.2

L3_Deny               ip any any

Sup2t-MA1.7#show platform hardware acl entry interface vlan 1 security in ip detail

mls_if_index:20000001 dir:0 feature:0 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

-----

fno:0

tcam:B, bank:1, prot:0    Aces

I  V  32741   2  0    0     0        192.168.1.1               -     192.168.1.2

- 0  0      0      -       -----          -                    0x0000000000000038

0

I  M  32741 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

- 0  0    0x0

I  V  32745   2  0    0     0            0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x0000000040000038

0

I  M  32745 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

Capmap テーブルは、TCAM のラベルそのものを使用して参照されます。その TCAM ラベルを show platform software [hardware] acl capmap tcam <> label <> コマンドで使用することで、その TCAM ラベルに対応するテーブル（ソフトウェアまたはハードウェア）を参照できます。

Sup2T#show platform hardware acl capmap tcam B label 2

Hardware Capmap Table Entry For TCAM B. Free items are not shown

Index   Loc[9]  [8]  [7]  [6]  [5]  [4]  [3]  [2]  [1]  [0]

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

1      212    0    0    0    0    0    0    0    0    0

このラベルの capmap テーブルには、何も割り当てられていません。定義した ACL に L4Op はありません。この capmap テーブルにエントリをインストールする必要はありません。

この ACE を以下のように変更します。

Sup2T#show ip access-lists a3

Extended IP access list a3

10 permit tcp host 192.168.1.1 host 192.168.1.2 eq www

もう一度、capmap テーブルを参照します。

Sup2T#show platform software acl capmap tcam B label 2

Shadow Capmap Table Entry For TCAM B

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

1     9         Reserved             Free             Free             Free

Free             Free             Free             Free             Free

Free

1 つのポート番号を直接等式で指定した場合は、L4Op としてカウントされません。

このように変更します。

Sup2T#show ip access-lists a3

Extended IP access list a3

10 permit tcp host 192.168.1.1 host 192.168.1.2 gt www

もう一度、capmap テーブルを確認します。

Sup2T#show platform software acl capmap tcam B label 2

Shadow Capmap Table Entry For TCAM B

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

2     8 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free   3/1/1

今度は capmap テーブルにエントリが 1 つあります。ACEがcapmapテーブルの3/1/1に変換されました。これはRST/INV/CNTの形式です。ここで、RST は、この L4Op がインストールされた LOU レジスタを示し、CNT は、その LOU の合計カウントを示します（これについては後で詳細に説明します）。 RST 値のインデックスがどのように作成されるのか理解するために、次の出力を参照してください。

Sup2T#show platform software acl capmap mapping

L4op_sel value      Reference

==============      =========

0      ------         LOU0 B register

1     ------         LOU0 A register

2     ------         LOU1 B register

3     ------         LOU1 A register

.....                 ..............

.....                 ..............

206     -----         LOU103 B register

207     -----         LOU103 A register

208     -----         Global format match for global acl

209     -----         Group id present

210     -----         L4_hdr_vld

211     -----         Mpls_plus_ip_pkt

212     -----         ife/ofe for direction

(213-223)     ----      Reserved

(224-239)     ----      16 TCP flags map

(240-255)     ----      16 IPv6 ext header map

L4op_sel 値 0 は LOU0 B レジスタを指し、1 は LOU0 A レジスタを指し、2 は LOU1 B レジスタを指し、3 は LOU1 A レジスタを指す、というようになっていることを確認できます。レジスタ A は常に最初にプログラムされます。これで、3/1/1 という出力が、より理解できるものになりました。

この出力で、3 は L4Op が LOU1 A レジスタにプログラムされたことを意味します。L4Op がどこにプログラムされているかは、LOU レジスタの内容を直接見ることでも確認できます。

Sup2T#show platform software acl lou

LOUs Registers (shadow copies)

Index      Type  A_Op  A_Val  A_Cnt  B_Op  B_Val  B_Cnt

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

0PKT_QOS_GI A is free.            NEQ      0      1

1  DST_PORT    LT     81      1 B is free.

2  B & A are free

3  B & A are free

4  B & A are free

*snip*

Sup2T#show platform hardware acl lou

Dumping h/w lou values

Index  lou_mux_sel  A_Opcode  A_Value  B_Opcode  B_Value

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

0            7       NEQ        0       NEQ        0

1            1        LT       81       NEQ        0

2            0       NEQ        0       NEQ        0

3            0       NEQ        0       NEQ        0

*snip*

このように、（gt, X）タプルは LOU レジスタに（LT, X+1）とプログラムされています。

注：L4Op が LOU のレジスタにプログラムされるのは、インターフェイスに適用されたときだけです。ACL の作成に L4Op が使用されても、（その ALC が実際にはインターフェイスに適用されていなければ）、該当する L4Op は LOU レジスタにプログラムされません。

ACL をインターフェイス VLAN 1 から削除してから、LOU のレジスタをもう一度確認します。

Sup2T(config)#int vlan 1

Sup2T(config-if)#no ip access-group a3 in

Sup2T#show platform software acl lou

LOUs Registers (shadow copies)

Index      Type  A_Op  A_Val  A_Cnt  B_Op  B_Val  B_Cnt

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

0PKT_QOS_GI A is free.            NEQ      0      1

1  B & A are free

2  B & A are free

3  B & A are free

4  B & A are free

*snip*

Sup2T#show platform hardware acl lou

Dumping h/w lou values

Index  lou_mux_sel  A_Opcode  A_Value  B_Opcode  B_Value

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

0            7       NEQ        0       NEQ        0

1            1       NEQ        0       NEQ        0

2            0       NEQ        0       NEQ        0

3            0       NEQ        0       NEQ        0

*snip*

ケース スタディ #1：TCP フラグを使用した ACL

TCP フラグとして、LOU レジスタの特定の範囲内に特殊なレジスタのセットが割り当てられています。その範囲は、次に示すように [show platform software acl capmap mapping] コマンドで確認できます。

Sup2T#show platform software acl capmap mapping

L4op_sel value      Reference

==============      =========

0      ------         LOU0 B register

1     ------         LOU0 A register

2     ------         LOU1 B register

3     ------         LOU1 A register

.....                 ..............

.....                 ..............

206     -----         LOU103 B register

207     -----         LOU103 A register

208     -----         Global format match for global acl

209     -----         Group id present

210     -----         L4_hdr_vld

211     -----         Mpls_plus_ip_pkt

212     -----         ife/ofe for direction

(213-223)     ----      Reserved

(224-239)     ----      16 TCP flags map

(240-255)     ----      16 IPv6 ext header map

L4op_sel 値 224～239 を TCP フラグとして使用できます。つまり、16 個のレジスタを使用できます。次の簡単な例を使用して説明します。この ACL は以下のように定義されています。

Sup2T(config)#ip access-list extended a13

Sup2T(config-ext-nacl)#permit tcp host 192.168.13.10 host 192.168.13.20 syn

Sup2T(config-ext-nacl)#exit

VLAN 13 インターフェイスに以下のインバウンドを適用します。

Sup2T(config)#int vlan 13

Sup2T(config-if)#ip access-group a13 in

Sup2T(config-if)#end

Sup2T#show platform hardware acl entry interface vlan 13 security in ip detail

mls_if_index:2000000D dir:0 feature:0 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

--------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

------

fno:0

tcam:B, bank:1, prot:0    Aces

I  V  32545     13  0    0     0   192.168.13.10               -   192.168.13.20

- 0  0      1   ANY:----s- -----          -                    0x0000000000000038

0

I  M  32545 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

- 0  0    0xF

I  V  32546     13  0    0     0   192.168.13.10               -   192.168.13.20

- 1  0      1      -       -----          -                    0x0000000000000038

0

I  M  32546 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

- 1  0    0xF

I  V  32547     13  0    0     0         0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x0000000040000038

0

I  M  32547 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

Sup2T#show platform software acl capmap tcam B label 13

Shadow Capmap Table Entry For TCAM B

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

13     8 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free 224/0/1

この例では、TCP フラグがレジスタ 224（これは、TCP フラグとして最初に使用できるレジスタに対応します）にプログラムされました。 合計カウントは、この同じ TCP フラグを含む TCP フロー（読み取られた ACE）の数に相当します。

現在のACL a13に別のACEを追加します。これには別のTCPフラグが必要です。

Sup2T(config)#ip access-list extended a13

Sup2T(config-ext-nacl)#permit tcp host 192.168.1.1 host 192.168.1.2 ack

Sup2T(config-ext-nacl)#exit

もう一度 Capmap テーブルを見ると、別の TCP レジスタが使用されているのがわかります。

Sup2T#show platform software acl capmap tcam b label 13

Shadow Capmap Table Entry For TCAM B

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

13     7 212/0/1                      Free             Free             Free

Free             Free             Free             Free 225/0/1          224/0/1

これから、プログラムがフラグごとに行われることがわかります。フラグごとに、独立した TCP レジスタが使用されるので、そのカウントを維持します。これは、フラグごとに capmap エントリも 1 つ使用することを意味します。さらに、数の上から言えば、ACL では 9 つより多くのフラグを使用できない、つまり、TCP フラグの上限 16 に達する前に capmap の上限に達してしまうことを意味します。

何が起きるかを調べるために、TCP レジスタの上限に達するように TCP フラグを拡張します。この例では、複数の ACL を設定し、さまざまなインターフェイス VLAN に適用して、以下に示すように TCP のレジスタ使用率を 100% にしました。

Sup2T#show platform hardware capacity acl

Classification Mgr Tcam Resources

Key: Ttlent - Total TCAM entries, QoSent - QoS TCAM entries, LOU - LOUs,

RBLent - RBACL TCAM entries, Lbl - Labels, TCP - TCP Flags,

Dstbl  - Destinfo Table, Ethcam  - Ethertype Cam Table,

ACTtbl - Accounting Table, V6ext - V6 Extn Hdr Table

Module Ttlent QoSent RBLent Lbl   LOU  TCP  Dstbl Ethcam ACTtbl V6ext

1       3%     7%     0%     1%   96%  100%   1%    0%     0%     0%

3       3%     7%     0%     1%   96%  100%   1%    0%     0%     0%

4       3%     7%     0%     1%   96%  100%   1%    0%     0%     0%

6       3%     7%     0%     1%   96%  100%   2%    0%     0%     0%

この段階で、固有の TCP フラグ（または固有になるように複数の TCP フラグを組み合わせたもの）を含む別の ACL を設定し、インターフェイスに適用することを決定した場合は、TCP レジスタに新しい TCP フラグ（またはフラグの組み合わせ）をプログラムする必要があります。しかし、使用できるハードウェア レジスタがありません。このような状況では、すべてのインターフェイスをブリッジすることになります。

Sup2T(config)#ip access-list extended a29

Sup2T(config-ext-nacl)#permit tcp host 192.168.1.1 host 192.168.1.2 psh rst

Sup2T(config-if)#int vlan 29

Sup2T(config-if)#ip access-group a29 in

*Oct  6 13:57:47.612: %FMCORE-4-RACL_REDUCED: Interface Vlan29 routed traffic

will be software switched in ingress direction. L2 features may not be applied

at the interface

Sup2T#show platform hardware acl entry interface vlan 29 security in ip

mls_if_index:2000001D dir:0 feature:0 proto:0

pass#0 features

fno:0

tcam:B, bank:1, prot:0    Aces

Bridge                ip any any

ケース スタディ #2：LOU レジスタ使用率 100%

LOU が有限なリソースであることを忘れないでください。つまり、LOU 用のスペースは使い切ってしまうことがあります。このコマンドで LOU の使用状況をモニタできます。

Sup2T#show platform hardware capacity acl

Classification Mgr Tcam Resources

Key: Ttlent - Total TCAM entries, QoSent - QoS TCAM entries, LOU - LOUs,

RBLent - RBACL TCAM entries, Lbl - Labels, TCP - TCP Flags,

Dstbl  - Destinfo Table, Ethcam  - Ethertype Cam Table,

ACTtbl - Accounting Table, V6ext - V6 Extn Hdr Table

Module Ttlent QoSent RBLent Lbl   LOU  TCP  Dstbl Ethcam ACTtbl V6ext

1       2%     7%     0%     1%    1%   0%   1%    0%     0%     0%

3       2%     7%     0%     1%    1%   0%   1%    0%     0%     0%

4       2%     7%     0%     1%    1%   0%   1%    0%     0%     0%

6       2%     7%     0%     1%    1%   0%   2%    0%     0%     0%

ここで、より多くの LOU を使用するように ACL を拡張します。（A と B の 2 つの LOU レジスタの両方が必要になる range コマンドを使用して）複数の ACL をインストールした後、この例では、LOU の使用率が 96% と表示されています。

Sup2T#show platform hardware capacity acl

Classification Mgr Tcam Resources

Key: Ttlent - Total TCAM entries, QoSent - QoS TCAM entries, LOU - LOUs,

RBLent - RBACL TCAM entries, Lbl - Labels, TCP - TCP Flags,

Dstbl  - Destinfo Table, Ethcam  - Ethertype Cam Table,

ACTtbl - Accounting Table, V6ext - V6 Extn Hdr Table

Module Ttlent QoSent RBLent Lbl   LOU  TCP  Dstbl Ethcam ACTtbl V6ext

1       3%     7%     0%     1%   96%   0%   1%    0%     0%     0%

3       3%     7%     0%     1%   96%   0%   1%    0%     0%     0%

4       3%     7%     0%     1%   96%   0%   1%    0%     0%     0%

6       3%     7%     0%     1%   96%   0%   2%    0%     0%     0%

LOU 使用率が 100% を超えるように、別の ACL を作成してインターフェイスに適用します。

Sup2T(config)#ip access-list extended a12

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1401 1410

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1411 1420

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1421 1430

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1431 1440

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1441 1450

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1451 1460

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1461 1470

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1471 1480

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1481 1490

Sup2T(config-ext-nacl)#$68.14.1 host 192.168.14.2 range 1491 1500

Sup2T(config-ext-nacl)#exit

Sup2T(config)#int vlan 12

Sup2T(config-if)#ip access-group a12 in

この例では 100% の LOU 使用率に達しました。しかし、エラーメッセージが出ていないことに注意してください。

Sup2T#show platform hardware capacity acl

Classification Mgr Tcam Resources

Key: Ttlent - Total TCAM entries, QoSent - QoS TCAM entries, LOU - LOUs,

RBLent - RBACL TCAM entries, Lbl - Labels, TCP - TCP Flags,

Dstbl  - Destinfo Table, Ethcam  - Ethertype Cam Table,

ACTtbl - Accounting Table, V6ext - V6 Extn Hdr Table

Module Ttlent QoSent RBLent Lbl   LOU  TCP  Dstbl Ethcam ACTtbl V6ext

1       3%     7%     0%     1%   100%   0%   1%    0%     0%     0%

3       3%     7%     0%     1%   100%   0%   1%    0%     0%     0%

4       3%     7%     0%     1%   100%   0%   1%    0%     0%     0%

6       3%     7%     0%     1%   100%   0%   2%    0%     0%     0%

もう一度テストします。LOU 使用率が 100% に到達しているので、非常にシンプルな L4Op をインターフェイスにインストールしてみます。この ACL を設定します。

Sup2T#show ip access-lists a13

Extended IP access list a13

10 permit tcp host 192.168.14.1 host 192.168.14.2 range 1600 1650

このインバウンドをインターフェイス VLAN 13 に適用します。

Sup2T#show run int vlan 13

Building configuration...

Current configuration : 87 bytes

!

interface Vlan13

ip address 192.168.13.1 255.255.255.0

ip access-group a13 in

end

ここで、この VLAN の TCAM を確認します。

Sup2T#show platform hardware acl entry interface vlan 13 sec in ip

mls_if_index:2000000D dir:0 feature:0 proto:0

pass#0 features

fno:0

tcam:B, bank:0, prot:0    Aces

Permit                tcp host 192.168.14.1 host 192.168.14.2 eq 1650

Permit                tcp host 192.168.14.1 host 192.168.14.2 range 1648 1649

Permit                tcp host 192.168.14.1 host 192.168.14.2 range 1632 1647

Permit                tcp host 192.168.14.1 host 192.168.14.2 range 1600 1631

Permit                tcp host 192.168.14.1 host 192.168.14.2  fragments

L3_Deny               ip any any

L4Op が拡張されています。この TCAM ラベルの capmap テーブルを参照すると、何もインストールされていないことがわかります。

Sup2T#show platform hardware acl entry interface vlan 13 sec in ip detail

mls_if_index:2000000D dir:0 feature:0 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

---------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

------

fno:0

tcam:B, bank:0, prot:0    Aces

I  V  16136     14  0    0     0    192.168.14.1               -    192.168.14.2

1650 0  0      1      -       -----          -                    0x0000000000000038

0

I  M  16136 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

0xFFFF 0  0    0xF

I  V  16137     14  0    0     0    192.168.14.1               -    192.168.14.2

1648 0  0      1      -       -----          -                    0x0000000000000038

0

I  M  16137 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

0xFFFE 0  0    0xF

I  V  16138     14  0    0     0    192.168.14.1               -    192.168.14.2

1632 0  0      1      -       -----          -                    0x0000000000000038

0

I  M  16138 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

0xFFF0 0  0    0xF

I  V  16139     14  0    0     0    192.168.14.1               -    192.168.14.2

1600 0  0      1      -       -----          -                    0x0000000000000038

0

I  M  16139 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

0xF

I  V  16140     14  0    0     0    192.168.14.1               -    192.168.14.2

- 1  0      1      -       -----          -                    0x0000000000000038

0

Sup2T#show platform software acl capmap tcam B label 14

Shadow Capmap Table Entry For TCAM B

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

14     9 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free

Free

何が起きたのかを以下に説明します。LOU レジスタがすべて使用されているので、新しい L4Op はインストールできなくなりました。capmap テーブルでは何も参照できません。この段階でもまだ、L4Op を拡張して L4Op を TCAM にインストールしようとしました。L4Op が拡張不可能な場合には、ソフトウェアが、指定された方向にインターフェイス全体をスイッチします。

レジスタ使用率が 100% であるとは何を意味しますか。（L4Op の拡張により）TCAM はすぐにいっぱいになります。 拡張不可能な L4Op をインストールしようとすると、現在の実装では、インターフェイス全体にソフトウェア ブリッジが行われます。

現状では、拡張不可能な L4Op をこのような状況でインストールしようとした場合にのみエラーが生成されます。以下の例は、VLAN 13 インターフェイスに適用されている ACL a13 を、拡張不可能な L4Op を追加して変更したものです。

Sup2T(config)#ip access-list extended a13

Sup2T(config-ext-nacl)#permit tcp host 192.168.14.1 host 192.168.14.2 dscp 40

Oct  5 04:50:13.104: %FMCORE-4-RACL_REDUCED: Interface Vlan13 routed traffic will

be software switched in ingress direction. L2 features may not be applied at the

interface

Oct  5 04:50:13.096: %EARL_CM-DFC3-5-NOLOU: No free LOU entry available on the EARL

Oct  5 04:50:13.096: %EARL_CM-DFC1-5-NOLOU: No free LOU entry available on the EARL

Oct  5 04:50:13.096: %EARL_CM-DFC4-5-NOLOU: No free LOU entry available on the EARL

Sup2T#show platform hardware acl entry interface vlan 13 security in ip

mls_if_index:2000000D dir:0 feature:0 proto:0

pass#0 features

fno:0

tcam:B, bank:0, prot:0    Aces

Bridge                ip any any

ケース スタディ #3：L4Op を使用した QoS のプログラミング

QoS ポリシーは、L4Op を参照することがあります。これらの L4Op は、他の L4Op のようにインストールする必要があります。これは、QoS ポリシーについても、インターフェイスごとに、capmap テーブルや LOU が本質的に持っている制限の影響を受けることを意味します。これを示す小さな例をあげます。

Sup2T#show ip access-lists a1

Extended IP access list a1

10 permit tcp host 192.168.1.10 host 192.168.2.10 dscp ef

Sup2T#show class-map a1-class

Class Map match-all a1-class (id 37)

Match access-group name a1

Sup2T#show policy-map a1-policy

Policy Map a1-policy

Class a1-class

police cir 80000 bc 2500

conform-action transmit

exceed-action drop

この例のポリシーマップが対応するクラスマップは、アクセスリスト a1 を呼び出します。a1 は、192.168.1.10 から 192.168.2.10 宛ての Expedited Forwarding（EF; 完全優先転送）とマークされたトラフィックに対応します。 DSCP 値のマッチングは、拡張不可能な L4Op です。これは、LOU のレジスタにプログラムされ、capmap テーブルのエントリを使用して参照される必要があります。このポリシーマップは gig3/23 のインバウンドにインストールされています。

Sup2T#show run int gig3/23

Building configuration...

Current configuration : 176 bytes

!

interface GigabitEthernet3/23

switchport

switchport trunk allowed vlan 1-30

switchport mode trunk

service-policy input a1-policy

end

インターフェイスに用いられている QoS プログラムを表示するには、次のコマンドを使用します。

Sup2T#show platform hardware acl entry interface gig3/23 qos in ip module 3

mls_if_index:8096000 dir:0 feature:1 proto:0

pass#0 features

fno:0

tcam:A, bank:0, prot:0    Aces

0x0000E0100000D00B    tcp host 192.168.1.10 host 192.168.2.10 dscp eq 46

0x000000000080D00B    ip any any

このコマンドの詳細から、このインターフェイスで使用されている TCAM ラベルがわかります。

Sup2T#show platform hardware acl entry interface gig3/23 qos in ip detail module 3

mls_if_index:8096000 dir:0 feature:1 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

fno:0

tcam:A, bank:0, prot:0    Aces

I  V  16238      2  0    0     0    192.168.1.10               -    192.168.2.10

- 0  0      1      -       ----- dscp=46;                      0x0000E0100000D00B

0

I  M  16238 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

- 0  0    0xF

I  V  16239      2  0    0     0         0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x000000000080D00B

0

I  M  16239 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

使用されている TCAM ラベルは 2 です。次は、capmap テーブルを確認します。

Sup2T#show platform software acl capmap tcam A label 2 module 3

Shadow Capmap Table Entry For TCAM A

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

2     8 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free   2/1/1

注：QoS TCAM については、モジュール番号を指定する必要があります。これを指定しないと、出力結果は得られません。

Sup2T#show platform software acl capmap mapping

L4op_sel value      Reference

==============      =========

0      ------         LOU0 B register

1     ------         LOU0 A register

2     ------         LOU1 B register

3     ------         LOU1 A register

*snip*

2のLOU値はLOU1、レジスタBを指します。このプログラミングは次のコマンドで確認できます。

Sup2T#show platform hardware acl lou

Dumping h/w lou values

Index  lou_mux_sel  A_Opcode  A_Value  B_Opcode  B_Value

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

0            7       NEQ        0       NEQ        0

1            4       NEQ        0       NEQ       46

2            1       NEQ        0       NEQ        0

*snip*

設定を拡張します。

Sup2T#show ip access-lists a1

Extended IP access list a1

10 permit tcp host 192.168.1.10 host 192.168.2.10 dscp ef

20 permit tcp host 192.168.2.11 host 192.168.2.11 dscp ef

30 permit tcp host 192.168.3.11 host 192.168.3.11 dscp ef

40 permit tcp host 192.168.4.11 host 192.168.4.11 dscp ef

50 permit tcp host 192.168.5.11 host 192.168.5.11 dscp ef

60 permit tcp host 192.168.6.11 host 192.168.6.11 dscp ef

70 permit tcp host 192.168.7.11 host 192.168.7.11 dscp ef

80 permit tcp host 192.168.8.11 host 192.168.8.11 dscp ef

Sup2T#show platform software acl capmap tcam A label 2 module 3

Shadow Capmap Table Entry For TCAM A

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

2     8 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free   2/1/8

これを実行しても、これ以上のエントリは使用されません。代わりに、最初のエントリに対する合計参照カウントが増えます。合理的です。Capmap テーブルと LOU レジスタの観点からいうと、送信元と接続先に関する考慮は不要です。これは単に L4Op 情報を保存します。すべての ACE で同じ DSCP 値に対するマッチングを行うため、その DSCP 値に対するエントリが 1 つあれば十分です。

9 つの DSCP 値を使用するように変更します。

Sup2T#show ip access-lists a1

Extended IP access list a1

10 permit tcp host 192.168.1.10 host 192.168.2.10 dscp af11

20 permit tcp host 192.168.2.11 host 192.168.2.11 dscp af12

30 permit tcp host 192.168.3.11 host 192.168.3.11 dscp af13

40 permit tcp host 192.168.4.11 host 192.168.4.11 dscp af21

50 permit tcp host 192.168.5.11 host 192.168.5.11 dscp af22

60 permit tcp host 192.168.6.11 host 192.168.6.11 dscp af23

70 permit tcp host 192.168.7.11 host 192.168.7.11 dscp af31

80 permit tcp host 192.168.8.11 host 192.168.8.11 dscp af32

90 permit tcp host 192.168.9.11 host 192.168.9.11 dscp af33

ここで capmap テーブルを見ると、すべて使用済みであることがわかります。

Sup2T#show platform software acl capmap tcam A label 2 module 3

Shadow Capmap Table Entry For TCAM A

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]

[1]              [0]

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

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

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

2     0 212/0/1           10/1/1            9/1/1            8/1/1

7/1/1            6/1/1            5/1/1            4/1/1            3/1/1

2/1/1

別の拡張不可能な L4Op ベースのエントリをインストールしようとすると、次のようになります。

Sup2T(config-ext-nacl)#permit tcp host 192.168.10.11 host 192.168.10.11 dscp 2

Sup2T(config-ext-nacl)#end

%QM-4-TCAM_ENTRY: Hardware TCAM entry programming failed for slot 3 intf Gi3/23

dir IN: <CONFIG_UPDATE_REQ> TCAM Req Error: FAIL (4): Low TCAM Entries (1)

%QM-4-TCAM_ENTRY: Hardware TCAM entry programming failed for slot 3 intf Gi3/23

dir IN: <CONFIG_UPDATE_REQ> TCAM Req Error: FAIL (4): Low TCAM Entries (1)

%QM-4-TCAM_ENTRY: Hardware TCAM entry programming failed for slot 3 intf Gi3/23

dir IN: <CONFIG_UPDATE_REQ> TCAM Req Error: FAIL (4): Low TCAM Entries (1)

%QM-4-TCAM_ENTRY: Hardware TCAM entry programming failed for slot 3 intf Gi3/23

dir IN: <CONFIG_UPDATE_REQ> TCAM Req Error: FAIL (4): Low TCAM Entries (1)

%QM-4-TCAM_ENTRY: Hardware TCAM entry programming failed for slot 3 intf Gi3/23

dir IN: <CONFIG_UPDATE_REQ> TCAM Req Error: FAIL (4): Low TCAM Entries (1)

%FMCORE-6-RACL_ENABLED: Interface GigabitEthernet3/23 routed traffic is hardware

switched in ingress direction

Oct 20 17:12:54.304: %EARL_CM-DFC3-5-NOCAPMAP: No free capmap entry available

次は、このインターフェイスの TCAM を確認します。

Sup2T#show platform hardware acl entry interface gig3/23 qos in ip module 3

mls_if_index:8096000 dir:0 feature:1 proto:0

Couldnt find feature for mls_if_index 0x8096000, dir 0

QoS 機能は、これ以上、このインターフェイス用の TCAM にインストールされません。

マーキングが L4Op を消費しないことに注意してください。したがって、L4Op 値を使用しない単純な ACL で、マッチングする DSCP 値を設定する場合、LOU のレジスタは使用されません。以下が一例です。

Sup2T#show policy-map a1-policy

Policy Map a1-policy

Class a1-class

set dscp ef

Sup2T#show class-map a1-class

Class Map match-all a1-class (id 37)

Match access-group name a1

Sup2T#show ip access-lists a1

Extended IP access list a1

10 permit tcp host 192.168.1.1 host 192.168.2.1

これはインターフェイス gig3/23 に適用されます。

Sup2T#show run interface gig3/23

Building configuration...

Current configuration : 176 bytes

!

interface GigabitEthernet3/23

switchport

switchport trunk allowed vlan 1-30

switchport mode trunk

service-policy input a1-policy

end

Sup2T#show platform hardware acl entry interface gig3/23 qos in ip  detail module 3

mls_if_index:8096000 dir:0 feature:1 proto:0

pass#0 features

UAPRSF: U-urg, A-ack, P-psh, R-rst, S-syn, F-fin

MLGFI: M-mpls_plus_ip_pkt, L-L4_hdr_vld, G-gpid_present,F-global_fmt_match, I-ife/ofe

's' means set; 'u' means unset; '-' means don't care

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

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

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

-------

I     INDEX  LABEL FS ACOS    AS           IP_SA        SRC_PORT

IP_DA        DST_PORT F FF L4PROT TCP-F:UAPRSF MLGFI OtherL4OPs

RSLT                  CNT

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

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

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

---------

fno:0

tcam:A, bank:0, prot:0    Aces

I  V  16238      3  0    0     0     192.168.1.1               -     192.168.2.1

- 0  0      1      -       -----          -                    0x0000E010005D100B

0

I  M  16238 0x1FFF  0 0x00 0x000 255.255.255.255               - 255.255.255.255

- 0  0    0xF

I  V  16239      3  0    0     0         0.0.0.0               -         0.0.0.0

- 0  0      0      -       -----          -                    0x000000000080D00B

0

I  M  16239 0x1FFF  0 0x00 0x000         0.0.0.0               -         0.0.0.0

- 0  0    0x0

Sup2T#show platform software acl capmap tcam A label 3 module 3

Shadow Capmap Table Entry For TCAM A

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

Output in a RST/INV/CNT format: RST - result value; INV - inverted;

CNT - aggregated reference account;

CBF - number of free cap bits (one per entry);

Free items are not shown

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

Index   CBF       [9]              [8]              [7]              [6]

[5]              [4]              [3]              [2]              [1]

[0]

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

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

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

3     9 212/0/1                      Free             Free             Free

Free             Free             Free             Free             Free

Free

ケーススタディ#4：デュアルスタックACLによりCAPMAPが枯渇する

この例では、インターフェイスが起動したときに次のエラーが発生するIPv4とIPv6 ACLの両方を使用するように設定されたインターフェイスがあります。

%EARL_CM-5-NOCAPMAP: No free capmap entry available

%FMCORE-4-RACL_REDUCED: Interface Vlan500 routed traffic will be software switched in ingress direction.

L2 features may not be applied at the interface

ただし、IPv4 ACLだけが削除され、同じインターフェイスに再ロードされると、ハードウェアプログラミングが正常に完了し、エラーは生成されなくなります。

この例では、SVIの下に次のACLが設定されています。

Switch#sh ip access-lists INGRESS

Extended IP access list INGRESS

10 permit tcp host 1.1.1.1 host 1.1.1.2 range 1 10

20 permit tcp host 1.1.1.3 host 1.1.1.4 range 10 ftp-data

30 permit tcp host 2.1.1.3 host 2.1.1.4 range 30 40

40 permit tcp host 2.1.1.3 host 2.1.1.4 range 85 100

50 permit tcp host 2.1.1.3 host 10.1.1.1 range 222 333

60 permit tcp host 20.5.4.3 host 10.100.100.1 range www 443

70 permit tcp host 200.50.4.3 host 11.11.11.1 range 800 813

80 permit tcp host 200.50.40.30 host 12.12.11.1 range 50 60

90 permit tcp host 13.13.13.3 host 14.14.14.3 range gopher 90

100 permit tcp host 23.23.23.3 host 14.14.10.1 range 123 345

110 permit udp host 123.123.123.1 range 50 60 host 23.23.23.1 range 10 20

120 permit udp host 45.45.43.1 range 1000 1010 host 1.1.1.1 range 50 65

130 permit tcp host 78.78.78.1 range 89 95 host 2.3.4.5 range 1111 1200

140 permit tcp host 5.5.5.50 eq 65000 host 5.4.5.4

150 permit tcp host 5.15.5.150 range 1200 1250 host 1.7.8.4 range 45 65

Switch#show ipv6 access-list DENY-ALL-V6

IPv6 access list DENY-ALL-V6

permit udp FE80::/64 host FF02::66 eq 2000 sequence 10

deny ipv6 any any sequence 20

前の例に示すように、IPv4 ACLには9つ以上の一意の拡張可能なL4Opがあります。IPv4のみで設定されたインターフェイスでは、capmapテーブルを使い果たさないように、必要に応じて拡張されます。

デュアルスタック環境でTCAMハードウェアにこれらをプログラミングする場合、スイッチは最初にIPv4 ACLから開始します。capmapテーブルの空きエントリが不十分な場合、スイッチはcapmapテーブルを超えずに埋めるために、展開可能なL4Opの一部を展開します。結果として、テーブル内の空きエントリの数が0になりました。これは、次にIPv6 ACLをプログラムする際に必要な、拡張不可能なL4Opをプログラムするためのエントリが存在しないことを意味します。

IPv4 ACLだけを削除すると、capmapテーブルの空きエントリ数が増加し、IPv6 ACLがハードウェアに適切にプログラムされ、新しく解放されたcapmapエントリの1つが使用されます。IPv4 ACLがインターフェイス設定に再適用されると、同じ拡張が再び行われます。IPv6 ACLの結果として、追加のIPv4エントリが1つだけ拡張され、その結果capmapの値が空になります。すべてのL4OpがこのACLで拡張可能であるため、プログラミングは成功します。

IPv4 ACLを手動で削除して追加し、ハードウェアでエントリをマージできるようにするため、このようなシナリオでTCAMマージアルゴリズムを変更するための拡張機能が作成されました。詳細は、Cisco Bug ID CSCuq24924を参照してください。

この機能拡張の結果、ソフトウェアの「固定」リリースには、デュアルスタックIPv4/v6 ACLの展開などのインスタンスでL4Opがプログラムされる方法を変更する設定可能なオプションがグローバル設定に含まれるようになりました。これは設定変更です

Switch(config)#platform hardware acl tcam-exp-logic enable

注：この機能拡張の結果として導入された変更により、拡張可能なL4Opは通常よりも大きなレートで拡張され、拡張の結果としてTCAM使用率が大幅に増加する可能性があります。