Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Was ist ELAM?

Topologie

Identifizieren der Eingangs-Weiterleitungs-Engine

Beispiel: ARP ELAM-Erfassung

Konfigurieren des Triggers

Interpretieren des Ergebnisses

Beispiel: IPv4 ELAM-Erfassung

Konfigurieren des Triggers

Interpretieren des Ergebnisses

Zusätzliche Überprüfung (F3 ltl-region)

ELAM-Fehler

Einleitung

In diesem Dokument werden die Schritte zum Durchführen eines ELAM (Embedded Logic Analyzer Module) auf einem Cisco Nexus 7000/7700 F3-Modul beschrieben.

Voraussetzungen

Anforderungen

Cisco empfiehlt, sich mit dem Cisco Nexus-Betriebssystem (NX-OS) und der grundlegenden Nexus-Architektur vertraut zu machen, bevor Sie mit den in diesem Dokument beschriebenen Informationen fortfahren.

ELAM kann nur von der Rolle "network-admin" durchgeführt werden. Stellen Sie sicher, dass Sie sich als Benutzer mit Netzwerk-Admin-Berechtigung anmelden.

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- Cisco Nexus Switches der Serie 7700

- Cisco N7700 F3-Module (N77-F324FQ-25, 24-Port 10/40-Gigabit-Ethernet-Module)

- Cisco NX-OS Version 8.4.9

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Was ist ELAM?

Die ELAM hilft bei der Behebung von Weiterleitungsproblemen im Netzwerk, indem sie Pakete in Echtzeit ohne Unterbrechungen erfasst. Dies hat keine Auswirkungen auf die Leistung oder die Ressourcen der Kontrollebene. ELAM ist ein leistungsstarkes, präzises und unterbrechungsfreies Tool, das von den Technikern des Cisco Technical Assistance Center (TAC) am häufigsten verwendet wird. Es ist jedoch wichtig zu wissen, dass das ELAM-Tool jeweils nur ein Paket erfasst - das erste Paket, das nach dem Start von ELAM empfangen wird. Wenn Sie alle Pakete eines Datenflusses erfassen müssen, verwenden Sie SPAN oder ERSPAN.

Die ELAM kann unter anderem folgende Fragen beantworten:

- Gelangt der Frame des Interesses in den Switch?

- Von welchem Port und VLAN wird das Paket empfangen?

- Wie lauten die Quell- und Ziel-MAC-Adressen des eingehenden Pakets?

- Wie wird das Paket neu geschrieben und an welchen Port wird es gesendet?

Topologie

In diesem Artikel sendet Host1, der mit dem N77-F3-Port E5/23 verbunden ist, Datenverkehr an Host2. ELAM wird verwendet, um den einzelnen Frame von Host1 zu Host2 zu erfassen.

Um ein ELAM auf dem Nexus 7000 auszuführen, müssen Sie sich zunächst als Benutzer mit dem Namen network-admin anmelden und dann eine Verbindung mit dem Modul herstellen.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

Identifizierung der Eingangs-Weiterleitungs-Engine

Der Nexus 7000 funktioniert als vollständig verteilter Switch, wobei Weiterleitungsentscheidungen von der Weiterleitungs-Engine der Eingangs-Linecard getroffen werden.

In diesem Artikel wird erwartet, dass der relevante Datenverkehr über Port 5/23 in den Switch eingeht. Im Beispiel des Nexus 7000 wurde der mModul 5 ist ein F3-Modul.

N77-F3# show module 5

Mod Ports            Module-Type                     Model         Status

--- ----- ----------------------------------- ------------------ ----------

5     24      10/40 Gbps Ethernet Module        N77-F324FQ-25       ok

Mod Sw Hw

--- --------------- ------

5 8.4(9) 1.3

Führen Sie bei F3-Modulen die ELAM auf der Layer 2 (L2) Forwarding Engine (FE) mit dem internen Codenamen Flanker durch.

module-5# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE: 24 port 40G

>Front Panel ports:24

--------------------------------------------------------------

Device name                  Dev role           Abbr num_inst:

--------------------------------------------------------------

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP      L2LKP 12

FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

22                 10     10      10      10      0,1

23                 11     11      11      11      0,1        >>>Port 23 belongs to FE instance 11

24                 11     11      11      11      0,1

+-----------------------------------------------------------------------+

In dieser Ausgabe ist ersichtlich, dass Port E5/23 zu FE-Instanz 11 gehört.

