Inhalt

Einleitung

Anwendbare Hardware

Nexus Tahoe ASIC ELAM-Verfahren

Topologie

Schritt 1 - Überprüfen der ASIC, des Abschnitts und der SrcId des Ports

Schritt 2 - Am Modul anhängen

Schritt 3 - Wechseln in den ELAM-Konfigurationsmodus und Festlegen des richtigen ASIC aus Schritt 1

Schritt 4 - Konfigurieren des ELAM-Triggers

Schritt 5: Festlegen der ELAM-Trigger mithilfe von SRC und DEST IP

Schritt 6 - Starten des ELAM

Schritt 7: Überprüfen Sie, ob der ELAM ausgelöst wurde, und prüfen Sie die Ergebnisse.

Anzeigen der ELAM-Ergebnisse für NX-OS-Versionen vor 7.0(3)I5(2)

VXLAN-gekapselter ELAM:

ELAM-Konfiguration nach NX-OS 7.0(3)I7(2)

Einleitung

In diesem Dokument werden die erforderlichen Schritte beschrieben, umm an ELAM (Embedded Logic Analyzer-Modul) auf einer Reihe von Cisco Nexus 9000 CloudScale ASIC-Modulen zu integrieren, deckt die wichtigsten Outputs ab und beschreibt, wie die Ergebnisse interpretiert werden.

Tipp: Eine Übersicht über die ELAM finden Sie im Dokument ELAM Overview (ELAM-Übersicht).

Anwendbare Hardware

Das in diesem Dokument beschriebene Verfahren gilt nur für die folgende Hardware:

N9K-C93180YC-EX

N9K-C92304QC

N9K-X9736C-EX

N9K-C92300YC

N9K-C93108TC-EX

N9K-X9788TC-FX

N9K-X9732C-EX

N9K-X97284YC-FX

N9K-X97160YC-EX

N9K-C93180YC-FX

N9K-C93180LC-EX

N9K-C93108TC-FX

N9K-C92160YC-X

N9K-C9348GC-FXP

N9K-C9272Q

N9K-X9732C-FX

N9K-C9236C

N9K-C9336C-FX2

N9K-C93240YC-FX2

N9K-C93300YC-FX2

N9K-C9364C

N9K-C9332C

Nexus Tahoe ASIC ELAM-Verfahren

Topologie

Schritt 1 - Überprüfen der ASIC, des Abschnitts und der SrcId des Ports

N9K-C92160YC-X-2# show hardware internal tah interface e1/49

IfIndex: 436232192

DstIndex: 5952

IfType: 26

Asic: 0 <<<<<<<<< Asic: 0

AsicPort: 56

SrcId: 48 <<<<<<<< Slice: 1 <<<<<<<<< PortOnSlice: 24

Vorsicht: ELAM sollte nur in einem Terminal-Fenster verwendet werden, da Sie globale Inhalte für jedes Segment, lu-a2d usw. verwalten.

Ein Port-Channel (PO) kann beispielsweise zwei Verbindungen haben, Eth 1/53, die dem Segment 0 entspricht, und Eth 1/54, das dem Segment 1 entspricht. Das gleichzeitige Einrichten von ELAM auf zwei separaten Terminal-Fenstern für die verschiedenen Segmente ist nicht hilfreich, da letzteres Segment (z. B. Segment 1) das erste überschreiben wird (Segment 0), was dazu führt, dass beide Terminal-Fenster dasselbe Ergebnis erhalten.

Sie können diese Informationen erneut überprüfen:

N9K-C92160YC-X-2# show system internal ethpm info interface e1/49 | i i src

IF_STATIC_INFO: port_name=Ethernet1/49,if_index:0x1a006000,ltl=5952,slot=0, nxos_port=192,dmod=1,dpid=56,

unit=0,queue=65535,xbar_unitbmp=0x0,ns_pid=255,slice_num=1,port_on_slice=24,src_id=48

Schritt 2 - Am Modul anhängen

N9K-C92160YC-X-2# attach mod 1

Schritt 3 - Wechseln in den ELAM-Konfigurationsmodus und Festlegen des richtigen ASIC aus Schritt 1

module-1# debug platform internal tah elam asic 0

Schritt 4 - Konfigurieren des ELAM-Triggers

Anmerkung: Je nach Paket/Fluss, der erfasst wird, können Sie hier viele Optionen angeben

module-1(TAH-elam)# trigger init asic 0 slice 1 lu-a2d 1 in-select 6 out-select 0 use-src-id 48

Tipp:

- Befinden sich die Eingangs- und Ausgangsports auf unterschiedlichen Slices im gleichen ASIC, erfasst ELAM im Ausgangssegment das ausgehende Paket nicht, da das Paket nicht durch die LUX-Blöcke im Ausgangssegment läuft und somit ELAM umgeht.

- lu-a2d 0 wird für Reverse-ELAM verwendet, wobei der Trigger auf dem Ergebnis basiert, und lu-a2d 1 wird für ELAM verwendet, wobei der Trigger auf Paketattributen basiert.

- Immer 6 für In-Select und 0 für Out-Select verwenden

