Introduction

Ce document décrit comment les unités d'opération logique et les opérations de couche 4 sont programmées dans le tableau de capmap. Il fournit des scénarios d'échec, les types d'erreurs que vous rencontrez généralement dans ces situations, et ce que vous devez déduire de ces erreurs. 

Classification Manager (CM) gère la mémoire TCAM (Ternary Content Addressable Memory) de classification et les ressources associées telles que les étiquettes, les LOU, les entrées de capmap et autres. Les services CM sont utilisés par le gestionnaire de fonctionnalités (FM) et le gestionnaire QoS (QM) pour programmer les entrées TCAM afin de prendre en charge Cisco IOS® Fonctionnalités ACL (Access Control List) et QoS (Quality of Service).

Informations générales

LOU et L4Ops - LOU signifie Logical Operation Units, qui sont des registres matériels utilisés pour stocker {opérateur, opérande} des tuples pour les numéros de port TCP/UDP spécifiés dans les listes de contrôle d'accès et les listes de contrôle d'accès VLAN. Ces tuples sont également appelés L4Ops. Par exemple, si vous associez l'hôte X à l'hôte Y gt 1023, le tuple devient {gt, 1023}.

L4Ops - Opérations de couche 4.

Tables Capmap - Les L4Ops décrites précédemment sont programmées dans des registres LOU référencés par des entrées dans des tables Capmap. Chaque table capmap a une limite de 10 (une est réservée à la direction, ce qui ramène la limite à neuf) entrées (L4Ops). Les tables Capmap sont indexées par l'étiquette TCAM elle-même. 

Il existe deux TCAM, A et B ; chaque TCAM comporte des étiquettes de 8 000 tr/min. Pour chaque TCAM, il existe une table de majuscules de 2000 entrées. Puisque chaque TCAM comporte des étiquettes de 8 000 tr/min, il y a un chevauchement 4:1 ici - quatre étiquettes mappées à une entrée de capmap. Le chevauchement est le suivant : 1=2 049=4 097=6 145.

En gros, cela signifie que les étiquettes TCAM 1, 2049, 4097 et 6145 utilisent le même index de majuscules. La mise en oeuvre traditionnelle de l'allocation des étiquettes TCAM par Cisco a entraîné des problèmes en raison de ce chevauchement. Cisco a attribué des étiquettes TCAM avec un écart de 2 000 (2048 pour être précis). Cela signifie que l'allocation prendra la forme des 1, 2049, 4097, 6145, 2, 2050, 4098, 6146, et ainsi de suite.

