Article Number: 000140418
Exemplo de entrada de registro:
May 20 19:12:20: %EX8PB:2 %MACAGT-2-HASH_COLLISION_LOG: Mac:00:02:e8:d6:58:20/Vlan:203 could not be added to L2 CAM on portpipe 2 linecard 2 due to hash collision. Total number of hash collisions: 30211
May 20 19:12:20: %EX8PB:2 %MACAGT-2-HASH_COLLISION_LOG: Mac:00:02:e8:d6:58:20/Vlan:203 could not be added to L2 CAM on portpipe 3 linecard 2 due to hash collision. Total number of hash collisions: 31979
Como funciona:
Na tabela Switch CAM, existe um número específico de entradas alocadas para "tabela de host", que mantém uma parte para ARP em redes /32 e uma quantidade específica para todas as outras entradas.
Por exemplo, se houver valores de índice 1024 que apontam para arrays de 8 locais de memória, então, cada valor de índice poderá conter oito valores. Todos os 8 em um array podem ser ARPs, mas, em todos os locais, as entradas ARP no total não podem exceder a parte dedicada a essa função. Diferentes switches possuem diferentes valores.
Ao adicionar uma entrada de ARP para um endereço de IP para o CAM do switch, o chip do switch calcula um valor de índice (0-1023) usando o endereço IP e a entrada ARP é salva no local indicado por esse algoritmo de hash.
Algumas vezes, o algoritmo de hash tentará armazenar o índice em um local em que todos os locais de memória já estão sendo utilizados e uma colisão hash ocorre.
Quando um endereço de IP encontra um conflito de hash, sua entrada ARP não é adicionada para o CAM. Em vez disso, o CPU terá que o carregar em sua tabela de software. Quando o tráfego daquele IP precisa ser encaminhado, o switch não pode agir no hardware. Então, esse tráfego é encaminhado ao CPU e encaminhado via software. Isso introduz uma carga adicional no CPU. Isso tende a introduzir latência para o caminho especificado. Algumas vezes, a quantidade de encaminhamentos via software pode exceder a capacidade do CPU de os processar, o que acaba causando a perda de pacotes.
Soluções alternativas para falhas de hash:
Faça o upgrade para um software que permita HASH DUPLO. Plataformas específicas lançadas após a 9.3 podem executar hash duplo. Suporte de hash duplo para tabelas L2 e L3 está disponível. Esse recurso vem ativado por padrão em todas as plataformas executando 9.3. O switch tenta realizar o hash novamente e reordenar as tabelas para acomodar as novas entradas sempre que uma colisão de hash ocorre.
Adicionar uma camada de roteamento. Falhas de hash no switch de núcleo. A melhor maneira de superar essa limitação é utilizar um projeto de Top-of-Rack (TOR) e ativar o roteamento entre os switches de núcleo e TORs. Dessa forma, podemos reduzir o tamanho da tabela de ARP no núcleo. Adicionar esta camada de roteamento entre os hosts individuais e o núcleo irá poupar o núcleo de ter que aprender todas as entradas ARP de hosts individuais.
Reduzir o tempo de espera do ARP. O padrão é de 4 horas. Reduzir o período de tempo em que o ARP será mantido, permite que entradas de ARP mais recentes sejam introduzidas. Isso, obviamente, também irá forçar a todas as entradas a circularem mais rápido e irá aumentar o tráfego de ARP nas redes conectadas.
Endereços de IP distribuídos na rede L3 conectada. Um mapeamento de todos os endereços de IP possíveis nas sub-redes importantes para seus valores de hash correspondentes pode ser criado, mas é muito complicado de executar. Os IPs podem ser redistribuídos para evitar falhas de hash. Esta é a solução de curto prazo menos eficiente disponível.
C7008/C300 Aggregation Core chassis Switch, PowerSwitch S4810P, Force10 S60-44T
21 Feb 2021
3
Solution