Warnung: Verwenden Sie nach lu-a2d nicht 0, da dies den Switch zum Absturz bringen könnte - weitere Informationen finden Sie unter CSCvd64106.

Schritt 5: Festlegen der ELAM-Trigger mithilfe von SRC und DEST IP

In diesem Beispiel lautet die Quell-IP 192.0.2.2, und die Ziel-IP lautet 192.0.2.1 (siehe unten):

module-1(TAH-elam-insel6)# reset

module-1(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2

Anmerkung: Stellen Sie sicher, dass der Befehl "set" in allen ELAMs verwendet wird und nicht bei unerwarteten Feldern ausgelöst wird.

Schritt 6 - Starten des ELAM

module-1(TAH-elam-insel6)# start

GBL_C++:  [MSG] tahusd_elam_wrapper_init:36:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0

GBL_C++:  [MSG] Inside tahusd_elam_wrapper_init

GBL_C++:  [MSG] tahusd_elam_wrapper_enable:7e:asic type 5 inst 0 slice 1 a_to_d 1

GBL_C++:  [MSG]   - writing data=0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FD901C4E2A0000000000000000000002000000000000000000000000000000000000000000000000000000030001

GBL_C++:  [MSG]   - writing mask=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFFFE00000000000000000000038000000000000000000000000000000000000000000000000000001FF001

Schritt 7: Überprüfen Sie, ob der ELAM ausgelöst wurde, und prüfen Sie die Ergebnisse.

Hinweis: Ab NX-OS 7.0(3)I5(2) gibt es eine kurze Version des ELAM-Berichts (siehe unten). Wenn Sie älter als 7.0(3)I5(2) sind, fahren Sie mit "Anzeigen der ELAM-Ergebnisse ..." fort. Abschnitt.

module-1(TAH-elam-insel6)# report

SUGARBOWL ELAM REPORT SUMMARY

slot - 1, asic - 1, slice - 1

============================

Incoming Interface: Eth1/49

Src Idx : 0xd, Src BD : 10

Outgoing Interface Info: dmod 1, dpid 14

Dst Idx : 0x602, Dst BD : 10

Packet Type: IPv4

Dst MAC address: CC:46:D6:6E:28:DB Src MAC address: 00:FE:C8:0E:27:15

.1q Tag0 VLAN: 10,  cos = 0x0

Dst IPv4 address: 192.0.2.1 Src IPv4 address: 192.0.2.2

Ver     =  4, DSCP    =    0, Don't Fragment = 0

Proto   =  1, TTL     =   64, More Fragments = 0

Hdr len = 20, Pkt len =   84, Checksum       = 0x667f

L4 Protocol  : 1

ICMP type    : 0

ICMP code    : 0

Drop Info:

----------

LUA:

LUB:

LUC:

LUD:

Final Drops:

- Die CLI "report detail" bietet eine ausführlichere Ausgabe, die im späteren Abschnitt beschrieben wird. Dies ist auch die Standardausgabe für ältere Versionen.

- Der Dst Idx ist der niv_idx der Ausgangsschnittstelle. Dies kann überprüft und/oder referenziert werden mit "show hardware internal tah interface ex/y | i niv"

- Die dmod und dpid entsprechen der Ausgangsschnittstelle. Dies kann mit "show system internal ethpm info int ex/y" | i dpid"

- Darüber hinaus kann "show interface hardware-mapping" verwendet werden, um dmod/dpid zu validieren.

HINWEISE:

1. Wenn es um die Bestätigung geht, ob das Paket tatsächlich verworfen wird, ist das Feld "Final Drops" das EINZIGE, das berücksichtigt werden muss.  Mit anderen Worten: Auch wenn in anderen Feldern wie LUA/B/C/D Ausnahmen ausgelöst werden, bedeutet dies nicht unbedingt, dass das Paket verworfen wird. Bitte überprüfen Sie diese Ausgabe sorgfältig (sprechen Sie ggf. mit dem TAC).

2. Für den an die CPU gesendeten Datenverkehr wird das sup_hit-Flag festgelegt (Detail des Berichts). | grep sup_hit).

- Sie können den Grund dekodieren, indem Sie "show system internal access-list sup-redirect-stats all" verwenden und den sup-Index suchen.

- Stellen Sie sicher, dass der richtige 'System-Routingmodus' konfiguriert ist (System-Routingmodus anzeigen)

- Gemäß Richtlinien und Einschränkungen, die in Überlegungen zur VXLAN-Bereitstellung dokumentiert sind

- Der "System Routing Mode: template-vxlan-scale" nicht auf Cisco NX-OS Version 7.0(3)I5(2) und höher anwendbar ist.

- Bei Verwendung von VXLAN BGP EVPN in Kombination mit Cisco NX-OS Version 7.0(3)I4(x) oder NX-OS Version 7.0(3)I5(1) wird der "System Routing Mode: template-vxlan-scale" auf den folgenden Hardwareplattformen erforderlich:

- Cisco Nexus Switches der Serie 9300-EX

- Cisco Nexus Switches der Serie 9500 mit X9700-EX Line Cards

- Um den "System Routing Mode" (System-Routing-Modus) zu ändern, muss der Switch neu geladen werden.