Dès le départ, cette allocation TCAM était telle que les tables de capmap se chevauchaient. Voici un exemple pour le démontrer (tiré de l'ID de bogue Cisco CSCuo02666). Voici deux listes de contrôle d’accès, a1 et a2, définies et appliquées à l’interface VLAN 1 et à l’interface VLAN 2, comme indiqué ici :

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

Voici maintenant la TCAM pour ces interfaces :

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

L'étiquette TCAM attribuée à l'interface VLAN 1 est 2049 et l'étiquette TCAM attribuée à l'interface VLAN 2 est 4097. Cela signifie que ces deux interfaces utilisent la même table de capmap afin de référencer les registres LOU pour leur programmation L4Op.

Vous pouvez le confirmer avec cette commande (cinq ACE dans la liste de contrôle d’accès a1 et quatre ACE dans la liste de contrôle d’accès a2 impliquent que vous devriez voir la table de mappage comme pleine) :

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

Donc maintenant, à ce stade, si vous essayez d'installer une autre entrée de contrôle d'accès (ACE) L4Op, qui n'est pas extensible, pour l'une de ces interfaces, vous recevrez l'erreur 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

Cela se traduit par un pontage logiciel de l'ensemble de l'interface qui pourrait entraîner un ralentissement de la commutation, une utilisation élevée du CPU et d'autres problèmes connexes.

Note: L'ID de bogue Cisco CSCuo02666 a été levé pour résoudre ce problème. Le plus grand changement de logique qu'il introduit est la manière dont les étiquettes TCAM sont attribuées. Cisco alloue désormais des étiquettes TCAM en continu (2,3,4,5, etc.) jusqu'en 2048 au lieu de 2 000. Cela signifie que les tables de maquette ne sont plus partagées depuis le début.

N'oubliez pas que les LOU, comme toute autre ressource matérielle, sont limitées. Au total, 104 LOU sont disponibles :

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

Tables Capmap du programme et registres LOU

Les tables Capmap sont utilisées uniquement lorsque les opérations de couche 4 doivent être prises en compte. Notez que la correspondance sur les valeurs DSCP (Differentiated Services Code Point)/CoS (Class of Service) est également considérée comme L4Op. Voici un exemple simple (qui utilise une version de code qui inclut la correction de l'ID de bogue Cisco CSCuo02666 ) sur lequel ce document s'appuie progressivement :

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

Ceci est correctement programmé dans 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

Les tables Capmap sont référencées via l'étiquette TCAM elle-même. Vous pouvez utiliser l'étiquette TCAM dans la commande show platform software [hardware] acl capmap tcam <> label <> afin d'afficher la table correspondante (logiciel ou matériel) pour cette étiquette 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

Rien n'est alloué dans la table de capmap pour cette étiquette. La liste de contrôle d'accès définie ne comporte pas de L4Ops ; il n'est pas nécessaire d'installer une entrée dans la table capmap.

Modifiez cet ACE en ceci :

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

Regardez à nouveau la table de 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

Si vous établissez directement un numéro de port, il ne compte pas également comme L4Op.

Modifiez-le comme suit :

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

Examinez à nouveau la table de mappage :

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 

Il y a maintenant une entrée dans la table capmap. L'ACE a été converti en 3/1/1 dans la table capmap. Il s'agit du format RST/INV/CNT. La TVD indique ici dans quelle LOU cette L4Op a été enregistrée et la CNT décrit le nombre agrégé de cette LOU (plus d'informations à ce sujet plus tard). Regardez ce résultat afin de comprendre comment la valeur de TVD est indexée :

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

Vous pouvez voir que la valeur L4op_sel de 0 point au registre LOU0 B, la valeur de 1 point au registre LOU0 A, la valeur de 2 points au registre LOU1 B, la valeur de 3 points au registre LOU1 B, et ainsi de suite. Le registre A est toujours programmé en premier. La sortie 3/1/1 a plus de sens maintenant que vous voyez ceci.

Dans ce résultat, 3 signifie que L4Op a été programmé dans le registre LOU1 A. Vous pouvez également vérifier où une L4Op est programmée si vous examinez directement le contenu des registres de la liste de valeurs :

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*

Comme vous pouvez le voir, un tuple (gt, X) est programmé en tant que (LT, X+1) dans les registres de la LOU.

Note: Les opérations L4Ops sont programmées dans les registres LOU UNIQUEMENT lorsqu'elles sont appliquées aux interfaces. Si des listes de contrôle d'accès sont créées avec L4Ops (sans que la liste de contrôle d'accès ne soit réellement appliquée à une interface), elles ne programment pas les L4Ops applicables dans les registres de LOU.

Supprimez la liste de contrôle d’accès de l’interface VLAN 1 et examinez à nouveau les registres de la liste de contrôle d’accès :

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*

Étude de cas n° 1 : listes de contrôle d'accès avec indicateurs TCP

Les indicateurs TCP ont un ensemble spécial de registres alloués dans la plage de registres de la liste de valeurs. Vous pouvez afficher cette plage via la commande show platform software acl capmap map, comme indiqué ici :

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

Les valeurs L4op_sel 224-239 sont disponibles pour les indicateurs TCP, ce qui vous donne un ensemble de 16 registres à utiliser. Voici un exemple simple pour le démontrer. Cette liste de contrôle d’accès est définie :

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

Appliquez cette entrée sur l'interface 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

Dans cet exemple, l'indicateur TCP est programmé dans le registre 224 (cela correspond au premier registre disponible pour les indicateurs TCP). Le nombre total pour cela correspond au nombre de flux TCP (ACE lus) avec le même indicateur TCP.

Ajoutez une autre entrée de contrôle d’accès à la liste de contrôle d’accès actuelle a13. Ceci doit avoir un indicateur TCP différent :

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

Si vous examinez à nouveau la table capmap, vous voyez qu'un autre registre TCP est utilisé :

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 

Comme vous pouvez le voir, la programmation est faite par indicateur ; pour chaque indicateur, un registre TCP indépendant est utilisé et vous conservez un comptage par rapport à cela. Cela signifie que, pour chaque indicateur, vous utilisez également une entrée capmap. Ceci implique en outre que techniquement, vous ne pouvez pas dépasser neuf indicateurs dans votre liste de contrôle d'accès ou atteindre la limite de capmap avant la limite TCP de 16 indicateurs. 

Augmentez vos indicateurs TCP de sorte que vous atteigniez la limite du registre TCP afin de voir ce qui se passe. Cet exemple montre plusieurs listes de contrôle d'accès qui ont été configurées et appliquées à différents VLAN d'interface afin d'atteindre une utilisation de registre TCP à 100 % comme indiqué ici :

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%

À ce stade, si vous décidez de configurer une autre liste de contrôle d'accès avec un indicateur TCP unique (ou une combinaison d'indicateurs TCP qui la rend unique) et de l'appliquer à une interface, vous devez programmer un nouvel indicateur TCP (ou une combinaison d'indicateurs) sur un registre TCP. Cependant, aucun registre matériel n'est disponible. Dans cette situation, vous établissez un pont sur l’ensemble de l’interface.

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  

Étude de cas n° 2 - 100 % d'utilisation du registre des LOU

N'oubliez pas que les LOU sont une ressource limitée - vous pouvez également manquer d'espace pour ceux-ci. Vous pouvez surveiller l'utilisation de la LOU à l'aide de cette commande :

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%

Faites évoluer les listes de contrôle d’accès afin d’utiliser plus de LOU. Après l'installation de plusieurs listes de contrôle d'accès (avec la commande range qui prend deux registres de LOU, A et B), cet exemple montre l'utilisation de 96 % de 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%   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%

Créez une autre liste de contrôle d’accès et appliquez-la à une interface qui ferait passer l’utilisation de la liste de contrôle d’accès à plus de 100 %.

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

L'exemple a atteint 100 % d'utilisation de la LOU ; cependant, notez qu'aucun message d'erreur n'a été reçu.

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%

Voici un autre test. Maintenant que la LOU est à 100%, prenez une L4Op très simple et essayez de l'installer pour une interface. Configurez cette liste de contrôle d’accès :

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

Appliquez cette entrée à l’interface 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

Regardez maintenant la TCAM pour ce VLAN :

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  

Les L4Ops ont été étendus. Si vous regardez la table de capmap pour cette étiquette TCAM, vous voyez que rien n'est installé.

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

Voici une explication de ce qui s'est passé. Comme les registres de la liste de valeurs sont complets, vous ne pouvez plus y installer de nouvelles L4Ops et rien ne peut être référencé dans la table de capmap. À ce stade, vous essayez toujours d'installer L4Ops dans TCAM en les développant. Si les opérations L4Ops ne peuvent pas être développées, le logiciel bascule l'interface entière dans la direction donnée.

Qu'implique une utilisation à 100 % du registre de LOU ? Votre TCAM commence à se remplir rapidement (en raison de l'extension L4Op). Si vous essayez d'installer des L4Ops non extensibles, alors avec la mise en oeuvre actuelle, l'ensemble de votre interface est ponté par logiciel.

En l'état actuel, une erreur n'est générée que lorsque vous essayez d'installer une L4Op non extensible dans une telle situation. Cet exemple montre comment modifier la liste de contrôle d'accès a13 actuelle qui a été appliquée à l'interface VLAN 13 avec l'ajout d'une L4Op non extensible.

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

Étude de cas n° 3 - Programmation QoS avec L4Ops

Les politiques QoS peuvent également faire référence aux opérations L4Ops ; ces L4Ops doivent être installés comme tout autre L4Op. Cela signifie que par interface, même pour vos politiques de QoS, vous êtes limité par les restrictions que les tables de capture et les LOU ont intrinsèquement. Voici un exemple pour illustrer ceci de manière minime :

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

Cet exemple a une carte-politique correspondant à une carte-classe qui appelle la liste d'accès a1 qui correspond au trafic de 192.168.1.10 à 192.168.2.10 qui est marqué avec EF (Expeded Forwarding). La correspondance sur une valeur DSCP est une L4Op non extensible ; ceci doit être programmé dans un registre LOU et référencé via une entrée dans la table capmap. Cette carte-politique est maintenant installée en entrée de 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

Afin d'examiner la programmation QoS d'une interface, utilisez cette commande :

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 

Le détail de cette commande indique le libellé TCAM utilisé sur cette interface.

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

L'étiquette TCAM utilisée est 2. Regardez la table de capmap pour ceci maintenant :

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  

Note: Pour QoS TCAM, vous devez spécifier le numéro de module. Sans cela, le résultat ne donne aucun résultat.

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*

Une valeur LOU de 2 points à LOU1, enregistrez B. Vous pouvez confirmer cette programmation avec cette commande :

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*

Faites évoluer la configuration.

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

Ceci n'utilise plus d'entrées ; au lieu de cela, il augmente le nombre de références agrégées par rapport à la première entrée elle-même, ce qui est logique. Du point de vue de la table de capture et du registre de la liste de valeurs, il n'y a aucune préoccupation quant à la source et à la destination. Ceci stocke simplement les informations L4Op. Comme il correspond à la même valeur DSCP sur tous les ACE, vous n'avez besoin que d'une seule entrée pour cette valeur DSCP.

Modifiez-le de sorte que vous utilisiez neuf valeurs DSCP différentes.

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

Maintenant, si vous regardez la table capmap, vous voyez qu'elle est pleine :

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         

Voici ce qui se passe si vous essayez d'installer une autre entrée L4Op non extensible :

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

Regardez maintenant la TCAM pour cette interface :

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

Aucune des fonctionnalités QoS n'est installée dans le TCAM pour cette interface.

Notez que le marquage ne consomme aucune opération L4Ops. Par conséquent, si vous avez une liste de contrôle d'accès simple qui ne possède pas L4Ops et que vous définissez une valeur DSCP sur match, aucun registre de liste de contrôle d'accès n'est utilisé pour cela. Voici un exemple :

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

Ceci est appliqué à l'interface 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

Étude de cas n° 4 - Les listes de contrôle d'accès à deux piles provoquent l'épuisement du PAMAP

Dans cet exemple, une interface configurée pour utiliser les listes de contrôle d'accès IPv4 et IPv6 crée ces erreurs lorsque l'interface est activée :

%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

Cependant, si seule la liste de contrôle d'accès IPv4 est supprimée, puis lue sur la même interface, la programmation matérielle s'exécute correctement et l'erreur n'est plus générée.

Pour cet exemple, ces listes de contrôle d’accès sont configurées sous l’interface SVI :

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

Comme indiqué dans l'exemple précédent, la liste de contrôle d'accès IPv4 dispose de plus de neuf opérations L4Ops extensibles uniques. Sous une interface configurée avec uniquement IPv4, ces paramètres seront développés selon les besoins afin de ne pas épuiser la table capmap.

Lorsque vous les programmez dans le matériel TCAM dans un environnement à double pile, le commutateur commence par la liste de contrôle d'accès IPv4. Avec des entrées libres insuffisantes dans la table capmap, le commutateur étend une partie des opérations L4Ops extensibles afin de remplir la table capmap sans la dépasser. Le résultat est que le nombre d'entrées libres dans la table est désormais 0, ce qui signifie qu'il n'y a plus d'entrées disponibles pour programmer l'opération L4Op non extensible requise lorsque vous allez programmer la liste de contrôle d'accès IPv6 suivante.

Lorsque vous supprimez uniquement la liste de contrôle d'accès IPv4, le nombre d'entrées libres dans la table de mappage augmente et la liste de contrôle d'accès IPv6 est désormais correctement programmée dans le matériel et utilise l'une des entrées de mappage nouvellement libérées. Lorsque la liste de contrôle d'accès IPv4 est réappliquée à la configuration d'interface, la même extension se produit à nouveau. Une seule entrée IPv4 supplémentaire est désormais développée en raison de la liste de contrôle d'accès IPv6 qui utilise une valeur de capmap libre. Puisque toutes les L4Ops peuvent être développées dans cette liste de contrôle d’accès, la programmation réussit.

Afin d'empêcher la suppression manuelle et l'ajout de la liste de contrôle d'accès IPv4 pour permettre la fusion des entrées dans le matériel, une amélioration a été créée pour modifier l'algorithme de fusion TCAM dans de tels scénarios. Voir l'ID de bogue Cisco CSCuq24924 pour plus d'informations.

En conséquence de cette amélioration, “ versions de ” de logiciels fixes disposeront désormais d'une option configurable dans la configuration globale qui modifie la façon dont les opérations L4Ops sont programmées dans des instances telles qu'un déploiement de listes de contrôle d'accès IPv4/v6 à double pile. Il s'agit de la modification de configuration qui peut être effectuée

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

Note: En raison des modifications introduites par suite de cette amélioration, les L4Ops extensibles sont augmentées à un taux supérieur à la normale et pourraient entraîner une augmentation significative de l'utilisation de TCAM en raison de l'expansion.