Sommario

Introduzione

Premesse

Terminologia

Aree TCAM ACL

Allocazione TCAM Nexus serie 9500

Nexus serie 9300 Allocazione TCAM

Configurazione

Scenario di esempio

Comandi di verifica

Errori e soluzioni

Linee guida e limitazioni per la progettazione

Informazioni correlate

Introduzione

Questo documento descrive come scolpire Nexus 9000 ternary content-addressable memory (TCAM).

Premesse

Questo documento non intende essere un elenco esaustivo delle numerose combinazioni di TCAM. Lo scopo di questo documento è quello di aiutare gli utenti a comprendere come funziona l'allocazione TCAM in modo da poter determinare configurazioni valide che soddisfano le loro esigenze. Vengono illustrati i concetti, la configurazione e i messaggi di errore più comuni e correnti.

Per utilizzare una funzione non predefinita per gli switch Nexus serie 9000, è necessario liberare manualmente lo spazio TCAM per le funzioni. Per impostazione predefinita, viene allocato tutto lo spazio TCAM.

Terminologia

- Larghezza feature (Feature Width) - Sono disponibili feature a larghezza singola e doppia.  Una feature a larghezza singola richiede almeno una sezione.  Una feature a larghezza doppia richiede almeno due fette.

Per entrambe le funzionalità a larghezza singola e doppia, la dimensione totale, se maggiore di 256, deve essere un multiplo di 512. Una sezione può essere allocata a una sola area.

Ad esempio, non potete usare una sezione di 512 dimensioni per configurare due funzionalità di 256 dimensioni ciascuna, né potete usare una sezione di 512 dimensioni per configurare una singola funzione di larghezza doppia.

- Slice - Unità di allocazione della memoria. Le sezioni possono avere dimensioni 256 o 512, misurate in byte.

- TCAM - Ternary Content Addressable Memory.  Questo è lo spazio nell'hardware in cui sono memorizzati gli elenchi degli accessi (ACL).  Si tratta di una memoria speciale che memorizza dati tabulari complessi e supporta ricerche parallele molto rapide.

Aree TCAM ACL

È possibile modificare le dimensioni delle aree TCAM degli ACL nell'hardware. La dimensione TCAM in uscita è di 1K, divisa in quattro 256 voci. Il formato TCAM in entrata è di 4K, diviso in otto 256 fette e quattro 512 fette.

Le aree TCAM IPv4 sono di larghezza singola. Le aree IPv6, Quality of Service (QoS), MAC, Control-Plane Policing (CoPP) e System TCAM sono due volte più ampie e consumano il doppio delle voci TCAM fisiche.

Ad esempio, una dimensione di area logica di 256 voci consuma 512 voci TCAM fisiche.

È possibile creare IPv6, ACL di porta (PACL), ACL VLAN (VACL) e ACL di router (RACL) e associare gli indirizzi IPv6 e MAC per le funzionalità QoS. Tuttavia, Cisco NX-OS non è in grado di supportarle tutte contemporaneamente.

Per abilitare le aree TCAM IPv6 e MAC è necessario rimuovere o ridurre le dimensioni delle aree TCAM correnti. Per ogni comando di configurazione dell'area TCAM, il sistema valuta se la nuova modifica può essere contenuta nell'area TCAM.

In caso contrario, viene restituito un errore e il comando viene rifiutato. È necessario rimuovere o ridurre le dimensioni delle aree TCAM correnti per fare spazio ai nuovi requisiti.

Le dimensioni delle aree TCAM ACL sono soggette alle seguenti linee guida e limitazioni:

- Sugli switch Cisco Nexus serie 9500, la configurazione predefinita della regione TCAM in entrata prevede una slice gratuita da 256 ingressi in Cisco NX-OS versione 6.1(2)I1(1).

Questa slice viene allocata all'area SPAN (Switch Port Analyzer) in Cisco NX-OS versione 6.1(2)I2(1). Analogamente, la regione RACL è ridotta da 2K a 1,5K in Cisco NX-OS versione 6.1(2)I2(1) per fare spazio alla regione di convergenza del canale della porta virtuale (vPC) con 512 voci.

- Sugli switch Cisco Nexus serie 9300, la scheda di linea foglia ACI (Application Centric Infrastructure) viene utilizzata per applicare i criteri di classificazione QoS applicati alle porte 40G. Dispone di 768 voci TCAM disponibili per scavare in granularità di 256 voci. I nomi di queste aree sono preceduti dal prefisso "ns-".

