Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Qu'est-ce que ELAM ?

Topologie

Identification du moteur de transfert entrant

Exemple : capture ARP ELAM

Configuration du déclencheur

Interprétation du résultat

Exemple : capture ELAM IPv4

Configuration du déclencheur

Interprétation du résultat

Vérification supplémentaire (région ltl F3)

punaises ELAM

Introduction

Ce document décrit les étapes utilisées pour effectuer un ELAM (Embedded Logic Analyzer Module) sur un module F3 Cisco Nexus 7000/7700.

Conditions préalables

Exigences

Cisco vous recommande de bien connaître le système d'exploitation Cisco Nexus (NX-OS) et l'architecture de base de Nexus avant de poursuivre avec les informations décrites dans ce document.

ELAM ne peut être effectué que par le rôle d'administrateur réseau. Assurez-vous de vous connecter en tant qu'utilisateur disposant du privilège d'administrateur réseau.

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Cisco Nexus 7700 Series Switches

- Modules de la gamme Cisco N7700 F3 (N77-F324FQ-25, modules 24 ports 10/40 Gigabit Ethernet)

- Cisco NX-OS versions 8.4.9

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Qu'est-ce que ELAM ?

L’ELAM aide à résoudre les problèmes de transfert réseau en capturant les paquets en temps réel sans interruption, et n’a pas d’impact sur les performances ou les ressources du plan de contrôle. L'ELAM est un outil puissant, granulaire et non intrusif, généralement utilisé par les ingénieurs du centre d'assistance technique de Cisco (TAC). Cependant, il est essentiel de savoir que l'outil ELAM ne capture qu'un seul paquet à la fois, le premier paquet reçu après le démarrage d'ELAM. Si vous devez capturer tous les paquets d'un flux, utilisez SPAN ou ERSPAN.

L'ELAM peut répondre à des questions telles que :

- La trame d’intérêt entre-t-elle dans le commutateur ?

- De quel port et de quel VLAN le paquet est-il reçu ?

- Quelles sont les adresses MAC source et de destination du paquet entrant ?

- Comment le paquet est-il réécrit et vers quel port est-il envoyé ?

Topologie

Dans cet article, l'hôte 1 connecté au port E5/23 N77-F3 envoie le trafic à l'hôte 2. ELAM est utilisé pour capturer la trame individuelle de l’hôte 1 vers l’hôte 2.

Pour exécuter un ELAM sur le N7K, vous devez d'abord vous connecter en tant qu'utilisateur avec network-admin, puis vous devez vous connecter au module.

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

Identification du moteur de transfert entrant

Le Nexus 7000 fonctionne comme un commutateur entièrement distribué, avec des décisions de transfert prises par le moteur de transfert de la carte de ligne d'entrée.

Dans cet article, le trafic concerné doit entrer dans le commutateur via le port 5/23. Dans l'exemple du N7K, le mModule 5 est un module F3.

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

Pour les modules F3, exécutez l'ELAM sur le moteur de transfert (FE) de couche 2 (L2) avec le nom de code interne Flanker.

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

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

Dans ce résultat, il est évident que le port E5/23 appartient à l'instance FE 11.

Le bus de données FE de couche 2 (DBUS) transporte les informations d'en-tête d'origine avant les recherches de couche 2 (L2) et de couche 3 (L3), tandis que le bus de résultats (RBUS) contient les résultats des recherches de couche 3 et de couche 2. Pour la plupart des scénarios de dépannage, une capture ELAM de couche 2 est suffisante.

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

Exemple : capture ARP ELAM

Dans cet exemple, l'hôte 1 sur le VLAN 100 (avec l'adresse IP 192.168.1.1 et l'adresse MAC 8c60.4fc7.c5bc), lié au port E5/23, envoie une requête ARP (Address Resolution Protocol). Cette requête est destinée à résoudre l'adresse MAC d'un autre hôte sur le même VLAN 100, qui a l'adresse IP 192.168.1.2.

Configuration du déclencheur

L'ASIC Flanker prend en charge les déclencheurs ELAM pour différents types de trame. Le déclencheur ELAM doit correspondre au type de trame. Si la trame est une trame ARP, le déclencheur doit également être défini sur l’option ARP. Une trame ARP ne peut pas être capturée par le déclencheur Autre couche 2. Si vous utilisez ELAM pour capturer une trame MPLS, sélectionnez IPv4 ou IPv6 au lieu de MPLS. Pour plus de détails, veuillez vous reporter à la section bogue.

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

Dans cet exemple, la trame est capturée en fonction du champ d’adresse IP cible de la trame ARP. Par conséquent, seule cette valeur est spécifiée.

Flanker nécessite que des déclencheurs soient définis pour le DBUS et le RBUS. Le déclencheur RBUS est simplifié,trig correspond aux mêmes critères que le déclencheur DBUS.

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

Maintenant que vous avez configuré le déclencheur, vous pouvez démarrer la capture.

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

Pour vérifier si ELAM a capturé des paquets, vous pouvez exécuter la commande suivantestatus: Le terme Armed indique qu'aucun paquet correspondant n'a encore été capturé.

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

Envoyez une requête ping de l’hôte 1 (192.168.1.1) vers 192.168.1.2. Comme il n’y a pas d’entrée ARP sur l’hôte 1, ce dernier envoie la requête ARP dans un paquet de diffusion. Une fois que le FE reçoit la trame ARP, il vérifie le déclencheur. En cas de correspondance, ELAM capture la décision de transmission de cette trame, et l'état ELAM est alors affiché comme Déclenché.

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

