Este documento descreve as ferramentas incluídas nativamente na ACI que podem ser usadas para depurar problemas de encaminhamento.
O material deste documento foi extraído de Troubleshooting Cisco Application Centric Infrastructure, Second Edition livro, especificamente oEncaminhamento dentro da estrutura - Ferramentascapítulo.
Além disso, explicações mais detalhadas sobre o ELAM e o Ftriage podem ser encontradas na biblioteca CiscoLive On-Demand na sessão BRKDCN-3900b.
Para solucionar um problema de encaminhamento de uma perspectiva da ACI, compreenda:
A ACI inclui várias ferramentas que permitem que o usuário obtenha insights detalhados sobre o que está acontecendo em um fluxo específico. As várias seções a seguir demonstram essas ferramentas em detalhes, de modo que apenas uma introdução de alto nível é fornecida aqui.
O SPAN e o ERSPAN são ferramentas que permitem que todo ou parte do tráfego recebido em um local específico seja replicado em outro local. Espera-se que o dispositivo final para o qual o tráfego replicado é enviado esteja executando algum tipo de aplicativo analisador/sniffer de pacotes. O SPAN tradicional envolve a replicação do tráfego que está sendo recebido em uma porta e transmitido por outra porta. A ACI oferece suporte a essa ação, além do ERSPAN.
O ERSPAN replica o tráfego de uma porta local; o tráfego replicado é encapsulado em GRE e enviado a um destino remoto. Na ACI, esse destino de ERSPAN deve ser aprendido apenas como um endpoint de Camada 3 e pode ser qualquer EPG em qualquer VRF.
É uma boa ideia ter sempre os destinos de SPAN conectados à estrutura para minimizar o tempo de preparação durante a solução de problemas e permitir a rápida configuração e captura da sessão de ERSPAN.
O ELAM (Embedded Logic Analyzer Module) é uma ferramenta que permite ao usuário definir condições no hardware e capturar o primeiro pacote ou quadro que corresponda às condições definidas. Uma captura bem-sucedida faz com que o status do ELAM seja mostrado como "acionado". Uma vez disparado, o ELAM é desativado e um dump pode ser coletado para analisar o grande número de decisões de encaminhamento que o ASIC do switch está tomando com esse pacote/quadro. O ELAM é implementado no nível ASIC e não afeta a CPU ou outros recursos no switch.
Os exemplos de encaminhamento neste manual usam o ELAM como um meio de verificar o que está acontecendo com o fluxo. Os exemplos mostram a versão do CLI leaf e o aplicativo ELAM Assistant.
Este guia não aborda o uso do ELAM em switches leaf de primeira geração (switches sem sufixo EX, FX ou FX2).
Antes de usar a ferramenta, é importante entender a estrutura da sintaxe de comando.
Exemplo na CLI do leaf:
vsh_lc [This command enters the line card shell where ELAMs are run]
debug platform internal <asic> elam asic 0 [refer to the ASICs table]
Defina Condições para acionar:
trigger reset [ensures no existing triggers are running]
trigger init in-select <number> out-select <number> [determines what information about a packet is displayed and which conditions can be set]
set outer/inner [sets conditions]
start [starts the trigger]
status [checks if a packet is captured]
Gerar o despejo contendo a análise do pacote
ereport [display detailed forwarding decision for the packet]
Continue a inserir o comando status para exibir o estado do disparador. Quando um pacote que corresponde às condições definidas é detectado no ASIC, a saída do status mostra disparado. Depois que o ELAM for acionado, os detalhes das decisões de encaminhamento do switch podem ser mostrados com 'report'. Antes da ACI versão 4.2, o relatório deve ser usado.
Na sintaxe ELAM, observe que o ASIC deve ser especificado. Como o ASIC depende do modelo do switch, consulte esta tabela para determinar qual ASIC deve ser especificado:
| Família de placas de switch/linha |
Asic para Elam |
| Switches/LCs -EX |
TAH |
| -Switches FX(P)/LCs |
ROC |
| Switches/LCs -FX2 |
ROC |
| Switches C (9364C,9332C) |
ROC |
| Switches -GX |
APP |
| Switches -GX2 |
CHO |
| Switches -FX3 |
ROC |
O outro componente do ELAM que deve ser compreendido ao executar a partir do CLI é o in-select. O in-select define quais cabeçalhos o pacote/quadro deve ter e em que coincidir.
Por exemplo, um pacote proveniente de uma porta de downlink que não seja encapsulada em VXLAN teria apenas cabeçalhos externos de Camada 2, Camada 3 e Camada 4.
Um pacote proveniente de uma porta do painel frontal (downlink) que é encapsulada por VXLAN (como o Cisco ACI Virtual Edge no modo VXLAN) ou proveniente de uma coluna de upstream teria encapsulamento de VXLAN. Isso significa que ela teria potencialmente cabeçalhos externos e internos das Camadas 2, 3 e 4.
Todas as opções de acionamento são:
leaf1# vsh_lc
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select ?
10 Outerl4-innerl4-ieth
13 Outer(l2|l3|l4)-inner(l2|l3|l4)-noieth
14 Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth
15 Outer(l2|l3|l4)-inner(l2|l3|l4)-ieth
6 Outerl2-outerl3-outerl4
7 Innerl2-innerl3-innerl4
8 Outerl2-innerl2-ieth
9 Outerl3-innerl3
Se in-select 6 estiver selecionado, a única opção será definir condições e exibir cabeçalhos dos cabeçalhos das Camadas 2, 3 ou 4 externas. Se in-select 14 for selecionado, a única opção será definir condições para e ver os detalhes dos cabeçalhos externos e internos das Camadas 2, 3 e 4.
Observação sobre práticas recomendadas:
O comando out-select permite controlar quais resultados de pesquisa são exibidos no relatório ELAM. Para fins mais práticos, out-select 0 pode ser usado, pois contém a maioria das informações, incluindo o vetor de queda, que informa se o resultado da pesquisa é descartar o pacote/quadro.
Observe que quando o relatório em vez do relatório ou o detalhe do relatório é usado para obter resultados do ELAM, o vetor de queda aparece apenas na seleção de saída 1. No entanto, sempre é possível executar o relatório ou o detalhe do relatório com seleção de saída 0.
O ELAM suporta uma grande quantidade de condições das Camadas 2, 3 e 4 para procurar em um pacote. Especificar inner vs. outer determina se a condição pode ser verificada no cabeçalho interno (pacote encapsulado VXLAN) ou no cabeçalho externo.
Exemplo ARP:
set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2
Exemplo de endereço MAC:
set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa
Exemplo de endereço IP no cabeçalho interno:
set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
Verifique se o ELAM foi acionado com o status:
module-1(DBG-elam-insel6)# status
ELAM STATUS
===========
Asic 0 Slice 0 Status Armed
Asic 0 Slice 1 Status Triggered
relatório pode ser usado para exibir o resultado do ELAM em um formato fácil de entender. Observe que o relatório do ELAM é salvo na pasta /var/log/dme/log/ no switch. Há dois arquivos para o ELAM sob a pasta:
Este exemplo capturaria um tráfego encapsulado não-VXLAN (correspondente no cabeçalho externo) vindo de uma porta de downlink em um switch -EX:
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select 6 out-select 0
module-1(DBG-elam-insel6)# set outer ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
module-1(DBG-elam-insel6)# start
module-1(DBG-elam-insel6)# status
module-1(DBG-elam-insel6)# ereport
Os exemplos de solução de problemas neste manual também mostram o uso do Assistente ELAM.
Anteriormente, era um aplicativo que pode ser baixado pelo Cisco DC App Center (https://dcappcenter.cisco.com). mas a partir da versão 6.1(2)+ do ACI, o ELAM Assistant é integrado diretamente ao APIC e acessado por meio da guia Operações na interface do usuário do APIC.

Para o Assistente do ELAM incorporado, somente usuários do APIC com privilégios de leitura/gravação podem usar o assistente do Elam, e a opção de menu não fica visível para usuários sem privilégios de leitura/gravação.
Essa ferramenta automatiza a implantação e a interpretação de ELAMs por meio da GUI no APIC.
Este exemplo mostra a implantação de um ELAM que corresponde a um IP de origem e de destino específico na porta de downlink do nó 101:
Para começar a usá-lo, é necessário clicar em Capture (Perform ELAM) no painel do lado esquerdo e, em seguida, na tela principal, clicar em Add node para começar a adicionar nós onde o ELAM precisa ser configurado. Neste exemplo, node-101 é adicionado:

Depois que os nós de interesse forem adicionados, será necessário configurar a Direção (downlink/downlink VXLAN/uplink).
Também é possível especificar se alguma interface específica precisa ser observada, o padrão é any.
Finalmente, e uma série de parâmetros pode ser configurada (semelhante à versão CLI):


Finalmente, clique em Set ELAM(s) para armar os ELAMs nos nós especificados.
Para confirmar se o ELAM foi acionado, o botão Check Trigger pode ser clicado e, se o ELAM for acionado em um nó, o Status será alterado para Report Ready ao lado do nome do nó:

Este botão Report Ready exibe em um formato bonito o relatório ELAM abaixo:

A saída é exibida de três formas: Express, Detail e Raw.
O ELAM Assistant também permite o fácil uso de parâmetros de correspondência mais complexos, como a interface de origem ou valores de VXLAN.
O comando ping é um utilitário de rede padrão usado no Linux para testar a alcançabilidade de um host em uma rede Internet Protocol (IP). Envia pacotes ICMP de Solicitação de Eco para um destino especificado (um endereço IP ou nome de domínio) e ouve uma Resposta de Eco.
A principal função desse comando é executar:
· Teste de conectividade: Verifica se um dispositivo remoto está ativo e acessível.
· Medição de latência: Calcula o tempo de ida e volta (RTT) para que os pacotes trafeguem até o destino e voltem, medido em milissegundos (ms).
· Detecção de perda de pacotes: Informa a porcentagem de pacotes que falharam ao retornar, o que ajuda a identificar problemas de congestionamento ou estabilidade da rede.
Esse utilitário pode ser usado quando problemas de acessibilidade são identificados no APIC.
Confirme a acessibilidade de um servidor externo SNMP (exemplo 10.31.125.144) a partir do endereço OOB do APIC:
ping 10.31.125.144 -I oobmgmt
Como pode ser visto, a opção -I é útil para especificar a interface de origem, neste exemplo o endereço de gerenciamento OOB.
Pode ser usada a opção -h para ver todas as opções disponíveis.
O comando iping, por outro lado, é uma ferramenta de diagnóstico especializada no ambiente da Cisco Application Centric Infrastructure (ACI).
O iping é um utilitário de diagnóstico de rede poderoso usado na CLI da Cisco ACI para verificar a conectividade de um nó ou contexto específico dentro da estrutura. Como a ACI é um ambiente multilocatário, o iping permite que os administradores testem a conectividade enquanto consideram o isolamento lógico fornecido por VRFs e locatários.
Como funciona: Ele inicia uma solicitação de eco ICMP de um nó ou contexto de origem especificado para um IP de destino. Ele garante que o pacote atravesse a estrutura corretamente de acordo com os EPGs e contratos configurados. Para fazer isso, o switch leaf deve encapsular o pacote ICMP da mesma forma que um tráfego de produção seria encapsulado se estivesse entrando na estrutura. O cabeçalho iVXLAN contém o VNID (Identificador de Rede Virtual) que mapeia o tráfego para o VRF ou EPG correto. Isso garante que o pacote esteja sujeito às mesmas regras de encaminhamento e políticas de segurança que o tráfego de produção real.
Funções principais:
Confirme a alcançabilidade do endpoint, fazendo ping do SVI implantado a partir do assunto do domínio da ponte (SVI)
iping 192.168.104.2 -V tenant_prod:VRF1
É necessário selecionar pelo menos a origem VRF, com o parâmetro -V.
Quando o sinalizador -V <tenant>:<vrf> é fornecido, o sistema identifica o VNID (VXLAN Network Identifier) específico associado a esse VRF. Esse VNID é crítico para garantir que o pacote seja roteado dentro da tabela lógica de roteamento correta.
Pode ser usada a opção -h para ver todas as opções disponíveis.
A triagem é uma ferramenta baseada no APIC CLI que tem o objetivo de fornecer automação completa da configuração e interpretação do ELAM. A premissa da ferramenta é que um usuário pode definir um fluxo específico, bem como a folha onde o fluxo deve começar. A ferramenta executa ELAMs em cada nó, um por um, para examinar o fluxo de encaminhamento. Ele é particularmente útil em topologias grandes em que não está claro qual caminho um pacote toma.
A Triagem gera um grande arquivo de log contendo a saída de cada comando executado. O nome deste arquivo está visível nas primeiras linhas da saída do fTriage.
A conclusão da triagem pode levar até 15 minutos.
Mapeie o fluxo para comunicação roteada entre 10.0.1.1 e 10.0.2.1 começando na folha 104:
ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1
Mapeie um fluxo de Camada 2 começando no leaf 104:
ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02
A ajuda completa da triagem pode ser vista executando-se a triagem —help no APIC.
o tcpdump pode ser aproveitado nos switches da ACI para capturar o tráfego de e para o plano de controle. Observe que somente o tráfego de plano de controle enviado à CPU do switch pode ser observado em uma captura tcpdump. Alguns exemplos são: protocolos de roteamento, LLDP/CDP, LACP, ARP, etc. Para capturar tráfego de dataplane (e plano de controle), use SPAN e/ou ELAM.
Para capturar na CPU, especifique a interface kpm_inb. As opções e filtros tcpdump mais tradicionais estão disponíveis.
Exemplo para capturar o ICMP destinado a um SVI no switch leaf:
leaf205# tcpdump -ni kpm_inb icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on kpm_inb, link-type EN10MB (Ethernet), capture size 65535 bytes
20:24:12.921981 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4096, length 64
20:24:12.922059 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4096, length 64
20:24:13.922064 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4352, length 64
20:24:13.922157 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4352, length 64
20:24:14.922231 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4608, length 64
20:24:14.922303 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4608, length 64
Além disso, a opção -w permite que o tcpdump grave a captura de pacotes em um arquivo PCAP para que possa ser aberto em ferramentas como o Wireshark.
Para usar tcpdump na interface eth0, que é a interface out-of-band no switch. Isso é útil para solucionar problemas de conectividade de qualquer tráfego que passe pela porta física fora da banda do switch. Isso seria principalmente tráfego baseado em plano de controle, como SSH, SNMP, etc.
Os contadores atômicos sob demanda são destinados a contar pacotes dentro de um fluxo específico à medida que saem em um uplink de folha e são recebidos em outra porta de estrutura de folha. Eles permitem alguma granularidade se os pacotes foram perdidos ou recebidos em excesso.
| Revisão | Data de publicação | Comentários |
|---|---|---|
3.0 |
01-Jul-2026
|
Texto explicativo adicionado de que o ELAM Assistant está sendo incorporado em APICs na versão 6.1(2)+ |
2.0 |
19-Aug-2024
|
Formatação de comandos. |
1.0 |
10-Aug-2022
|
Versão inicial |