Contents

Introduction

Informações de Apoio

Com O Que Essas Ferramentas Podem Ajudar?

SPAN e ERSPAN

ELAM

Overview

ASICs

tabela ASICs

Seleção interna do disparador ELAM

Seleção de saída do acionador ELAM

condições do conjunto ELAM

Exibindo o relatório ELAM

Exemplo completo de ELAM

aplicativo ELAM Assistant

ElamAssistant

ElamAssistant - Detalhes

Triagem

Examples

Tcpdump

Contadores atômicos sob demanda

Introduction

Este documento descreve as ferramentas incluídas nativamente na ACI que podem ser usadas para depurar problemas de encaminhamento.

Informações de Apoio

O material deste documento foi extraído do Solução de problemas da Cisco Application Centric Infrastructure, segunda edição livro, especificamente o Encaminhamento dentro da estrutura - Ferramentas capí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.

Com O Que Essas Ferramentas Podem Ajudar?

Para solucionar um problema de encaminhamento da perspectiva da ACI, entenda:

1. Qual switch está recebendo um fluxo?

2. Que decisão de encaminhamento o switch está tomando?

3. O switch está desligando?

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 próximas várias seções demonstrarão essas ferramentas em detalhes, de modo que apenas uma introdução de alto nível é fornecida aqui.

SPAN e ERSPAN

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 para fazer isso além do ERSPAN.

O ERSPAN segue o mesmo conceito, exceto replicando 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.

ELAM

Overview

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 fará com que o status do ELAM seja mostrado como 'disparado'. 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 afetará a CPU ou outros recursos no switch.

Os exemplos de encaminhamento neste manual usarão o ELAM como meio de verificar o que está acontecendo com o fluxo. Os exemplos mostrarão a versão de CLI leaf e o aplicativo ELAM Assistant.

Este guia não abordará 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]

Definir Condições para Disparar

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 que contém 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 for detectado no ASIC, a saída de 'status' mostrará 'triggered'. 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.

ASICs

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:

tabela ASICs

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

APLICATIVO

Switches -GX2

CHO

Switches -FX3

ROC

Seleção interna do disparador ELAM

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 qual corresponder.

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 de Camada 2, Camada 3 e Camada 4.

Todas as opções de acionamento são as seguintes:

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 a opção 'in-select 14' estiver selecionada, 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:

Para capturar um pacote que vem com encapsulamento de VLAN em uma porta de downlink, use 'in-select 6'

Para capturar um pacote com encapsulamento VXLAN (de um spine ou de um vleaf com encapsulamento VXLAN), use 'in-select 14'

Seleção de saída do acionador ELAM

A opção 'out-select' permite controlar quais resultados de pesquisa serã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 'drop vetor', que dirá se o resultado da pesquisa é descartar o pacote/quadro.

Observe que quando 'report' em vez de 'report' ou 'report detail' é usado para obter resultados do ELAM, 'drop vetor' aparece somente em 'out-select 1'. No entanto, sempre é possível executar 'report' ou 'report detail' com 'out-select 0'.

condições do conjunto ELAM

O ELAM suporta uma grande quantidade de condições das Camadas 2, 3 e 4 para procurar em um pacote. Especificando 'interno' 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

Exibindo o relatório ELAM

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

O "relatório" pode ser utilizado para apresentar o resultado do ELAM num formato de fácil compreensão. Observe que o relatório do ELAM é salvo na pasta '/var/log/dme/log/' no switch. Haverá dois arquivos para o ELAM na pasta.

- elam_<timestamp>.txt

- pretty_elam_<timestamp>.txt

Exemplo completo de ELAM

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

aplicativo ELAM Assistant

Os exemplos de solução de problemas neste manual também mostrarão o uso do aplicativo ELAM Assistant, que pode ser baixado pelo Cisco DC App Center (https://dcappcenter.cisco.com). 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

ElamAssistant

ElamAssistant - Detalhes

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.

Triagem

A triagem é uma ferramenta baseada no APIC CLI que tem como objetivo 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 executará ELAMs em cada nó, um por um, para examinar o fluxo de encaminhamento. É particularmente útil em topologias grandes em que não está claro qual caminho um pacote seguirá.

A triagem gera um grande arquivo de log contendo a saída de cada comando executado. O nome deste arquivo é visível nas primeiras linhas da saída do Triage.

A conclusão da triagem pode levar até 15 minutos.

Examples

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 'ftriage —help' no APIC.

Tcpdump

O despejo de TCP pode ser aproveitado em switches ACI para capturar o tráfego de e para o plano de controle. Observe que somente o tráfego do 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 e assim por diante. 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 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 pacote em um arquivo PCAP para que possa ser aberto em ferramentas como o Wireshark.

Para usar tcpdump na interface eth0, que é a interface fora de banda 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.

Contadores atômicos sob demanda

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.