Inhalt

Einleitung

Hintergrundinformationen

Womit können diese Tools mithelfen?

SPAN und ERSPAN

ELAM

Überblick

ASICs

ASIC-Tabelle

ELAM-Trigger bei Auswahl

ELAM-Trigger-Out-Select

ELAM-Einstellungsbedingungen

Anzeigen des ELAM-Berichts

Vollständiges ELAM-Beispiel

ELAM Assistant-Anwendung

ElamAssistent

ElamAssistant - Details

fTriage

Beispiele

TCPdump

On-Demand-Atomzähler

Einleitung

In diesem Dokument werden die in der ACI integrierten Tools beschrieben, mit denen Weiterleitungsprobleme behoben werden können.

Hintergrundinformationen

Das Material aus diesem Dokument wurde aus dem Fehlerbehebung: Cisco Application Centric Infrastructure, Second Edition Buch, insbesondere das Fabric-interne Weiterleitung - Tools Kapitel.

Ausführlichere Erläuterungen zu ELAM und Ftriage finden Sie darüber hinaus in der Cisco Live On-Demand-Bibliothek in der Sitzung BRKDCN-3900b.

Womit können diese Tools mithelfen?

Um ein Weiterleitungsproblem im Hinblick auf die ACI zu beheben, müssen Sie Folgendes verstehen:

1. Welcher Switch erhält einen Datenfluss?

2. Welche Weiterleitungsentscheidung trifft dieser Switch?

3. Wird sie vom Switch abgebrochen?

Die ACI umfasst verschiedene Tools, mit denen Benutzer detaillierte Informationen zu den Vorgängen in einem bestimmten Fluss erhalten. In den nächsten Abschnitten werden diese Tools im Detail vorgestellt. Hier finden Sie nur eine grobe Einführung.

SPAN und ERSPAN

SPAN und ERSPAN sind beide Tools, mit denen der gesamte oder ein Teil des an einem bestimmten Standort eingehenden Datenverkehrs an einen anderen Standort repliziert werden kann. Auf dem Endgerät, an das der replizierte Datenverkehr gesendet wird, wird voraussichtlich eine Art von Paket-Sniffer/Analyzer-Anwendung ausgeführt. Traditionelles SPAN umfasst die Replikation von Datenverkehr, der an einem Port empfangen und über einen anderen Port übertragen wird. Die ACI unterstützt dies zusätzlich zu ERSPAN.

ERSPAN folgt demselben Konzept, mit Ausnahme der Replikation des Datenverkehrs von einem lokalen Port aus; Der replizierte Datenverkehr wird in GRE gekapselt und an ein Remote-Ziel gesendet. In der ACI muss dieses ERSPAN-Ziel nur als Layer-3-Endpunkt erfasst werden, und es kann sich um eine beliebige EPG in einer beliebigen VRF-Instanz handeln.

Es empfiehlt sich, immer SPAN-Ziele mit der Fabric zu verbinden, um die Vorbereitungszeit während der Fehlerbehebung zu minimieren und eine schnelle Konfiguration und Erfassung von ERSPAN-Sitzungen zu ermöglichen.

ELAM

Überblick

Embedded Logic Analyzer Module (ELAM) ist ein Tool, mit dem ein Benutzer Bedingungen in der Hardware festlegen und das erste Paket oder Frame erfassen kann, das den festgelegten Bedingungen entspricht. Bei einer erfolgreichen Erfassung wird der ELAM-Status als "getriggert" angezeigt. Nach der Auslösung wird das ELAM deaktiviert, und es kann ein Dump erfasst werden, um die große Anzahl von Weiterleitungsentscheidungen zu analysieren, die der Switch-ASIC mit diesem Paket/Frame trifft. ELAM wird auf ASIC-Ebene implementiert und hat keine Auswirkungen auf die CPU oder andere Ressourcen auf dem Switch.

In den Weiterleitungsbeispielen in diesem Buch wird ELAM verwendet, um zu überprüfen, was mit dem Fluss geschieht. In den Beispielen werden sowohl die Leaf-CLI-Version als auch die ELAM Assistant-Anwendung angezeigt.

In diesem Leitfaden wird die Verwendung von ELAM auf Leaf-Switches der ersten Generation (Switches ohne EX-, FX- oder FX2-Suffix) nicht behandelt.

Bevor Sie das Tool verwenden, ist es wichtig, die Struktur der Befehlssyntax zu verstehen.

Beispiel für Leaf-CLI:

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]

Auslösende Bedingungen festlegen

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]

Erstellen des Dump mit der Paketanalyse

