Introduction

    Este documento descreve a condição completa da tabela MAC F2/F2e e os métodos para reduzi-la.

    O módulo F2 com limite MAC de 16k por Switch on Chip (SoC) relata a tabela MAC aleatória como sendo de mensagens de erro completas com 60% de utilização. Por que a placa de linha não é capaz de utilizar todo o espaço da tabela MAC de 16k disponível?

    %L2MCAST-SLOT2-2-L2MCAST_MAC_FULL_LC: Failed to insert entry in MAC table for FE 1 swidx 271 (0x10f) with err (mac table full). To avoid possible multicast traffic loss, disable OMF. Use the con figuration CLI: "no ip igmp snooping optimise-multicast-flood"

    Prerequisites

    Requirements

    A Cisco recomenda que você tenha conhecimento da arquitetura do Nexus 7000.

    Componentes Utilizados

    As informações neste documento são baseadas nestas versões de software e hardware:

    • Nexus 7000 com versão 6.2.10 e posterior.
    • Placa de linha F2e series.

    The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

    Informações de Apoio

    O módulo F2 tem 16k de espaço na tabela MAC por SoC do mecanismo de encaminhamento.

    Há 12 SoC em cada módulo e cada uma com 4 portas de serviços.

    module-1# show hardware internal forwarding f2 l2 table utilization instance all
    L2 Forwarding Resources
    -------------------------
      L2 entries: Module inst   total    used   mcast   ucast   lines   lines_full
    ------------------------------------------------------------------------------
                  1         0   16384    9647     265    9382     512            0
                  1         1   16384    7430       1    7429     512            0
                  1         2   16384    9654     264    9390     512            0
                  1         3   16384    7430       7    7423     512            0
                  1         4   16384    7564       8    7556     512            0
                  1         5   16384    7432       1    7431     512            0
                  1         6   16384    7418       0    7418     512            0
                  1         7   16384     558       0     558     512            0
                  1         8   16384     558       0     558     512            0
                  1         9   16384     558       0     558     512            0
                  1        10   16384     558       0     558     512            0
                  1        11   16384    7416       0    7416     512            0 

    A saída aqui destaca o uso da tabela de endereços MAC de hardware por SoC.

    Para entender por que você recebe a mensagem completa da tabela MAC, é necessário entender como a tabela MAC é dividida. Este diagrama ajuda com uma clareza visual.

    • A tabela MAC que é 16k para a placa de linha F2 é distribuída em páginas. Cada página pode conter 512 entradas. Então, você tem um total de 32 páginas. Você pode usar um hash bidirecional para colocar um novo MAC em uma das páginas.
    • Agora, vamos considerar um cenário em que a linha 4 é usada em cada página. Isso significa que 32 MACs exclusivos acabaram com uma saída de hash que o coloca na mesma linha de cada página.
    • Se um 33 rd MAC com a mesma saída de hash for gerado, você não poderá instalá-lo e provavelmente verá a mensagem de erro mostrada anteriormente.
    • A coluna cheia de linhas controla o número de linhas que chegaram a esse estado.

     A saída aqui também mostra as linhas por página e também se a condição completa das linhas foi atingida.

    Somente o endereço MAC que acaba tendo um determinado hash encontra essa condição, enquanto você não verá nenhum problema para outro endereço MAC.

    Geralmente, o endereço MAC multicast pode ver isso com mais frequência, pois não são tão aleatorizados quanto os MACs unicast. As placas de linha são geralmente testadas com testes de RFC padrão do setor para validar a eficiência de utilização. No entanto, há sempre a probabilidade de certas combinações MAC em ambientes específicos do cliente não serem muito bem otimizadas, o que leva a esse erro.

    Etapas de mitigação

    Essas etapas podem ajudar a reduzir o uso da tabela MAC.

    • Vlans da Prune
    • separação L3
    • Outra opção de projeto (fabricpath)
    • Módulo M2 ou F3 para crescimento futuro

    Opção 1. Prune Vlans

    Note: Não há SVI para a vlan 100 e 200. Esta é uma suposição importante que se tornará clara quando ler a opção 2.

    Nesta configuração simplificada, há dois hosts em diferentes SoCs.

    N7KA-VDC-1(config-vlan)# sh mac address-table  
         
         
           
           
           
     Note: MAC table entries displayed are getting read from software.
     Use the 'hardware-age' keyword to get information related to 'Age'

     Legend:
            * - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
            age - seconds since last seen,+ - primary entry using vPC Peer-Link,
            (T) - True, (F) - False ,  ~~~ - use 'hardware-age' keyword to retrieve age info
       VLAN     MAC Address      Type      age     Secure NTFY Ports/SWID.SSID.LID
    ---------+-----------------+--------+---------+------+----+------------------
    * 100      8478.ac0e.4742    dynamic     ~~~      F    F  Eth6/4
    * 200      8478.ac5b.2b42    dynamic     ~~~      F    F  Eth6/5
    N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 100
    VDC Id  Vlan Id  BD Id
    ------  -------  -------
    1        100      38    

    N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 200
    VDC Id  Vlan Id  BD Id
    ------  -------  -------
    1        200      39   
    N7KA-VDC-1(config-if-range)# sh hard mac address-table 6  
         
         
           
           
           
    FE | Valid| PI|  BD  |      MAC      |  Index| Stat| SW  | Modi| Age| Tmr|
       |      |   |      |               |       |  ic |     | fied|Byte| Sel|
    ---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
    0    1     1   38    8478.ac0e.4742  0x00053   0   0x081   1    138   1   
    0    1     0   39    8478.ac5b.2b42  0x00054   0   0x091   1    138   1   
     1    1     0   38    8478.ac0e.4742  0x00053   0   0x091   1    138   1   
     1    1     1   39    8478.ac5b.2b42  0x00054   0   0x081   1    138   1   

    Cada FE (mecanismo de encaminhamento = SoC) mostra 2 endereços MAC em uso.

    Agora, você pode remover as vlans e a configuração é como mostrado nesta imagem.

    Depois de remover as vlans, você tem menos uma entrada por FE (SoC). A remoção da vlan impediu uma sincronização entre o FE para o endereço MAC.

    N7KA-VDC-1(config-if-range)# sh hard mac address-table 6  
         
         
           
           
           
    FE | Valid| PI|  BD  |      MAC      |  Index| Stat| SW  | Modi| Age| Tmr|
       |      |   |      |               |       |  ic |     | fied|Byte| Sel|
    ---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
    0    1     1   38    8478.ac0e.4742  0x00053   0   0x081   1    138   1   
     1    1     1   39    8478.ac5b.2b42  0x00054   0   0x081   1    138   1

    Opção 2. Separação L3

    Aqui, você tem as vlans removidas, mas suponha que você tenha a Interface Virtual do Switch (SVI) configurada neste VDC para a vlan 100 e 200.

    A tabela MAC será semelhante a esta, onde o endereço MAC é sincronizado entre FEs mesmo que a vlan seja removida. Isso ocorre porque a Interface Virtual do Switch (SVI) está habilitada, o que exige que o FE saiba também sobre endereços MAC de outras vlans.

    N7KA-VDC-1(config-if-range)# sh hard mac address-table 6  
         
         
           
           
           
    FE | Valid| PI|  BD  |      MAC      |  Index| Stat| SW  | Modi| Age| Tmr|
       |      |   |      |               |       |  ic |     | fied|Byte| Sel|
    ---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
    0    1     1   38    8478.ac0e.4742  0x00053   0   0x081   1    138   1   
    0    1     0   39    8478.ac5b.2b42  0x00054   0   0x091   1    138   1   
     1    1     0   38    8478.ac0e.4742  0x00053   0   0x091   1    138   1   
     1    1     1   39    8478.ac5b.2b42  0x00054   0   0x081   1    138   1   

    Se você remover a VLAN 200 SVI, a tabela MAC não verá uma sincronização para a vlan 200 mac em FE0.

    N7KA-VDC-1(config-if-range)# sh hard mac address-table 6  
         
         
           
           
           
    FE | Valid| PI|  BD  |      MAC      |  Index| Stat| SW  | Modi| Age| Tmr|
       |      |   |      |               |       |  ic |     | fied|Byte| Sel|
    ---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
    0    1     1   38    8478.ac0e.4742  0x00053   0   0x081   1    138   1   
     1    1     0   38    8478.ac0e.4742  0x00053   0   0x091   1    138   1   
     1    1     1   39    8478.ac5b.2b42  0x00054   0   0x081   1    138   1   

    A conclusão da etapa não é excluir os SVIs, mas analisar se mover os SVIs para um VDC diferente criando um VDC de camada 3 separado é uma opção. Esta não é uma etapa de projeto fácil e exigiria planejamento detalhado.

    Opção 3. Arquitetura de design alternativo como Fabricpath

    Essas são alternativas mais complexas, que estão além do escopo deste documento para detalhar, mas podem fornecer eficiências no uso de MAC.

    Opção 4. Use placas de linha de alta capacidade como placa M2/F3

    A placa de linha M2 e F3 tem uma capacidade de tabela MAC muito maior.

    Folha de dados M2 ==> Tabela MAC (128k por SoC)

    Folha de dados F3 ==> Tabela MAC (64k por SoC)