Der Layer 2 FE-Datenbus (DBUS) überträgt die ursprünglichen Header-Informationen vor den Layer 2- (L2) und Layer 3- (L3)-Suchvorgängen, während der Result Bus (RBUS) die Ergebnisse der L3- und L2-Suchvorgänge enthält. Für die meisten Fehlerbehebungsszenarien ist eine Layer-2-ELAM-Erfassung ausreichend.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# ?

layer2 ELAMs for layer 2

layer3 ELAMs for layer 3

module-5(fln-elam)# layer2

Beispiel: ARP ELAM-Erfassung

In diesem Beispiel sendet Host1 im VLAN 100 (mit der IP-Adresse 192.168.1.1 und der MAC-Adresse 8c60.4fc7.c5bc), verbunden mit dem Port E5/23, eine ARP-Anforderung (Address Resolution Protocol). Mit dieser Anforderung soll die MAC-Adresse für einen anderen Host im gleichen VLAN 100 aufgelöst werden, dessen IP-Adresse 192.168.1.2 lautet.

Konfigurieren des Triggers

Der Flanker ASIC unterstützt ELAM-Trigger für verschiedene Frame-Typen. Der ELAM-Trigger muss dem Frame-Typ entsprechen. Wenn es sich bei dem Frame um einen ARP-Frame handelt, muss der Trigger ebenfalls auf die ARP-Option gesetzt werden. Ein ARP-Frame kann nicht vom Trigger "Other L2" (Andere L2) erfasst werden. Wenn Sie ELAM zur Erfassung eines MPLS-Frames verwenden, wählen Sie IPv4 oder IPv6 anstelle von MPLS aus. Weitere Informationen finden Sie im Abschnitt zu Bugs.

module-5(fln-l2-elam)# trigger dbus ?

arp ARP Frame Format              >>>capture ARP packet. Other L2 does not work for ARP

fc Fc hdr Frame Format

ipv4 IPV4 Frame Format            >>>capture IPv4 frame

ipv6 IPV6 Frame Format            >>>capture IPv6 frame

mpls MPLS

other L2 hdr Frame Format         >>>capture non-ip l2 frame

rarp RARP Frame Format

In diesem Beispiel wird der Frame basierend auf dem Ziel-IP-Adressfeld des ARP-Frames erfasst, sodass nur dieser Wert angegeben wird.

Flanker erfordert, dass sowohl für den DBUS als auch für den RBUS Trigger gesetzt werden. Der RBUS-Trigger ist vereinfachttrig und erfüllt die gleichen Kriterien wie der DBUS-Trigger.

module-5(fln-l2-elam)# trigger dbus arp ingress if target-ip-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

Nachdem Sie den Trigger konfiguriert haben, können Sie die Erfassung starten.

module-5(fln-l2-elam)# start

Führen Sie den Befehl aus, um zu überprüfen, ob ELAM Pakete erfasst hatstatus. Der Begriff "Bewaffnet" gibt an, dass noch keine übereinstimmenden Pakete erfasst wurden.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Armed                  >>>no matched packet

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed                  >>>no matched packet

Pingen Sie von Host1 (192.168.1.1) an 192.168.1.2. Da auf Host1 kein ARP-Eintrag vorhanden ist, sendet Host1 die ARP-Anforderung in einem Broadcast-Paket. Sobald die FE den ARP-Frame empfängt, überprüft sie den Trigger. Wenn eine Übereinstimmung besteht, erfasst ELAM die Weiterleitungsentscheidung dieses Frames, und der ELAM-Status wird dann als Triggered angezeigt.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Triggered              >>Packet hit

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered              >>Packet hit

Interpretieren des Ergebnisses

Das Ergebnis ist nur gültig, wenn der DBUS und der RBUS dasselbe Paket erfasst haben. Daher ist es notwendig, die Sequenznummer sowohl in den DBUS- als auch in den RBUS-Ergebnissen zu überprüfen. Wenn sie nicht übereinstimmen, können Sie sie neu starten und erneut erfassen, bis sie ausgerichtet sind.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x7 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x7

Es ist ratsam, zuerst die DBUS-Ausgabe zu überprüfen, da sie Daten enthält, bevor sie neu geschrieben werden. Nachfolgend finden Sie ein Beispiel für eine ARP-ELAM-Erfassung. Beachten Sie, dass einige Ausgaben weggelassen wurden.

module-5(fln-l2-elam)# show dbus

cp = 0x20c6ad1c, buf = 0x20c6ad1c, end = 0x20c7706c

--------------------------------------------------------------------

Flanker Instance 11 - Capture Buffer On L2 DBUS:

<snip>

--------------------------------------------------------------------

L2 DBUS PRS MLH ARP/RARP

--------------------------------------------------------------------

valid : 0x1                                    requst-response : 0x1    >>>ARP request

