Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit les étapes utilisées pour effectuer un ELAM (Embedded Logic Analyzer Module) sur un module F3 Cisco Nexus 7000/7700.
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.
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
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.
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 :
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
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
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.
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
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.
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.
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
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
PIXM
Pour 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
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
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) |
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
30-Jan-2024 |
Première publication |