- Per la scheda di linea foglia ACI sugli switch Cisco Nexus serie 9300, solo le aree TCAM IPv6 utilizzano voci a larghezza doppia. Il resto delle regioni TCAM consuma voci singole.

- Quando viene configurata una regione VACL, viene configurata con le stesse dimensioni sia in entrata che in uscita. Se le dimensioni della regione non possono essere adattate in nessuna direzione, la configurazione viene rifiutata.

Entrambi gli switch Nexus serie 9300 e 9500 dispongono di quattro slice di dimensioni di 512 byte e di otto slice di dimensioni di 256 byte.  Per impostazione predefinita, vengono utilizzate tutte le sezioni e tutto lo spazio, anche se l'allocazione predefinita è diversa tra Nexus serie 9300 e serie 9500.

Nota: Nexus 9332PQ utilizza la stessa allocazione predefinita di Nexus 9500.

Allocazione TCAM Nexus serie 9500

Per impostazione predefinita, agli switch Nexus serie 9500 è assegnato questo numero di TCAM:

Nexus9500# show system internal access-list globals

slot  1

=======

Atomic Update : ENABLED

Default ACL   : DENY

Bank Chaining : DISABLED

Fabric path DNL : DISABLED

NS Buffer Profile: Mesh optimized

Min Buffer Profile: all

EOQ Class Stats: qos-group-0

NS MCQ3 Alias: qos-group-3

Ing PG Share: ENABLED

LOU Threshold Value : 5

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

INSTANCE 0 TCAM Region Information:

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

Ingress:

----------

Region            GID     Base     Size     Width

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

IPV4 PACL [ifacl]      3        0        0        1

IPV6 PACL [ipv6-ifacl]      4        0        0        2

MAC PACL [mac-ifacl]      5        0        0        2

IPV4 Port QoS [qos]      6        0        0        2

IPV6 Port QoS [ipv6-qos]      7        0        0        2

MAC Port QoS [mac-qos]      8        0        0        2

FEX IPV4 PACL [fex-ifacl]      9        0        0        1

FEX IPV6 PACL [fex-ipv6-ifacl]     10        0        0        2

FEX MAC PACL [fex-mac-ifacl]     11        0        0        2

FEX IPV4 Port QoS [fex-qos]     12        0        0        2

FEX IPV6 Port QoS [fex-ipv6-qos]     13        0        0        2

FEX MAC Port QoS [fex-mac-qos]     14        0        0        2

IPV4 VACL [vacl]     15        0        0        1

IPV6 VACL [ipv6-vacl]     16        0        0        2

MAC VACL [mac-vacl]     17        0        0        2

IPV4 VLAN QoS [vqos]     18        0        0        2

IPV6 VLAN QoS [ipv6-vqos]     19        0        0        2

MAC VLAN QoS [mac-vqos]     20        0        0        2

IPV4 RACL [racl]     21        0     1536        1

IPV6 RACL [ipv6-racl]     22        0        0        2

IPV4 Port QoS Lite [qos-lite]     61        0        0        1

FEX IPV4 Port QoS Lite [fex-qos-lite]     62        0        0        1

IPV4 VLAN QoS Lite [vqos-lite]     63        0        0        1

IPV4 L3 QoS Lite [l3qos-lite]     64        0        0        1

IPV4 L3 QoS [l3qos]     37     3072      256        2

IPV6 L3 QoS [ipv6-l3qos]     38        0        0        2

MAC L3 QoS [mac-l3qos]     39        0        0        2

Ingress System      1     2048      256        2

SPAN [span]      2     4096      256        1

Ingress COPP [copp]     40     2560      256        2

Ingress Flow Counters [flow]     43        0        0        1

Ingress SVI Counters [svi]     45        0        0        1

Redirect [redirect]     46     3840      256        1

NS IPV4 Port QoS [ns-qos]     47        0        0        1

NS IPV6 Port QoS [ns-ipv6-qos]     48        0        0        2

NS MAC Port QoS [ns-mac-qos]     49        0        0        1

NS IPV4 VLAN QoS [ns-vqos]     50        0        0        1

NS IPV6 VLAN QoS [ns-ipv6-vqos]     51        0        0        2

NS MAC VLAN QoS [ns-mac-vqos]     52        0        0        1

NS IPV4 L3 QoS [ns-l3qos]     53        0        0        1

NS IPV6 L3 QoS [ns-ipv6-l3qos]     54        0        0        2

NS MAC L3 QoS [ns-mac-l3qos]     55        0        0        1

VPC Convergence [vpc-convergence]     57     1536      512        1

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

* - allocated 512 entry slice due to unavailability of 256 entry slices

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

