Introduction
Este documento explica como o TCAM é inesperadamente superutilizado, dependendo dos conjuntos de recursos habilitados em um switch Nexus 7000 Series.
Descrição do problema
Com as atualizações atômicas habilitadas, no caso de mais de um recurso como o RACL, o NetFlow é aplicado em diferentes interfaces, ele pode causar erro de uso excessivo do TCAM, embora o limite de 50% não tenha sido alcançado.
Exemplo: Não é possível aplicar vários recursos nas subinterfaces subsequentes, apesar da utilização ser 29,57, enquanto o limite superior é 50% (como as atualizações atômicas estão ativadas) e o erro abaixo é descartado.
ERRO: O módulo 1 retornou o status: O TCAM será usado em excesso, ative o encadeamento bancário e/ou desative a atualização atômica. Se o encadeamento bancário estiver ativado em outros módulos e esta for uma nova inserção de placa de linha, ative o encadeamento bancário antes de recarregar este módulo.
Além disso, após o recarregamento, todas as interfaces perdem a configuração e são atribuídas ao VDC 0 por esse motivo.
Background
As atualizações atômicas ativadas por padrão no Nexus 7000 permitem que apenas 50% de todo o TCAM seja utilizado. Os outros 50% são reservados para acomodar alterações de ACL de modo a fornecer atualizações de ACLs sem interrupções. Mais informações sobre isso estão disponíveis através dos links fornecidos na seção: Leitura Recomendada.
Prerequisites
Recomenda-se conhecer os seguintes tópicos:
Atualizações atômicas
TCAM no N7000
Componentes Utilizados
As informações neste documento são baseadas no teste de laboratório realizado no chassi N7718 no módulo: N77-F312CK-26 executando na versão 8.3(2)
Todos os dispositivos usados neste documento iniciaram com uma configuração padrão e os recursos exibidos são RACL, NetFlow.
Observação
RACL de saída configurado nas principais e subinterfaces, enquanto o Netflow está ativado somente nas interfaces principais
Configuração inicial:
Interface Ethernet 11/2: Layer-3; RACL
Interface Ethernet 11/2.300-302: Layer-3; RACL
A utilização de TCAM com apenas RACL aplicada é:
N7718(config-if)# show system internal access-list resource utilization module 11 | in "Tcam 1, Bank 0" across all instances:
Tcam 1, Bank 0 1211 2885 29.57
Tcam 1, Bank 0 1211 2885 29.57
Tcam 1, Bank 0 1211 2885 29.57
Note: A utilização do espaço TCAM para o RACL de saída neste documento é presumida como 29,57%
Uma vez que o NetFlow é aplicado somente na interface principal, a utilização da interface dobra, embora a configuração do NetFlow nessa situação raramente ocupe 1% de espaço.
Interface Ethernet 11/2: Layer-3; RACL; NetFlow
Interface Ethernet 11/2.300-302: Layer-3; RACL
Aqui, a interface principal tem o NetFlow configurado, enquanto que a subinterface não tem nenhuma atualização do NetFlow( Atomic to be disabled to watch)
N7718(config-if)# show system internal access-list resource utilization module 11 | in "Tcam 1, Bank 0"
Tcam 1, Bank 0 2394 1702 58.45
Tcam 1, Bank 0 2394 1702 58.45
Tcam 1, Bank 0 2394 1702 58.45
Note: Caso as atualizações atômicas ainda estivessem habilitadas, esse comportamento duplicado não seria possível, pois o limite com atualizações atômicas é de apenas 50% e o seguinte erro seria visto:
ERRO: O módulo 1 retornou o status: O TCAM será usado em excesso, ative o encadeamento bancário e/ou desative a atualização atômica. Se o encadeamento bancário estiver ativado em outros módulos e esta for uma nova inserção de placa de linha, ative o encadeamento bancário antes de recarregar este módulo.
Explicação:
Neste caso, estão presentes dois conjuntos de políticas diferentes. Um destino tem RACL sozinho e outro destino tem RACL +NF. Portanto, dois conjuntos de entradas TCAM estão sendo alocados para os mesmos recursos, fazendo com que o comportamento duplicado que vemos como o consumo real seja apenas o comportamento 29,57.
O dispositivo consegue isso gerando dois rótulos separados para ambas as interfaces, conforme observado abaixo:
module-11# show system internal access-list interface e11/2 out statistics
INSTANCE 0x0
---------------
Tcam 1 resource usage:
----------------------
Label_b = 0x801 >>> LABEL is 0x801
module-11# show system internal access-list interface e11/2.300 out statistics
INSTANCE 0x0
---------------
Tcam 1 resource usage:
----------------------
Label_b = 0x802 >>> NEW LABEL 0x802 IS GENERATED
Quando o RACL e o Netflow são configurados na interface principal e na subinterface
Já apresente a configuração do caso 1:
Interface Ethernet 11/2: Layer-3; RACL; NetFlow
Interface Ethernet 11/2.300-302: Layer-3; RACL
Agora, aplique o NetFlow no restante das subinterfaces também:
Interface Ethernet 11/2: Layer-3; RACL; NetFlow
Interface Ethernet 11/2.300-302: Layer-3; RACL; NetFlow
Como todos os destinos agora têm RACL + Netflow configurado, o mesmo rótulo está sendo compartilhado por destino (um único conjunto de entradas TCAM sendo referenciado por todas as interfaces).
N7718(config-if)# show system internal access-list resource utilization module 11 | in "Tcam 1, Bank 0"
Tcam 1, Bank 0 1211 2885 29.57
Tcam 1, Bank 0 1211 2885 29.57
Tcam 1, Bank 0 1211 2885 29.57
module-11# show system internal access-list interface ethernet11/2 out statistics |in Label_b p 5 n 4
INSTANCE 0x0
Tcam 1 resource usage:
----------------------
Label_b = 0x802 >>> LABEL is 0x802
module-11# show system internal access-list interface ethernet11/2.300 out statistics |in Label_b p 5 n 4
INSTANCE 0x0
Tcam 1 resource usage:
----------------------
Label_b = 0x802 >>> SAME LABEL IS MAINTAINED
Note: Esse comportamento é estendido a interfaces físicas, subinterfaces também. Somente quando todos os destinos em questão tiverem o mesmo conjunto de configurações, a utilização do TCAM não será duplicada.
Observe que somente após a aplicação do Netflow em todas as interfaces que já têm RACL, a TCAM será reduzida para 29,57% original
1. Aplique RACL na interface "1": 29.57%
2. Aplicar RACL às interfaces subsequentes: 29.57%
3. Aplique a NF após o aplicativo RACL na interface "1": 58.45%
4. Aplicar NF nas interfaces subsequentes: 58.45%
5. Aplicar NF na última interface: 29.57%
Resolução
1. Desative as atualizações atômicas.
<OR>
2. Diminua o tamanho da ACL para manter o limite em <25%.
Summary
Com atualizações atômicas:
Uma vez que o Netflow é aplicado na primeira interface, a criação de uma instância TCAM separada é tentada porque a primeira interface agora tem a ACL, a NF configurada, mas a segunda interface tem apenas a RACL configurada.
No entanto, devido à ativação de atualizações atômicas, falha na criação de uma instância separada, pois isso aumentará a utilização para mais de 50. Consequentemente, o erro de TCAM sobre-usado é gerado.
Sem atualizações atômicas:
1. Ao aplicar ACL em todas as interfaces: Permanece em 29, já que não há outras características.
2. Aplique o NetFlow à primeira interface: O switch assume que essa é uma configuração separada de recursos/combinação de recursos (mantém um rótulo interno separado) e, portanto, cria uma instância separada no mesmo banco.
3. Quando o NetFlow é aplicado a todas as outras interfaces para as quais a ACL está configurada, a configuração/combinação de recursos é a mesma (o rótulo agora é a mesma para ambas as interfaces) e, portanto, ocorre o reembaralhamento
4. O TCAM agora é compartilhado para ambas as interfaces e a utilização cai para 29,57%.
Esse é um método de otimização quando combinações de recursos são usadas em interfaces diferentes.
Defeitos relacionados
CSCvs50014
A ACL e o Netflow na subinterface ocupam entradas TCAM duplas
Artigos relacionados
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus7000/sw/security/config/cisco_nexus7000_security_config_guide_8x/configuring_ip_acls.html
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/6_x/nx-os/security/configuration/guide/b_Cisco_Nexus_7000_NX-OS_Security_Configuration_Guide__Release_6-x/b_Cisco_Nexus_7000_NX-OS_Security_Configuration_Guide__Release_6-x_chapter_01110.html#con_1458580