Introduction
Este documento descreve as soluções alternativas de problemas de recursos TCAM.
Erros comuns de TCAM
%ACLQOS-SLOT3-4-ACLQOS_OVER_THRESHOLD Tcam 0 O uso do Banco 0 atingiu seu limite
%ACLMGR-3-ACLMGR_VERIFY_FAIL Falha na verificação: cliente 8200016E, entradas livres suficientes não estão disponíveis no banco TCAM
“ERRO: Falha na inserção da entrada TCAM devido a restrições de TCAM Spanslogic" — somente em módulos XL
Para obter mais restrições de TCAM spanslogic, consulte .
Utilização de recursos da ACL de 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#
Opções
As opções listadas abaixo são as poucas quando o uso de TCAM é alto.
- Atualização atômica
Comando: no hardware access-list update atomic
- Desabilitar estatísticas por entrada em todas as ACLs
Comando: nenhuma estatística por entrada
- Manipulação de fragmentos
Comando: fragmentos deny-all/permit-all
- limiar de expansão ACE
Comando: limite de recurso de lou da lista de acesso de hardware
- Pooling de recursos (não há impacto no serviço, pois as entradas existentes não são movidas)
Comando: hardware access-list resource pooling mod <x>
Atualização Atômica
Por padrão, o N7K executa uma atualização da ACL (Access Control List, lista de controle de acesso) atômica para um módulo quando há alteração na ACL. Uma atualização atômica não interrompe o tráfego ao qual a ACL atualizada se aplica. No entanto, uma atualização atômica exige que um módulo de E/S que recebe uma atualização de ACL tenha recursos disponíveis suficientes para armazenar cada entrada de ACL atualizada, além de todas as entradas preexistentes na ACL afetada. Após a atualização, os recursos adicionais usados para a atualização serão liberados. Se o módulo de E/S não tiver os recursos necessários, o dispositivo gerará uma mensagem de erro e a atualização da ACL para o módulo de E/S falhará.
Se um módulo de E/S não tiver os recursos necessários para uma atualização atômica, você poderá desativar as atualizações atômicas usando
no hardware access-list update atomic
No entanto, durante o breve tempo necessário para que o dispositivo remova a ACL preexistente e implemente a ACL atualizada, o tráfego ao qual a ACL se aplica é descartado por padrão. Se você quiser permitir todo o tráfego ao qual uma ACL se aplica, enquanto recebe uma atualização não atômica. Use o comando hardware access-list update default-result permit.
Note: Se as atualizações atômicas e não atômicas forem possíveis (digamos que a TCAM tenha espaço livre suficiente), o atômico é preferível. Se não houver espaço livre suficiente para fazer a atualização atômica, tentará-se o não-atômico. Portanto, a implementação atual é sempre tentar primeiro, mesmo quando a atualização atômica é desativada. No entanto, atualmente em caso de falha devido a restrições de espanslogic, ela não é comutada para não atômica, e CSCud36802 é arquivada para tratar disso (a ser corrigido em Freetown a partir de hoje).
Note: Ao tentar remover a ECA enquanto o uso da TCAM é alto, uma vez que a atualização atômica é sempre tentada primeiro, como mencionado acima, os contêineres spanslogic ainda podem ser atingidos e o CSCua24513 foi arquivado para resolver esse problema (corrigido em 5.2.7).
Estatísticas por entrada
Por padrão, o N7K tentaria mesclar recursos ao programar o TCAM, o que ajuda a salvar o recurso TCAM. Quando as estatísticas por entrada são configuradas, as entradas não são mescladas para manter as estatísticas de entrada (ACE) por acesso, caso em que podem ser necessários mais recursos.
Esse comando não tem nenhum impacto no desempenho, pois o processamento da ACL está sempre no hardware.
Há duas opções para exibir as estatísticas:
show ip access-list <acl>
Note: Exibe contadores somente para as entradas de hardware que são programadas do tipo de política PACL/RACL (por exemplo, acl aplicada em interfaces)
show hardware internal access-list input detail module <x>
Note: A ACL usada dentro da política de cópia é usada para classificação de pacotes. A decisão de permitir/negar/limitar a taxa do pacote é feita pela configuração do plano de controle qos policy/class-map. As ações de permissão/negação especificadas na acl não são efetivas quando usadas dentro da política de cópia.
Se você habilitar estatísticas na acl copp e mesmo se você usar a mesma acl inside copp class-map, show ip access <acl> não refletiria isso devido ao motivo acima. Essencialmente, uma acl usada dentro de uma política de qos copp é programada como tipo de política - QoS. Se você quiser ver os pacotes atingindo a política de copos control-plane qos, este comando pode ser usado:
show system internal access-list input detail module <x> | b CoPP
Manuseio de Fragmentos
O modelo de programação padrão cria uma entrada de fragmento não-primeiro paralela no hardware para cada ACE. Essa entrada corresponde aos mesmos endereços IP origem/destino e protocolo da ACE original, mas sem informações de porta L4 e correspondendo em fragmentos não iniciais.
Note: Entradas de fragmento para ACEs L3 não programadas em mecanismos de encaminhamento não-XL.
O manuseio de fragmentos padrão resulta em 2X CL de utilização de TCAM. Botão de configuração fornecido para permitir ou negar TODOS os fragmentos não iniciais:
fragmentos {permit-all | deny-all}
Otimiza a utilização de TCAM de CL - consome uma única entrada de CL TCAM para toda a ACL (em comparação a uma entrada por ACE L4)
Limite de expansão de ACE
ACEs usando operadores L4 - intervalo, gt, lt, neq. Há duas maneiras de o software lidar com operadores L4:
- Alocar L4op (recurso de hardware) e registro de LOU de programa (outro recurso de hardware)
- Expanda a ACE em várias entradas de eq (ou seja, entradas CL TCAM)
O comando global hardware access-list lou resource threshold controla quando a opção 1 vs opção 2 ocorre para uma ACE. O limite de expansão controla quando a expansão ocorre, o limite padrão é 5. Se uma ACE pode ser expandida para <=5 entradas CL TCAM, nenhuma L4op alocada.
Prós/contras:
- A expansão resulta em mais consumo de entrada de TCAM
- Uso de L4op/LOU limitado por L4ops por rótulo (10) e registros de LOU (208)
Pool de recursos
K.A. Cadeia Bancária. Explicado em detalhes em
Informações Relacionadas
ID do BUG da Cisco CSCtd24377 AD-XL: Restrições do algoritmo de espanslogic
O Cisco BUG ID CSCuc98853 ACLQOS não está honrando o fragmento deny-all/permit-all para o mapa de rota para XL
Slides de classificação de Tim Stevens