(1:for ARP request,2: for ARP reply, 3:for RARP request, 4:for RARP reply)

port-id : 0x0                                 last-ethertype : 0x806    >>>Ethernet type, 0x0806 means ARP

packet-type : 0x0                              l2-length-check : 0x0    >>>0 for ingress, 1 for egress

vqi : 0x0                                       packet-length : 0x40    >>>L2 ethernet frame totally length 64 byte

vlan : 0x64                                  destination-index : 0x0    >>>VLAN100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x0                                 trill-encap : 0x0    >>>0 means frame without vlan tag

sender-ip-address: 192.168.1.1                                          >>>sender-ip-address in ARP header

target-ip-address: 192.168.1.2                                          >>>target-ip-address in ARP header

sender-mac-address : 8c60.4fc7.c5bc                                     >>>sender-mac-address in ARP header

target-mac-address : ffff.ffff.ffff                                     >>>target-mac-address in ARP header

destination-mac-address : ffff.ffff.ffff                                >>>sestination mac in ethernet header

source-mac-address : 8c60.4fc7.c5bc                                     >>>source mac in ethernet header

Mit den DBUS-Daten können Sie bestätigen, dass der Frame auf VLAN100 (vlan:0x64) mit einer Quell-MAC-Adresse von 8c60.4fc7.c5bc und einer Ziel-MAC-Adresse von ffff.ffff.ffff empfangen wird. Sie können auch erkennen, dass es sich um einen ARP-Anforderungsframe handelt, der von IP 192.168.1.1 stammt.

Um den Port zu überprüfen, an dem der Frame empfangen wird, verwenden Sie denPIXMBefehl (Port Index Manager). Dieser Befehl zeigt die Zuordnung einer lokalen Ziellogik (LTL) zu einem Front-Port oder einer Gruppe von Front-Ports an.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

Die Ausgabe zeigt, dass der Quellindex 0xb79 dem Port E5/23 zugeordnet ist. Dadurch wird überprüft, ob der Frame an Port E5/23 empfangen wird.

Nachdem Sie bestätigt haben, dass ELAM den relevanten Frame erfasst hat, können Sie das Ergebnis der Weiterleitungsentscheidung anhand der RBUS-Daten überprüfen (beachten Sie, dass einige Ausgaben weggelassen wurden).

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

di-ltl-index : 0xc031                        l3-multicast-di : 0xc00    >>> destination ltl index

source-index : 0xb79                         vlan : 0x64                >>> vlan id after rewritten

vqi : 0x0                                    di2-valid : 0x0            >>> use l3-multicast-di as di if this is 1

routed-frame : 0x0                           copy-cause : 0x0           >>> 0x0 means N7K performs layer 2 switching

Mit den RBUS-Daten können Sie bestätigen, dass der Frame auf VLAN 100 (0x64) geschaltet ist. Um den/die Ausgangsport(e) aus dem di-ltl-index zu ermitteln, verwenden Sie erneut den Befehl pixm.

N77-F3# show system internal pixm info ltl 0xc031

Member info

------------------

IFIDX LTL

---------------------------------

Eth5/24 0x0b78

Eth5/23 0x0b79

Die Ausgabe zeigt, dass die Ports E5/23 und E5/24 beide zu LTL 0xc031 gehören. Das ARP-Paket schaltet auf beide Ports um. Da es von E5/23 empfangen wird, wird es nur von E5/24 gesendet.

Beispiel: IPv4 ELAM-Erfassung

ipv4-l3-elam

In diesem Beispiel wird Host1 im VLAN 100 (mit einer IP-Adresse von 192.168.1.1/24 und einer MAC-Adresse von 8c60.4fc7.c5bc) mit Port E5/23 verbunden und sendet eine ICMP-Anforderung (Internet Control Message Protocol) an Host2. Host 2 hat die IP-Adresse 192.168.2.2/24 und befindet sich in einem anderen VLAN, VLAN200.

Konfigurieren des Triggers

Da sich in diesem Beispiel Host 1 und Host 2 in unterschiedlichen VLANs befinden, wird das ICMP-Paket von Host 1 zu Host 2 über Layer 3 auf N77-F3 geroutet. Ein Layer-2-ELAM wird zum Erfassen des ICMP-Anforderungspakets verwendet.

Sowohl die Quell-IP-Adresse (192.168.1.2) als auch die Ziel-IP-Adresse (192.168.2.2) werden als DBUS-Trigger kombiniert. ELAM erfasst nur Pakete, die mit allen Triggern übereinstimmen.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 11:19:46 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# layer2

module-5(fln-l2-elam)# trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