ereport             [display detailed forwarding decision for the packet]

Fahren Sie mit der Eingabe des 'status'-Befehls fort, um den Status des Triggers anzuzeigen. Sobald ein Paket, das den definierten Bedingungen entspricht, auf dem ASIC erkannt wurde, zeigt die Ausgabe von 'status' den Status 'triggered' an. Sobald das ELAM ausgelöst wurde, können die Details der Entscheidungen über die Switch-Weiterleitung mit dem Befehl "report" angezeigt werden. Vor ACI Version 4.2 muss 'report' verwendet werden.

ASICs

Beachten Sie, dass in der ELAM-Syntax der ASIC angegeben werden muss. Da der ASIC vom Switch-Modell abhängt, können Sie in dieser Tabelle feststellen, welcher ASIC verwendet werden muss:

ASIC-Tabelle

Switch-/Line Card-Produktfamilie

Asic für Elam

- EX-Switches/LCs

TAH

- FX(P)-Switches/LCs

ROC

- FX2-Switches/LCs

ROC

C-Switches (9364C, 9332C)

ROC

-GX Switches

ANWENDUNG

-GX2-Switches

CHO

- FX3-Switches

ROC

ELAM-Trigger bei Auswahl

Die andere Komponente des ELAM, die verstanden werden muss, wenn sie über die CLI ausgeführt wird, ist "in-select". Die In-Select-Einstellung legt fest, welche Header das Paket/der Frame voraussichtlich hat und welche übereinstimmen.

Beispielsweise hätte ein Paket, das von einem Downlink-Port kommt, der nicht VXLAN-gekapselt ist, nur äußere Layer-2-, Layer-3- und Layer-4-Header.

Ein Paket, das von einem VXLAN-gekapselten Front-Panel-Port (Downlink) (z. B. Cisco ACI Virtual Edge im VXLAN-Modus) oder von einem Upstream-Spine stammt, verfügt über VXLAN-Kapselung. Dies bedeutet, dass potenziell sowohl äußere als auch innere Layer-2-, Layer-3- und Layer-4-Header vorhanden sind.

Alle Trigger-Optionen sind wie folgt:

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

Wenn "in-select 6" (In-Select 6) ausgewählt ist, können Sie nur Bedingungen festlegen und Header der äußeren Layer 2-, 3- oder 4-Header anzeigen. Wenn "in-select 14" (In-Auswahl 14) ausgewählt ist, besteht die einzige Option darin, die Bedingungen für die äußeren und inneren Layer-2-, Layer-3- und Layer-4-Header festzulegen und die zugehörigen Details anzuzeigen.

Hinweis zu Best Practices:

Um ein Paket zu erfassen, das mit VLAN-Kapselung an einem Downlink-Port eingeht, wählen Sie "in-select 6" (Auswählen 6) aus.

Um ein Paket mit VXLAN-Kapselung zu erfassen (entweder von einem Spine oder von einem Vleaf mit VXLAN-Kapselung), wählen Sie "in-select 14" (14) aus.

ELAM-Trigger-Out-Select

Mit der Option "out-select" können Sie steuern, welche Suchergebnisse im ELAM-Bericht angezeigt werden. Für die meisten praktischen Zwecke kann 'out-select 0' verwendet werden, da es die meisten Informationen enthält, einschließlich des 'drop-Vektors', der angibt, ob das Ergebnis der Suche das Verwerfen des Pakets/Frames ist.

Beachten Sie, dass bei Verwendung von 'report' anstelle von 'report' oder 'report detail' zum Abrufen der ELAM-Ergebnisse 'drop vektor' nur in 'out-select 1' angezeigt wird. Mit 'out-select 0' kann man jedoch immer 'report' oder 'report detail' durchführen.

ELAM-Einstellungsbedingungen

ELAM unterstützt eine große Anzahl von Layer-2-, Layer-3- und Layer-4-Bedingungen, nach denen in einem Paket gesucht werden muss. Angeben von 'inner' und 'outer' bestimmt, ob die Bedingung im inneren Header (VXLAN-gekapseltes Paket) oder im äußeren Header überprüft werden kann.

ARP-Beispiel:

set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2

Beispiel für MAC-Adresse:

set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa

IP-Adresse im inneren Header-Beispiel:

set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2

Anzeigen des ELAM-Berichts

Überprüfen Sie, ob der ELAM mit dem Status ausgelöst wurde:

module-1(DBG-elam-insel6)# status

ELAM STATUS

===========

Asic 0 Slice 0 Status Armed

Asic 0 Slice 1 Status Triggered