Interprétation du résultat

Le résultat est valide uniquement si le DBUS et le RBUS ont capturé le même paquet. Par conséquent, il est nécessaire de vérifier le numéro d'ordre dans les résultats DBUS et RBUS. S'ils ne correspondent pas, vous pouvez les redémarrer et les capturer à nouveau jusqu'à ce qu'ils s'alignent.

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

Il est conseillé de vérifier d'abord la sortie DBUS, car elle contient des données avant toute réécriture. Voici un exemple de capture ARP ELAM. Notez que certains résultats ont été omis.

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

Avec les données DBUS, vous pouvez confirmer que la trame est reçue sur VLAN100 (vlan : 0x64) avec une adresse MAC source de 8c60.4fc7.c5bc et une adresse MAC de destination de ffff.ffff.ffff. Vous pouvez également identifier qu'il s'agit d'une trame de requête ARP provenant de l'adresse IP 192.168.1.1.

Pour vérifier le port sur lequel la trame est reçue, utilisez la commandePIXM(Port Index Manager). Cette commande affiche le mappage d'une logique cible locale (LTL) à un port avant ou à un groupe de ports avant.

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

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

Type LTL

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

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

Le résultat révèle qu'un index source de 0xb79 mappe au port E5/23. Cela permet de vérifier que la trame est reçue sur le port E5/23.

Après avoir confirmé que ELAM a capturé la trame intéressante, vous pouvez vérifier le résultat de la décision de transfert à l’aide des données RBUS (notez que certains résultats ont été omis).

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

Avec les données RBUS, vous pouvez confirmer que la trame est commutée sur le VLAN 100 (0x64). Pour déterminer le ou les ports de sortie à partir du di-ltl-index, utilisez à nouveau la commande pixm.

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

Member info

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

IFIDX LTL

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

Eth5/24 0x0b78

Eth5/23 0x0b79

Le résultat montre que les ports E5/23 et E5/24 appartiennent tous deux à LTL 0xc031. Le paquet ARP commute vers ces deux ports. Comme il est reçu de E5/23, il n'est envoyé qu'à partir de E5/24.

Exemple : capture ELAM IPv4

elam de couche 3 ipv4

Dans cet exemple, l'hôte 1 sur le VLAN 100 (avec l'adresse IP 192.168.1.1/24 et l'adresse MAC 8c60.4fc7.c5bc) est connecté au port E5/23 et envoie une requête ICMP (Internet Control Message Protocol) à l'hôte 2. L’hôte 2 a l’adresse IP 192.168.2.2/24 et se trouve sur un autre VLAN, VLAN200.

Configuration du déclencheur

Dans cet exemple, étant donné que l’hôte 1 et l’hôte 2 se trouvent dans des VLAN différents, le paquet ICMP de l’hôte 1 à l’hôte 2 est routé via la couche 3 sur N77-F3. Un ELAM de couche 2 est utilisé pour capturer le paquet de requête ICMP.

L'adresse IP source (192.168.1.2) et l'adresse IP de destination (192.168.2.2) sont toutes deux combinées en tant que déclencheurs DBUS. ELAM capture uniquement le paquet qui correspond à tous les déclencheurs.

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

Lancez une requête ping de l’hôte 1 (192.168.1.2) vers l’hôte 2 (192.168.2.2). Une fois que le paquet qui correspond aux déclencheurs est reçu par l'instance FE 11, l'état ELAM s'affiche comme Déclenché.

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

Interprétation du résultat

Assurez-vous que les bus RBUS et DBUS ont le même numéro d'ordre. Cette étape est nécessaire pour chaque capture.

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

Voici un exemple de capture ELAM ICMP IPv4. Notez que certains résultats ont été omis.

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

Avec les données DBUS, vous pouvez confirmer que le paquet est reçu sur VLAN100 (vlan : 0x64) avec une adresse IP source de 192.168.1.2 et une adresse IP de destination de 192.168.2.2. Vous pouvez également identifier qu'il s'agit d'un paquet ICMP IPv4.

Pour vérifier le port sur lequel la trame est reçue, exécutez la commandePIXM(Port Index Manager). Cette commande affiche le mappage d'une logique cible locale (LTL) à un port avant ou à un groupe de ports avant.

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

Le résultat montre qu'un index source de 0xb79 mappe au port E5/23. Cela confirme que la trame est reçue sur le port E5/23.

Après avoir confirmé qu’ELAM a capturé le paquet ICMP concerné, vous pouvez vérifier le résultat de la décision de transfert à l’aide des données RBUS (notez que certaines sorties ont été omises). À partir des données RBUS, vous pouvez voir que la trame est routée du VLAN 100 (0x64) au VLAN 200.

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

PIXMPour déterminer le ou les ports de sortie à partir du di-ltl-index, exécutez la commande . Le résultat indique que le port de sortie est E5/24.

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

Vérification supplémentaire (F3 ltl-region)

Le résultat de cette commande est utile pour comprendre l'objectif d'une LTL si elle ne correspond pas à un port physique. Exemples : Drop LTL et 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

punaises ELAM

ID de débogage Cisco

Titre du bogue

Corriger la version

ID de bogue Cisco CSCux73273

Le déclencheur Mpls pour ELAM sur F3 ne fonctionne pas

Pas de version fixe, utilisez la solution de contournement

ID de bogue Cisco CSCvm65736

N7k : déclencheur de libération ELAM clp_elam crash/reload LC

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