Total: 4096

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

Egress

----------

Region            GID     Base     Size     Width

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

Egress IPV4 VACL [vacl]     31        0        0        1

Egress IPV6 VACL [ipv6-vacl]     32        0        0        2

Egress MAC VACL [mac-vacl]     33        0        0        2

Egress IPV4 RACL [e-racl]     34     4352      768        1

Egress IPV6 RACL [e-ipv6-racl]     35        0        0        2

Egress System     24     3584      256        1

Egress Flow Counters [e-flow]     44        0        0        1

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

Total: 1024

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

L'allocazione delle porzioni è quella mostrata di seguito per l'entrata:

Sezione 1 (512): RACL

Sezione 2 (512): RACL

Sezione 3 (512): RACL

Sezione 4 (512): convergenza VPC

Sezione 5 (256): QOS layer 3

Sezione 6 (256): QOS layer 3

Sezione 7 (256): SPAN

Sezione 8 (256): REINDIRIZZAMENTO

Sezione 9 (256): CoPP in ingresso

Sezione 10 (256): CoPP in ingresso

Sezione 11 (256): sistema in ingresso

Sezione 12 (256): sistema in ingresso

Utilizzo in ingresso concettualizzato:

Nexus serie 9300 Allocazione TCAM

Per impostazione predefinita, agli switch Nexus serie 9300 è assegnato questo numero di TCAM:

Nexus9300# show system internal access-list globals

slot  1

=======

Atomic Update : ENABLED

Default ACL   : DENY

Bank Chaining : DISABLED

Fabric path DNL : DISABLED

NS Buffer Profile: Burst optimized

Min Buffer Profile: all

EOQ Class Stats: qos-group-0

NS MCQ3 Alias: qos-group-3

Ing PG Share: ENABLED

LOU Threshold Value : 5

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

INSTANCE 0 TCAM Region Information:

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

Ingress:

----------

Region                      GID     Base     Size     Width

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

IPV4 PACL [ifacl](   1)       3        0      512        1

IPV6 PACL [ipv6-ifacl](   2)       4        0        0        2

MAC PACL [mac-ifacl](   3)       5        0        0        2

IPV4 Port QoS [qos](   4)       6     3072      256        2

IPV6 Port QoS [ipv6-qos](   5)       7        0        0        2

MAC Port QoS [mac-qos](   6)       8        0        0        2

FEX IPV4 PACL [fex-ifacl](   7)       9        0        0        1

FEX IPV6 PACL [fex-ipv6-ifacl](   8)      10        0        0        2

FEX MAC PACL [fex-mac-ifacl](   9)      11        0        0        2

FEX IPV4 Port QoS [fex-qos](  10)      12        0        0        2

FEX IPV6 Port QoS [fex-ipv6-qos](  11)      13        0        0        2

FEX MAC Port QoS [fex-mac-qos](  12)      14        0        0        2

IPV4 VACL [vacl](  13)      15      512      512        1

IPV6 VACL [ipv6-vacl](  14)      16        0        0        2

MAC VACL [mac-vacl](  15)      17        0        0        2

IPV4 VLAN QoS [vqos](  16)      18        0        0        2

IPV6 VLAN QoS [ipv6-vqos](  17)      19        0        0        2

MAC VLAN QoS [mac-vqos](  18)      20        0        0        2

IPV4 RACL [racl](  19)      21     1024      512        1

IPV6 RACL [ipv6-racl](  20)      22        0        0        2

IPV4 Port QoS Lite [qos-lite](  21)      63        0        0        1

FEX IPV4 Port QoS Lite [fex-qos-lite](  22)      64        0        0        1

IPV4 VLAN QoS Lite [vqos-lite](  23)      65        0        0        1

IPV4 L3 QoS Lite [l3qos-lite](  24)      66        0        0        1

IPV4 L3 QoS [l3qos](  34)      37        0        0        2

IPV6 L3 QoS [ipv6-l3qos](  35)      38        0        0        2

MAC L3 QoS [mac-l3qos](  36)      39        0        0        2

Ingress System(  37)       1     2048      256        2

SPAN [span](  39)       2     3584      256        1

Ingress COPP [copp](  40)      40     2560      256        2

Ingress Flow Counters [flow](  41)      43        0        0        1

Ingress SVI Counters [svi](  43)      45        0        0        1

Redirect [redirect](  44)      46     1536      512        1

NS IPV4 Port QoS [ns-qos](  45)      47        0        0        1

NS IPV6 Port QoS [ns-ipv6-qos](  46)      48        0        0        2