Mithilfe von "report" kann das Ergebnis der ELAM in einem leicht verständlichen Format angezeigt werden. Beachten Sie, dass der ELAM-Bericht im Ordner '/var/log/dme/log/' auf dem Switch gespeichert wird. Unter dem Ordner befinden sich zwei Dateien für die ELAM.

- elam_<Zeitstempel>.txt

- hübsch_elam_<Zeitstempel>.txt

Vollständiges ELAM-Beispiel

In diesem Beispiel wird ein nicht VXLAN-gekapselter Datenverkehr (Übereinstimmung am äußeren Header) erfasst, der von einem Downlink-Port an einem -EX-Switch stammt:

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

ELAM Assistant-Anwendung

Die Beispiele zur Fehlerbehebung in diesem Buch zeigen auch die Verwendung der ELAM Assistant-App, die über das Cisco DC App Center heruntergeladen werden kann (https://dcappcenter.cisco.com). Dieses Tool automatisiert die Bereitstellung und Interpretation von ELAMs über die grafische Benutzeroberfläche des APIC.

Dieses Beispiel zeigt die Bereitstellung eines ELAM, das mit einer bestimmten Quell- und Ziel-IP-Adresse auf einem Node-101-Downlink-Port übereinstimmt

ElamAssistent

ElamAssistant - Details

Der ELAM-Assistent ermöglicht außerdem die einfache Verwendung komplexerer Anpassungsparameter wie der Quellschnittstelle oder VXLAN-Werte.

fTriage

fTriage ist ein CLI-basiertes Tool für die APIC-Komplettautomatisierung der ELAM-Konfiguration und -Interpretation. Die Prämisse des Tools besteht darin, dass ein Benutzer einen bestimmten Datenfluss sowie den Leaf definieren kann, auf dem der Datenfluss beginnen soll. Das Tool führt dann auf jedem Knoten einzeln ELAMs aus, um den Weiterleitungsfluss zu untersuchen. Dies ist besonders in großen Topologien nützlich, in denen unklar ist, welchen Pfad ein Paket nimmt.

fTriage generiert eine große Protokolldatei, die die Ausgabe jedes ausgeführten Befehls enthält. Der Name dieser Datei ist in den ersten Zeilen der fTriage-Ausgabe sichtbar.

fTriage kann bis zu 15 Minuten dauern.

Beispiele

Abbilden des Datenflusses für die geroutete Kommunikation zwischen 10.0.1.1 und 10.0.2.1 ab Blatt 104:

ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1

Erstellen Sie einen Layer-2-Fluss, beginnend mit Leaf 104:

ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02

Die vollständige fTriage-Hilfe kann angezeigt werden, indem 'ftriage —help' auf dem APIC ausgeführt wird.

TCPdump

Tcpdump kann auf ACI-Switches verwendet werden, um den Datenverkehr zur und von der Steuerungsebene zu erfassen. Beachten Sie, dass nur an die Switch-CPU gesendeter Steuerungsebenen-Datenverkehr bei einer tcpdump-Erfassung beobachtet werden kann. Hier einige Beispiele: Routing-Protokolle, LLDP/CDP, LACP, ARP usw. Zur Erfassung des Datenverkehrs auf Datenebene (und Kontrollebene) nutzen Sie SPAN und/oder ELAM.

Um Daten auf der CPU zu erfassen, geben Sie die Schnittstelle "kpm_inb" an. Die meisten herkömmlichen tcpdump-Optionen und -Filter sind verfügbar.

Beispiel zur Erfassung von ICMP, das an eine SVI auf dem Leaf-Switch gerichtet ist:

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

Darüber hinaus ermöglicht die Option '-w' tcpdump, die Paketerfassung in eine PCAP-Datei zu schreiben, sodass sie in Tools wie Wireshark geöffnet werden kann.

Zur Verwendung von tcpdump an der eth0-Schnittstelle, der Out-of-Band-Schnittstelle am Switch. Dies ist nützlich, um die Anbindung von Datenverkehr zu beheben, der über den physischen Out-of-Band-Port des Switches läuft. Hierbei handelt es sich hauptsächlich um Kontrollebenen-basierten Datenverkehr wie SSH, SNMP usw.

On-Demand-Atomzähler

Atomare On-Demand-Zähler zählen Pakete innerhalb eines bestimmten Datenflusses, wenn sie einen Leaf-Uplink verlassen und über einen anderen Leaf-Fabric-Port empfangen werden. Sie ermöglichen eine gewisse Präzision, wenn es darum geht, ob Pakete übersehen oder empfangen wurden.