Beispiel für Datenverkehr mit CPU Punt:

module-1(TAH-elam-insel6)# report

SUGARBOWL ELAM REPORT SUMMARY

=============================

Incoming Interface: Eth1/3

Src Idx : 0x9, Src BD : 23

Outgoing Interface Info: dmod 1, dpid 72

Dst Idx : 0x601, Dst BD : 802

Packet Type: IPv4

Dst MAC address: B0:8B:CF:A3:D0:4B

Src MAC address: 00:10:DB:FF:10:00

.1q Tag0 VLAN: 23,  cos = 0x0

Dst IPv4 address: 192.0.2.1

Src IPv4 address: 192.0.2.2

Ver     =  4, DSCP    =    2, Don't Fragment = 1

Proto   =  6, TTL     =   49, More Fragments = 0

Hdr len = 20, Pkt len =   60, Checksum       = 0x63c3

L4 Protocol  : 6

TCP Dst Port : 80

TCP Src Port : 46340

Sup hit: 1, Sup Idx : 2720  <<---- CPU punt, use below CLI to resolve the meaning of Sup Idx

Drop Info:

----------

LUA:

LUB:

LUC:

LUD:

Final Drops:

# show system internal access-list sup-redirect-stats all | grep 2720 2720  copp-system-p-acl-http 63

Anzeigen der ELAM-Ergebnisse für NX-OS-Versionen vor 7.0(3)I5(2)

+ Gibt es hier einen dot1q-Header?

module-1(TAH-elam-insel6)# report | grep pr_lu_vec_l2v.qtag0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vld: 0x1 << dot1q yes? 0x1 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_cos: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_de: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vlan: 0xA << VL 10

+ VLAN prüfen:

module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.lkup.macsakey.key.fid

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.vld: 0x1

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid_type: 0x0

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid_vld: 0x0

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid: 0xA << dec 0xa = VL 10

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

+ Überprüfen Sie SRC MAC (dies wird übrigens auch im vorherigen Schritt gezeigt):

module-1(TAH-elam-insel6)# report | grep -i fpx_lookup_vec.lkup.macsakey.key.mac

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 << 00fe.c80e.2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

+ Ist dies eine neue lernen?

module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.sa_notify_info

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.ptvec.misc1.tcp_flags: 0x0

GBL_C++:  [MSG]   fpx_lookup_vec.sa_notify_info: 0x5200000C060

GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.enable: 0x0 << This will be set to 0x1 for learning to happen

GBL_C++:  [MSG]     fpx_lookup_vec.sa_notify_info.conv_learn_only: 0x0

+ SRC- und DST-IP überprüfen:

module-1(TAH-elam-insel6)# report | grep vec_l3v.ip.*a

GBL_C++:  [MSG]     pr_lu_vec_l3v.ip.da: 0x00000000000000000c0000201 << DST IP: 192.0.2.1

GBL_C++:  [MSG]     pr_lu_vec_l3v.ip.sa: 0x00000000000000000c0000202 << SRC IP: 192.0.2.2

+ Überprüfen Sie Ihre Eingangs-SRC_ID:

module-1(TAH-elam-insel6)# report | egrep SRC

GBL_C++:  [MSG]    SRCID: 0x30

module-1(TAH-elam-insel6)# report | grep vec.ihdr.ieth.hdr.src_idx

GBL_C++: [MSG] lurw_vec.ihdr.ieth.hdr.src_idx: 0xA9 << sh hardware internal tah int e1/49 | i i niv_idx

+ Wenn ELAM nicht ausgelöst wird, sieht es wie folgt aus:

module-1(TAH-elam-insel6)# report

GBL_C++:  [MSG] tahusd_elam_wrapper_report:27d:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0

GBL_C++:  [MSG] Inside tahusd_elam_wrapper_dav_report

GBL_C++: [MSG] ELAM not yet triggered <<<<<<

VXLAN-gekapselter ELAM:

Da VXLAN-Pakete gekapselt werden, muss der ELAM im INNER-Header und nicht im OUTER-Header ausgelöst werden - ein ARP-Frame ist im Beispiel unten dargestellt:

module-1# debug platform internal tah elam asic 0

module-1(TAH-elam)# trigger init asic 0 slice 1 in-select 7 out-select 0 use-src-id 48

module-1(TAH-elam-insel7)# reset

module-1(TAH-elam-insel7)# set inner arp source-ip-addr 192.0.2.2 target-ip-addr 192.0.2.1

module-1(TAH-elam-insel7)# start

module-1(TAH-elam-insel7)# report

ELAM-Konfiguration nach NX-OS 7.0(3)I7(2)

Nach NX-OS 7.0(3)I7(2) kann ELAM jetzt global ausgelöst werden, ohne dass die ASIC- oder Slice-Nummer angegeben werden muss - siehe folgendes Beispiel:

Nexus-9K# debug platform internal tah elam

Nexus-9K(TAH-elam)# trigger init

Nexus-9K(TAH-elam-insel6)# reset

Nexus-9K(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2

Nexus-9K(TAH-elam-insel6)# start

Nexus-9K(TAH-elam-insel6)# report