NS MAC Port QoS [ns-mac-qos](  47)      49        0        0        1

NS IPV4 VLAN QoS [ns-vqos](  48)      50        0        0        1

NS IPV6 VLAN QoS [ns-ipv6-vqos](  49)      51        0        0        2

NS MAC VLAN QoS [ns-mac-vqos](  50)      52        0        0        1

NS IPV4 L3 QoS [ns-l3qos](  51)      53        0        0        1

NS IPV6 L3 QoS [ns-ipv6-l3qos](  52)      54        0        0        2

NS MAC L3 QoS [ns-mac-l3qos](  53)      55        0        0        1

VPC Convergence [vpc-convergence](  54)      57     4096      256        1

IPSG SMAC-IP bind table [ipsg](  55)      59        0        0        1

Ingress ARP-Ether ACL [arp-ether](  56)      62        0        0        1

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

* - allocated 512 entry slice due to unavailability of 256 entry slices

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

Total: 4096

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

Egress

----------

Region                  GID     Base     Size     Width

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

Egress IPV4 QoS [e-qos](  25)      28        0        0        2

Egress IPV6 QoS [e-ipv6-qos](  26)      29        0        0        2

Egress MAC QoS [e-mac-qos](  27)      30        0        0        2

Egress IPV4 VACL [vacl](  28)      31     4352      512        1

Egress IPV6 VACL [ipv6-vacl](  29)      32        0        0        2

Egress MAC VACL [mac-vacl](  30)      33        0        0        2

Egress IPV4 RACL [e-racl](  31)      34     4864      256        1

Egress IPV6 RACL [e-ipv6-racl](  32)      35        0        0        2

Egress IPV4 QoS Lite [e-qos-lite](  33)      36        0        0        1

Egress System(  38)      24     3840      256        1

Egress Flow Counters [e-flow](  42)      44        0        0        1

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

Total: 1024

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

Sezione 1 (512): PACL IPv4

Sezione 2 (512): VACL

Sezione 3 (512): RACL

Sezione 4 (512): reindirizzamento

Slice 5 (256): QOS porta

Slice 6 (256): QOS porta

Sezione 7 (256): SPAN

Sezione 8 (256): Convergenza VPC

Sezione 9 (256): CoPP in ingresso

Sezione 10 (256): CoPP in ingresso

Sezione 11 (256): sistema in ingresso

Sezione 12 (256): sistema in ingresso

Utilizzo in ingresso concettualizzato:

Configurazione

Per riconfigurare una regione TCAM, usare il hardware access-list tcam region

comando nel terminale di configurazione. Una volta modificate le regioni in modo da ottenere le dimensioni desiderate, è necessario ricaricare il dispositivo.

Scenario di esempio

Si dispone di un Nexus 9300 e si desidera allocare lo spazio TCAM per soddisfare al meglio le proprie esigenze. È necessario liberare 512 byte di TCAM. In questo modo è possibile aggiungere altri pacchetti al pacchetto IPv4.

Tuttavia, si decide di non aver bisogno di 512 VACL o 512 RACL, ma di alcuni di entrambi, quindi si decide di non allocare 256 byte da VACL e RACL. In questo modo viene liberato spazio per 512 come mostrato nei seguenti comandi:

Nexus9300(config)# hardware access-list tcam region vacl 256

Warning: Please save config and reload the system for the configuration to take effect

Nexus9300(config)# hardware access-list tcam region racl 256

Warning: Please save config and reload the system for the configuration to take effect

Con 512 byte liberi, si cerca di allocare un ulteriore 512 al PACL IPv4, ma viene visualizzato questo output:

Nexus9300(config)# hardware access-list tcam region ifacl 1024

ERROR: Aggregate TCAM region configuration exceeded the available Ingress TCAM slices.

Please re-configure.

Anche se sono stati liberati 512 byte, sia lo spazio VACL che RACL, da cui sono stati prelevati 256, erano 512 blocchi.  Di conseguenza, i comandi precedenti non hanno allocato spazio, ma non hanno disallocato alcuna sezione.  Per aumentare le dimensioni del PACL IPv4 a 1024, è necessario prelevare 512 byte da una singola funzione per liberare sia una slice che lo spazio:

Nexus9300(config)# hardware access-list tcam region vacl 512

Warning: Please save config and reload the system for the configuration to take effect

Nexus9300(config)# hardware access-list tcam region racl 0

Warning: Please save config and reload the system for the configuration to take effect

Nexus9300(config)# hardware access-list tcam region ifacl 1024

Warning: Please save config and reload the system for the configuration to take effect

Comandi di verifica

