Inleiding
Dit document beschrijft tools die standaard in ACI zijn opgenomen en die kunnen worden gebruikt om problemen bij het doorsturen te debuggen.
Achtergrondinformatie
Het materiaal van dit document is afgeleid uit het boek Problemen oplossen van Cisco Application Centric Infrastructure, Second Edition, met name het hoofdstuk Intra-Fabric doorsturen - Tools.
Bovendien vindt u diepere uitleg over ELAM en Ftriage in de Cisco Live On-Demand-bibliotheek in sessie BRKDCN-3900b.
Wat kunnen deze tools helpen?
Om een het door:sturen probleem vanuit een ACI perspectief problemen op te lossen, begrijp:
- Welke switch ontvangt een stroom?
- Wat is het uitzendbesluit van die switch?
- Laat de switch het vallen?
ACI omvat verschillende tools die de gebruiker in staat stellen om diepgaande inzichten te verkrijgen in wat er gebeurt met een specifieke flow. In de volgende secties worden deze tools in detail beschreven, dus hier wordt alleen een introductie op hoog niveau gegeven.
SPAN en ERSPAN
SPAN en ERSPAN zijn beide tools waarmee al het verkeer dat op een specifieke locatie wordt ontvangen, kan worden gerepliceerd naar een andere locatie. Op het eindapparaat waarnaar het gerepliceerde verkeer wordt verzonden, wordt naar verwachting een bepaald type pakketsnuiver/analysatortoepassing uitgevoerd. Traditionele SPAN omvat het repliceren van verkeer dat wordt ontvangen op één poort en het doorgeven door een andere poort. ACI ondersteunt dit naast ERSPAN.
ERSPAN volgt hetzelfde concept, behalve het repliceren van het verkeer vanuit een lokale poort; het gerepliceerde verkeer wordt ingekapseld in GRE en verzonden naar een externe bestemming. In ACI, moet deze bestemming ERSPAN slechts als Layer 3 eindpunt worden geleerd en het kan om het even welke EPG in om het even welke VRF zijn.
Het is een goed idee om altijd SPAN-bestemmingen te hebben verbonden met de stof om voorbereidingstijd tijdens probleemoplossing te minimaliseren en snelle ERSPAN-sessieconfiguratie en opname mogelijk te maken.
ELAM
Overzicht
Embedded Logic Analyzer Module (ELAM) is een tool waarmee een gebruiker voorwaarden kan instellen in hardware en het eerste pakket of frame kan opnemen dat overeenkomt met de ingestelde voorwaarden. Een succesvolle opname zorgt ervoor dat de ELAM-status wordt weergegeven als "geactiveerd". Als de ELAM eenmaal is geactiveerd, wordt deze uitgeschakeld en kan er een dump worden verzameld om het grote aantal doorsturen beslissingen te analyseren die de switch ASIC met dat pakket/frame maakt. ELAM wordt geïmplementeerd op ASIC-niveau en heeft geen invloed op CPU- of andere bronnen op de switch.
De expeditievoorbeelden in dit boek gebruiken ELAM als een manier om te verifiëren wat er gebeurt met de stroom. Voorbeelden tonen zowel de leaf CLI-versie als de ELAM Assistant App.
Deze handleiding heeft geen betrekking op het gebruik van ELAM op eerste generatie bladzijden switches (switches zonder EX, FX, of FX2 achtervoegsel).
Alvorens het hulpmiddel te gebruiken, is het belangrijk om de structuur van de bevelsyntaxis te begrijpen.
Voorbeeld op blad 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]
Voorwaarden instellen op "trigger"
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]
Genereert de dump die de pakketanalyse bevat
ereport [display detailed forwarding decision for the packet]
Ga verder met het statuscommando om de status van de trigger te bekijken. Zodra een pakket dat aan de gedefinieerde voorwaarden voldoet, op de ASIC is gedetecteerd, verschijnt de uitvoer van de status "geactiveerd". Zodra de ELAM is geactiveerd, kunnen de details van de besluiten over het doorsturen van switches worden weergegeven met 'verslag'. Vóór ACI versie 4.2 moet 'rapport' worden gebruikt.
ASIC's
Let er binnen de ELAM-syntaxis op dat de ASIC moet worden gespecificeerd. Aangezien de ASIC afhankelijk is van het switch-model, raadpleegt u deze tabel om te bepalen welke ASIC moet worden gespecificeerd:
ASIC's tabel
Switch/lijnkaartfamilie |
Asic for Elam |
-EX switches/LC’s |
TAH |
-FX(P) switches/LC’s |
ROC |
-FX2 switches/LC’s |
ROC |
C-switches (9364C,9332C) |
ROC |
MGX-switches |
APP |
-GX2-switches |
CHO |
-FX3 switches |
ROC |
ELAM-trigger in-select
De andere component van de ELAM die moet worden begrepen wanneer het lopen van CLI is in-select. De in-select definieert welke headers het pakket/frame naar verwachting zal hebben en welke er aan moeten worden toegewezen.
Een pakket dat afkomstig is van een downlink-poort die niet is ingekapseld voor VXLAN, heeft bijvoorbeeld alleen kopregels voor Layer 2, Layer 3 en Layer 4.
Een pakket dat afkomstig is van een (downlink) poort op het voorpaneel die is ingekapseld via VXLAN (zoals Cisco ACI Virtual Edge in VXLAN-modus) of dat afkomstig is van een upstream-as zou voorzien zijn van VXLAN-insluiting. Dit betekent dat het potentieel zowel buiten als binnen Layer 2, Layer 3 en Layer 4-headers zou hebben.
Alle trigger-opties zijn:
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
Als in-select 6 is geselecteerd, is de enige optie om voorwaarden en weergavekopregels in te stellen van de buitenste Layer 2-, 3- of 4-kopregels. Als in-select 14 is geselecteerd, is de enige optie om voorwaarden voor te stellen en de details van de buiten- en binnenste Layer 2-, 3- en 4-headers te zien.
Best practices notitie:
Om een pakket op te nemen dat met VLAN-insluiting op een downlink-poort komt, gebruikt u 'in-select 6'
Om een pakket met VXLAN inkapseling (van een wervelkolom of van een vlekje met VXLAN inkapseling) op te nemen, selecteert u in-select 14.
ELAM-trigger uitgeselecteerd
De uitselectie maakt het mogelijk te bepalen welke zoekresultaten in het ELAM-rapport worden weergegeven. Voor de meeste praktische doeleinden kan out-select 0 worden gebruikt omdat het de meeste informatie bevat, inclusief de drop-vector, die vertelt of het resultaat van de lookup het pakket/frame moet laten vallen.
Merk op dat wanneer rapport in plaats van rapport of rapport detail wordt gebruikt om ELAM resultaten te krijgen, drop vector alleen verschijnt in out-select 1. U kunt echter altijd rapportage of rapportdetails uitvoeren met out-select 0.
ELAM-omstandigheden
ELAM ondersteunt een grote hoeveelheid Layer 2-, 3- en 4-voorwaarden om te zoeken in een pakket. Specificeren van binnen versus buiten bepaalt of de voorwaarde kan worden gecontroleerd in de binnen- kopbal (VXLAN ingekapseld pakket) of buitenkopbal.
ARP-voorbeeld:
set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2
MAC-adresvoorbeeld:
set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa
IP-adres in voorbeeld binnenste header:
set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
Het ELAM-verslag bekijken
Controleer of de ELAM is geactiveerd met de status:
module-1(DBG-elam-insel6)# status
ELAM STATUS
===========
Asic 0 Slice 0 Status Armed
Asic 0 Slice 1 Status Triggered
Report kan worden gebruikt om het resultaat van de ELAM in een gemakkelijk te begrijpen formaat weer te geven. Merk op dat het ELAM-rapport wordt opgeslagen in de map /var/log/dme/log/ op de switch. Er zijn twee bestanden voor de ELAM onder de map.
- elam_<tijdstempel>.txt
- nice_elam_<timestamp>.txt
Voorbeeld volledig ELAM
In dit voorbeeld wordt een niet-VXLAN-ingekapseld verkeer (matching op kop) vastgelegd dat afkomstig is van een downlink-poort op een -EX-switch:
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-toepassing
De voorbeelden van probleemoplossing in dit boek tonen ook het gebruik van de ELAM Assistant-app die kan worden gedownload via Cisco DC App Center (https://dcappcenter.cisco.com). Deze tool automatiseert de implementatie en interpretatie van ELAM's via de GUI op de APIC.
Dit voorbeeld laat de implementatie zien van een ELAM die overeenkomt met een specifieke IP-bron en -bestemming op knooppunt-101 downlink-poort
Elam Assistant
ElamAssistant - Detail
De ELAM Assistant maakt het ook mogelijk om eenvoudiger gebruik te maken van complexere matchingparameters zoals de broninterface of VXLAN-waarden.
fTriage
fTriage is een op APIC CLI gebaseerde tool die is bedoeld om end-to-end automatisering van ELAM-configuratie en -interpretatie te bieden. Het uitgangspunt van het hulpmiddel is dat een gebruiker een specifieke stroom kan bepalen evenals het blad waar de stroom naar verwachting zal beginnen. De tool voert vervolgens ELAM's uit op elke knoop, één voor één, om de doorsturen stroom te onderzoeken. Het is bijzonder nuttig in grote topologieën waar het onduidelijk is welke weg een pakket neemt.
fTriage genereert een groot logbestand met de uitvoer van elke uitgevoerde opdracht. De naam van dit bestand is zichtbaar op de eerste regels van de fTriage uitvoer.
fTriage kan tot 15 minuten duren.
Voorbeelden
Leg de stroom voor gerouteerde communicatie tussen 10.0.1.1 en 10.0.2.1 vanaf blad 104 in kaart:
ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1
Leg een Layer 2-stroom uit vanaf bladzijde 104:
ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02
Full fTriage help kan worden gezien door ftriage —help op de APIC.
TCPdump
tcpdump kan op ACI-switches worden ingezet om verkeer van en naar het besturingsvlak op te nemen. Merk op dat alleen verkeer besturingsplane dat naar de switch-CPU is verzonden, in een tcpdump-opname kan worden waargenomen. Een paar voorbeelden zijn: routingprotocollen, LLDP/CDP, LACP, ARP, enzovoort. Maak gebruik van SPAN en/of ELAM om het dataplane- (en besturings-) verkeer op te nemen.
Om op de CPU te vangen, specificeert u de kpm_inb interface. De meeste traditionele tcpdump opties en filters zijn beschikbaar.
Voorbeeld om ICMP op te nemen die bestemd is voor een SVI op de switch:
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
Bovendien staat de -w optie tcpdump toe om het pakket te schrijven vangen aan een PCAP- dossier zodat het in hulpmiddelen zoals Wireshark kan worden geopend.
Om tcpdump te gebruiken op de eth0-interface, die de out-of-band-interface op de switch is. Dit is handig om problemen op te lossen met de connectiviteit van elk verkeer via de out-of-band fysieke poort van de switch. Dit zou voornamelijk controle vliegtuig-based verkeer zoals SSH, SNMP, etc. zijn.
Atoomtellers op aanvraag
Op aanvraag zijn de atoomtellers bedoeld om pakketten binnen een specifieke stroom te tellen aangezien zij op een bladopstraalverbinding weggaan en op een andere haven van de bladstof ontvangen. Zij staan enige granulariteit toe in het feit of pakketten werden gemist of te veel ontvangen.