Introduzione
Questo documento descrive le soluzioni ai problemi relativi alle risorse TCAM.
Errori comuni di TCAM
L'utilizzo di %ACLQOS-SLOT3-4-ACLQOS_OVER_THRESHOLD Tcam 0 Bank 0 ha raggiunto la soglia
%ACLMGR-3-ACLMGR_VERIFY_FAIL Verifica non riuscita: client 8200016E, Non sono disponibili sufficienti voci gratuite in banca TCAM
"ERRORE: Inserimento della voce TCAM non riuscito a causa dei vincoli Spanslogic TCAM" — solo sui moduli XL
Per ulteriori vincoli Spanslogic TCAM, fare riferimento a .
Utilizzo delle risorse ACL hardware
Comando:
show hardware access-list resource usage module <mod>
SITE1-AGG1# show hardware access-list resource utilization mod 3
INSTANCE 0x0
-------------
ACL Hardware Resource Utilization (Mod 3)
--------------------------------------------
Used Free Percent
Utilization
-----------------------------------------------------
Tcam 0, Bank 0 9 16375 0.05
Tcam 0, Bank 1 2 16382 0.01
Tcam 1, Bank 0 7 16377 0.04
Tcam 1, Bank 1 246 16138 1.50
LOU 3 101 2.88
Both LOU Operands 2
Single LOU Operands 1
LOU L4 src port: 0
LOU L4 dst port: 1
LOU L3 packet len: 0
LOU IP tos: 0
LOU IP dscp: 0
LOU ip precedence: 0
LOU ip TTL: 0
TCP Flags 0 16 0.00
Protocol CAM 4 3 57.14
Mac Etype/Proto CAM 9 5 64.28
Non L4op labels, Tcam 0 2 6141 0.03
Non L4op labels, Tcam 1 3 6140 0.04
L4 op labels, Tcam 0 0 2047 0.00
L4 op labels, Tcam 1 1 2046 0.04
Ingress Dest info table 131072 510 0.39
Egress Dest info table 65536 511 0.19
SITE1-AGG1#
Opzioni
Di seguito sono elencate le poche opzioni disponibili quando l'utilizzo di TCAM è elevato.
- Aggiornamento atomico
Comando: nessun aggiornamento atomico dell'elenco accessi hardware
- Disabilita le statistiche per voce in tutti gli ACL
Comando: nessuna statistica per ingresso
- Gestione dei frammenti
Comando: frammenti deny-all/allow-all
- Soglia di espansione ACE
Comando: soglia risorse lou elenco accessi hardware
- Pool di risorse (nessun impatto sul servizio poiché le voci esistenti non vengono spostate)
Comando: modalità pool di risorse elenco accessi hardware <x>
Aggiornamento atomico
Per impostazione predefinita, N7K esegue un aggiornamento atomic Access Control List (ACL) a un modulo in caso di modifica dell'ACL. Un aggiornamento atomico non interrompe il traffico a cui si applica l'ACL aggiornato. Tuttavia, per eseguire un aggiornamento atomico, è necessario che un modulo di I/O che riceve un aggiornamento dell'ACL disponga di risorse sufficienti per memorizzare ciascuna voce ACL aggiornata, oltre a tutte le voci preesistenti nell'ACL interessato. Al termine dell'aggiornamento, le risorse aggiuntive utilizzate per l'aggiornamento vengono liberate. Se il modulo di I/O non dispone delle risorse necessarie, il dispositivo genera un messaggio di errore e l'aggiornamento ACL al modulo di I/O non riesce.
Se un modulo di I/O non dispone delle risorse necessarie per un aggiornamento atomico, è possibile disattivare gli aggiornamenti atomici utilizzando
nessun aggiornamento atomico dell'elenco accessi hardware
Tuttavia, durante il breve tempo necessario al dispositivo per rimuovere l'ACL preesistente e implementare l'ACL aggiornato, il traffico a cui l'ACL si applica viene interrotto per impostazione predefinita. Per autorizzare tutto il traffico a cui si applica un ACL durante la ricezione di un aggiornamento non atomico. Usare il comando hardware access-list update default-result allow.
Nota: Se sono possibili sia aggiornamenti atomici che non atomici (ad esempio se il TCAM ha abbastanza spazio libero), è preferibile un aggiornamento atomico. Se lo spazio disponibile non è sufficiente per eseguire l'aggiornamento atomico, viene eseguito il tentativo di eseguire l'aggiornamento non atomico. Pertanto, l'implementazione corrente viene sempre tentata prima atomic, anche quando l'aggiornamento atomic è disabilitato. Tuttavia, attualmente in caso di errore dovuto a vincoli spanslogic, non è passato a non atomico e CSCud36802 è archiviato per risolvere questo problema (da correggere in Freetown a partire da oggi).
Nota: Quando si tenta di rimuovere l'ACE mentre l'utilizzo di TCAM è elevato, poiché l'aggiornamento atomico viene sempre provato per primo come indicato in precedenza, i vincoli spanslogic potrebbero ancora essere raggiunti e CSCua24513 è stato archiviato per risolvere questo problema (risolto nella release 5.2.7).
Statistiche per voce
Per impostazione predefinita, N7K tenta di unire le funzioni durante la programmazione di TCAM, che aiuta a salvare la risorsa TCAM. Quando è configurata la funzione Statistiche per voce, le voci non vengono unite per mantenere le statistiche delle voci di controllo di accesso (ACE, Access Control Entries), nel qual caso potrebbero essere necessarie più risorse.
Questo comando non ha alcun impatto sulle prestazioni in quanto l'elaborazione degli ACL è sempre disponibile nell'hardware.
Per visualizzare lo stato, sono disponibili due opzioni:
show ip access-list <acl>
Nota: Visualizza i contatori solo per le voci hardware trovate programmate con il tipo di criterio PACL/RACL (ad esempio, ACL applicato alle interfacce)
show hardware internal access-list input entry detail module <x>
Nota: L'ACL utilizzato nei criteri copp viene usato per la classificazione dei pacchetti. La decisione di autorizzare/negare/limitare la velocità del pacchetto viene presa dalla configurazione della policy/class-map qos del control plane. Le azioni di autorizzazione/negazione specificate nell'ACL non sono valide se utilizzate nei criteri di copia.
se si abilitano le statistiche sull'acl copp e anche se si usa lo stesso acl nella mappa delle classi copp, il comando show ip access <acl> non restituirà questo risultato per il motivo sopra indicato. Essenzialmente, un acl utilizzato all'interno di un criterio qos copp è programmato come tipo di criterio - QoS. Se si desidera visualizzare i pacchetti che raggiungono il criterio qos copp control-plane, è possibile utilizzare questo comando:
show system internal access-list input entry detail module <x> | b CoPP
Gestione dei frammenti
Il modello di programmazione predefinito crea una voce parallela diversa dal primo frammento nell'hardware per ciascuna voce ACE. Questa voce corrisponde agli stessi indirizzi IP e protocollo di origine/destinazione dell'ACE originale, ma senza informazioni sulla porta L4 e con frammenti non iniziali corrispondenti.
Nota: Voci di frammentazione per ACE L3 non programmate su motori di inoltro non XL.
La gestione predefinita dei frammenti consente di utilizzare 2X CL TCAM. Manopola di configurazione per consentire o negare TUTTI i frammenti non iniziali:
frammenti {allow-all | nega-tutto}
Ottimizza l'utilizzo di CL TCAM: utilizza una singola voce CL TCAM per l'intero ACL (rispetto a una voce per L4 ACE)
Soglia di espansione ACE
ACE che utilizzano operatori L4 - range, gt, lt, neq. Esistono due modi per gestire gli operatori L4:
- Allocazione di L4op (risorsa hardware) e registro LOU dei programmi (altra risorsa hardware)
- Espandere l'ACE in più voci eq (cioè voci CL TCAM)
Il comando globale hardware access-list lou resource threshold controlla quando si verifica l'opzione 1 rispetto all'opzione 2 per un ACE. La soglia di espansione controlla quando si verifica l'espansione, la soglia predefinita è 5. Se una voce ACE può essere espansa in voci <=5 CL TCAM, non viene allocata alcuna voce L4op.
Pro/contro:
- L'espansione comporta un maggiore consumo di TCAM
- Utilizzo L4op/LOU limitato da L4ops per etichetta (10) e registri LOU (208)
Pool di risorse
PSEUDONIMO Bank Chain. Spiegati in dettaglio in
Informazioni correlate
Cisco BUG ID CSCtd24377 AD-XL: Vincoli dell'algoritmo Spanslogic
Cisco BUG ID CSCuc98853 ACLQOS non supporta la funzionalità deny-all/allow-all di frammenti per la route-map per XL
Diapositive di classificazione di Tim Stevens