- show hardware access-list tcam region - Verifica la configurazione software corrente

- show system internal access-list globals - Verifica la configurazione hardware corrente

- show system internal access-list input entries detail - Mostra gli ACL specifici configurati per ciascuna istanza

- show hardware access-list resource utilization - Mostra l'utilizzo corrente di ogni area TCAM configurata

- show hardware access-list resource entries - Mostra il numero di voci ACL configurate per ogni istanza

Errori e soluzioni

Di seguito sono riportati gli errori comuni rilevati durante la configurazione TCAM:

ERROR: Aggregate TCAM region configuration exceeded the available

Ingress TCAM slices. Please re-configure.

Questo errore si verifica quando si tenta di configurare una quantità valida di spazio TCAM in relazione al limite di 4k, ma l'allocazione consuma più sezioni di quelle disponibili.

L'unica soluzione per questo errore è rivedere il progetto TCAM complessivo per liberare le sezioni.

Questo errore è più comune quando si tenta di configurare una nuova funzionalità a larghezza doppia, in quanto sono necessarie almeno due sezioni di 256 o 512.

ERROR: Aggregate TCAM region configuration exceeded the available

Ingress TCAM space. Please re-configure.

Analogamente all'errore della sezione, la soluzione consiste nel riconfigurare lo spazio allocato in modo che non superi il limite totale. Questo messaggio di errore viene visualizzato solo quando tutte le slice TCAM sono già state allocate e si cerca di allocare più spazio.

ERROR: TCAM regions with size more than 256, ... have size

in multiple of 512 entries

A causa dei limiti hardware, le dimensioni TCAM maggiori di 256 non possono essere combinate in alcun modo che combini un numero dispari di 256 blocchi con un blocco 512. Per questo motivo, quando configurate un'area TCAM più grande di 512, le uniche dimensioni valide sono multipli di 512.

Linee guida e limitazioni per la progettazione

Lo spazio TCAM è limitato. La scelta del caso più adatto dipende interamente dallo specifico caso di utilizzo. Per impostazione predefinita, tutto lo spazio TCAM è già allocato, quindi è necessario decidere dove allocare lo spazio TCAM per allocarlo altrove.

- In caso di entrata, quattro delle otto fette disponibili (256 fette) non possono essere non assegnate (utilizzate dal CoPP e dal sistema in entrata).

- Una sezione 256 viene utilizzata da SPAN. Se si prende in prestito da questo, non sarà più possibile utilizzare completamente le funzionalità SPAN e Packet-Tracer (non è consigliabile rimuoverle per risolvere i problemi).

- Una slice di 256 o 512 viene utilizzata per vPC sulle piattaforme Nexus 9300 e 9500 rispettivamente. Una riallocazione elimina la possibilità di utilizzare vPC

- Per il reindirizzamento sulle piattaforme Nexus 9300 e 9500 viene utilizzata una slice di dimensione 512 o 256. Se si utilizza questo tipo di collegamento, non sarà più possibile utilizzare DHCPv4, DHCPv6 o BFD.

- Se sono abilitati gli aggiornamenti atomici e si è in possesso di oltre il 50% dell'utilizzo di una funzionalità TCAM, non è possibile rimuovere una linea da alcun ACL a causa dello spazio insufficiente.

- Per impostazione predefinita, i criteri QoS applicati a più interfacce non condividono l'etichetta, in quanto le statistiche sono abilitate per impostazione predefinita. Per condividere l'etichetta dello stesso criterio QoS applicato a più interfacce, è necessario configurare il criterio QoS con l'opzione no-stats, come mostrato nell'esempio:
(config-if)# service-policy type qos input my-policy no-stats

- Se possibile, utilizzare la versione di base delle funzionalità. Nelle versioni di base, lo switch utilizza metà dello spazio TCAM per quella funzione. In questo modo, una feature a larghezza doppia viene impostata come a larghezza singola.

Il costo è che la funzione non tiene traccia delle statistiche del policer violate, ma tiene traccia solo delle statistiche del policer conformi. Questa è in genere l'opzione migliore in quanto consente di risparmiare spazio TCAM.

- Gli utenti non possono ridurre la quantità predefinita di TCAM CoPP e di sistema in ingresso. Questi sono già al valore minimo e non possono essere ridotti.

- Tutte le funzionalità QoS sono a larghezza doppia.

- Le mappe dei criteri SVI non sono supportate.

Informazioni correlate

- Guida alla configurazione di Nexus 9000 TCAM Carving

- Aree TCAM Nexus 9000 ACL

- Supporto tecnico Cisco e download