module-5(fln-l2-elam)# start

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Armed

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed

Starten Sie einen Ping von Host1 (192.168.1.2) an Host2 (192.168.2.2). Sobald das Paket, das mit den Triggern übereinstimmt, von der FE-Instanz 11 empfangen wurde, wird der ELAM-Status als Triggered (Getriggert) angezeigt.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Triggered

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

Interpretieren des Ergebnisses

Stellen Sie sicher, dass RBUS und DBUS die gleiche Sequenznummer haben. Dieser Schritt ist für jede Erfassung notwendig.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x74 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x74      >>same sequence number, valid elam result

Das folgende Beispiel zeigt eine IPv4-ICMP-ELAM-Erfassung. Beachten Sie, dass einige Ausgaben weggelassen wurden.

module-5(fln-l2-elam)# show dbus

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

l4-protocol : 0x1                                           df : 0x0    >>>L4 protocol id, 1 means icmp packet

ttl : 0xff                                   l3-packet-length : 0x54    >>>ip total length is 84 in this packet, ttl is 255

port-id : 0x0                                 last-ethertype : 0x800    >>>Ethernet type, 0x0800 means IPv4

vqi : 0x0                                       packet-length : 0x66    >>>L2 frame length field

vlan : 0x64                                  destination-index : 0x0    >>>vlan id 100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x1                                 trill-encap : 0x0    >>>1 means frame with vlan tag

source-ipv4-address: 192.168.1.2                                        >>>Packet source IP

destination-ipv4-address: 192.168.2.2                                   >>>Packet destination IP

destination-mac-address : 003a.9c40.8ac3                                >>>Packet destination mac

source-mac-address : 8c60.4fc7.c5bc                                     >>>Packet source mac

Mithilfe der DBUS-Daten können Sie bestätigen, dass das Paket über VLAN100 (vlan:0x64) mit der Quell-IP 192.168.1.2 und der Ziel-IP-Adresse 192.168.2.2 empfangen wird. Sie können auch erkennen, dass es sich um ein IPv4-ICMP-Paket handelt.

Führen Sie den Befehl (Port Index Manager) aus, um den Port zu überprüfen, an dem der Frame empfangen wirdPIXM. Dieser Befehl zeigt die Zuordnung einer lokalen Ziellogik (LTL) zu einem Front-Port oder einer Gruppe von Front-Ports an.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

Die Ausgabe zeigt, dass der Quellindex von 0xb79 dem Port E5/23 zugeordnet ist. Dadurch wird bestätigt, dass der Frame an Port E5/23 empfangen wird.

Nachdem Sie bestätigt haben, dass das relevante ICMP-Paket von ELAM erfasst wurde, können Sie das Ergebnis der Weiterleitungsentscheidung anhand der RBUS-Daten überprüfen (beachten Sie, dass einige Ausgaben ausgelassen wurden). Aus den RBUS-Daten geht hervor, dass der Frame von VLAN 100 (0x64) zu VLAN200 geroutet wird.

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

segment-id-valid : 0x0                                 ttl-out : 0xfe      >>>TTL is 254

di-ltl-index : 0xb78                            l3-multicast-di : 0x0      >>>destination port ltl

source-index : 0xb79                                      vlan : 0xc8      >>>vlan id is 200

routed-frame : 0x1                                   copy-cause : 0x0      >>>routed on N7K

Führen Sie den Befehl aus, um den/die Ausgangsport(e) aus dem di-ltl-index zu ermittelnPIXM. Die Ausgabe zeigt, dass der Ausgangsport E5/24 ist.

N77-F3# show system internal pixm info ltl 0xb78

Member info

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/24

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

Zusätzliche Überprüfung (F3 ltl-region)

Die Ausgabe dieses Befehls ist hilfreich, um den Zweck eines LTL zu verstehen, wenn es nicht mit einem physischen Port übereinstimmt. Beispiele: Drop LTL und Inband LTL:

N77-F3# show system internal pixm info ltl-region

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

PIXM VDC 1 LTL MAP Version: 3

Description: LTL Map for Crossbow

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

LTL_TYPE SIZE START END

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

LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f

-------------------------------------------------------------------

LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae

LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad

ELAM-Fehler

Cisco Bug-ID

Bug-Titel

Version reparieren

Cisco Bug-ID CSCux73273

MPLS-Trigger für ELAM auf F3 funktioniert nicht

Keine feste Version; Workaround verwenden

Cisco Bug-ID CSCvm65736

N7k: ELAM-Freigabetrigger clp_elam crash/LC reload

7.3(3)D1(1) oder 8.2(3) oder 8.3(2)