Ce document décrit les étapes utilisées afin d'effectuer un ELAM sur les modules Cisco Nexus 7000 (N7K) M-Series, explique les sorties les plus pertinentes et décrit comment interpréter les résultats.
Dans cet exemple, un hôte sur VLAN 2500 (10.0.5.101), le port Eth4/1 envoie une requête ICMP (Internet Control Message Protocol) à un hôte sur VLAN 55 (10.0.3.101), le port Eth3/5. ELAM est utilisé afin de capturer ce paquet unique de 10.0.5.101 à 10.0.3.101. Il est important de se rappeler qu’ELAM vous permet de capturer une seule trame.
Pour effectuer un ELAM sur le N7K, vous devez d'abord vous connecter au module approprié (cela nécessite le privilège d'administration de réseau) :
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Le trafic doit entrer dans le commutateur sur le port Eth4/1. Lorsque vous vérifiez les modules dans le système, vous voyez que le Module 4 est un module de la série M. Il est important de se rappeler que le N7K est entièrement distribué et que ce sont les modules, et non le superviseur, qui prennent les décisions de transfert pour le trafic du plan de données.
N7K# show module
Mod Ports Module-Type Model Status
--- ----- ----------------------------------- ------------------ ----------
3 32 10 Gbps Ethernet Module N7K-M132XP-12 ok
4 48 10/100/1000 Mbps Ethernet Module N7K-M148GT-11 ok
5 0 Supervisor module-1X N7K-SUP1 active *
6 0 Supervisor module-1X N7K-SUP1 ha-standby
Pour les modules de la gamme M, exécutez l'ELAM sur le moteur de transfert (FE) de couche 2 (L2) avec le nom de code interne Eureka. Notez que le bus de données FE de couche 2 (DBUS) contient les informations d'en-tête d'origine avant les recherches de couche 2 et de couche 3 (L3), et que le bus de résultats (RBUS) contient les résultats après les recherches de couche 3 et de couche 2. La recherche de couche 3 est effectuée par le FE de couche 3/couche 4 (L4) avec le nom de code interne Lamira, qui est le même processus utilisé sur la plate-forme de commutation de la gamme Cisco Catalyst 6500 qui exécute Supervisor Engine 2T.
Les modules de la gamme M N7K peuvent utiliser plusieurs FE pour chaque module, vous devez donc déterminer l'ASIC Eureka qui est utilisé pour le FE sur le port Eth4/1. Entrez cette commande afin de vérifier ceci :
module-4# show hardware internal dev-port-map
(some output omitted)
--------------------------------------------------------------
CARD_TYPE: 48 port 1G
>Front Panel ports:48
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Eureka DEV_LAYER_2_LOOKUP L2LKP 1
+--------------------------------------------------------------+
+-----------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++--------+
+--------------------------------------------------------------+
FP port|PHYS |SECUR |MAC_0 |RWR_0 |L2LKP |L3LKP |QUEUE |SWICHF
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
Dans le résultat, vous pouvez voir que le port Eth4/1 est sur l'instance 0 d'Eureka (L2LKP).
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
L'Eureka ASIC prend en charge les déclencheurs ELAM pour IPv4, IPv6 et autres. Le déclencheur ELAM doit être aligné sur le type de trame. Si la trame est une trame IPv4, le déclencheur doit également être IPv4. Une trame IPv4 n'est pas capturée avec un autre déclencheur. La même logique s'applique à IPv6.
Avec les systèmes d'exploitation Nexus (NX-OS), vous pouvez utiliser le caractère de point d'interrogation afin de séparer le déclencheur ELAM :
module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if ?
(some output omitted)
destination-flood Destination Flood
destination-index Destination Index
destination-ipv4-address Destination IP Address
destination-mac-address Destination MAC Address
ip-tos IP TOS
ip-total-len IP Total Length
ip-ttl IP TTL
source-mac-address Source MAC Address
vlan-id Vlan ID Number
Dans cet exemple, la trame est capturée en fonction des adresses IPv4 source et de destination, de sorte que seules ces valeurs sont spécifiées.
Eureka exige que les déclencheurs soient définis pour le DBUS et le RBUS. Les données RBUS peuvent résider dans deux tampons de paquets (PB) différents. La détermination de l'instance PB correcte dépend du type de module exact et du port d'entrée. En général, il est recommandé de configurer PB1 et, si le RBUS ne se déclenche pas, répétez la configuration avec PB2.
Voici le déclencheur DBUS :
module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if source-ipv4-address
10.0.5.101 destination-ipv4-address 10.0.3.101 rbi-corelate
Voici le déclencheur RBUS :
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Maintenant que le FE d'entrée est sélectionné et que vous avez configuré le déclencheur, vous pouvez démarrer la capture :
module-4(eureka-elam)# start
Afin de vérifier l'état de l'ELAM, entrez la commande status :
module-4(eureka-elam)# status
Instance: 1
EU-DBUS: Armed
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101
destination-ipv4-address 10.0.3.101 rbi-corelate
EU-RBUS: Armed
trigger rbus rbi pb1 ip if cap2 1
LM-DBUS: Dis-Armed
No configuration
LM-RBUS: Dis-Armed
No configuration
Une fois que la trame qui correspond au déclencheur est reçue par le FE, l'état ELAM indique Triggered :
module-4(eureka-elam)# status
Instance: 1
EU-DBUS: Triggered
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101
destination-ipv4-address 10.0.3.101 rbi-corelate
EU-RBUS: Triggered
trigger rbus rbi pb1 ip if cap2 1
LM-DBUS: Dis-Armed
No configuration
LM-RBUS: Dis-Armed
No configuration
Afin d'afficher les résultats ELAM, entrez les commandes show dbus et show rbus. Si un volume élevé de trafic correspond aux mêmes déclencheurs, le DBUS et le RBUS peuvent se déclencher sur des trames différentes. Par conséquent, il est important de vérifier les numéros d'ordre internes sur les données DBUS et RBUS afin de s'assurer qu'ils correspondent :
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Voici l'extrait des données ELAM qui est le plus pertinent pour cet exemple (certains résultats sont omis) :
module-4(eureka-elam)# show dbus
seq = 0x05
vlan = 2500
source_index = 0x00a21
l3_protocol = 0x0 (0:IPv4, 6:IPv6)
l3_protocol_type = 0x01, (1:ICMP, 2:IGMP, 4:IP, 6:TCP, 17:UDP)
dmac = 00.00.0c.07.ac.65
smac = d0.d0.fd.b7.3d.c2
ip_ttl = 0xff
ip_source = 010.000.005.101
ip_destination = 010.000.003.101
module-4(eureka-elam)# show rbus
seq = 0x05
flood = 0x0
dest_index = 0x009ed
vlan = 55
ttl = 0xfe
data(rit/dmac/recir) = 00.05.73.a9.55.41
data(rit/smac/recir) = 84.78.ac.0e.47.41
Avec les données DBUS, vous pouvez vérifier que la trame est reçue sur le VLAN 2500 avec une adresse MAC source de d0d0.fdb7.3dc2 et une adresse MAC de destination de 000.0c07.ac65. Vous pouvez également voir qu'il s'agit d'une trame IPv4 qui provient de 10.0.5.101, et qui est destinée à 10.0.3.101.
Afin de vérifier sur quel port la trame est reçue, entrez la commande SRC_INDEX (la logique cible locale source (LTL)). Entrez cette commande afin de mapper une LTL à un port ou un groupe de ports pour le N7K :
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
Le résultat montre que SRC_INDEX de 0xa21 mappe au port Eth4/1. Cela confirme que la trame est reçue sur le port Eth4/1.
Avec les données RBUS, vous pouvez vérifier que la trame est routée vers le VLAN 55 et que la durée de vie est décrémentée de 0xff dans les données DBUS à 0xfe dans les données RBUS. Vous pouvez voir que les adresses MAC source et de destination sont réécrites sur 8478.ac0e.4741 et 0005.73a9.5541, respectivement. En outre, vous pouvez confirmer le port de sortie de DEST_INDEX (LTL de destination) :
N7K# show system internal pixm info ltl 0x9ed
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth3/5
FLOOD_W_FPOE 0x8017
FLOOD_W_FPOE 0x8016
Le résultat montre que le DEST_INDEX de 0x9ed mappe au port Eth3/5. Cela confirme que la trame est envoyée depuis le port Eth3/5.
Afin de vérifier comment le commutateur alloue le pool LTL, entrez la commande show system internal pixm info ltl-region. Le résultat de cette commande est utile pour comprendre l'objectif d'une LTL si elle n'est pas associée à un port physique. Un bon exemple de ceci est un Drop LTL :
N7K# show system internal pixm info ltl 0x11a0
0x11a0 is not configured
N7K# show system internal pixm info ltl-region
LTL POOL TYPE SIZE RANGE
=====================================================================
DCE/FC Pool 1024 0x0000 to 0x03ff
SUP Inband LTL 32 0x0400 to 0x041f
MD Flood LTL 1 0x0420
Central R/W 1 0x0421
UCAST Pool 1536 0x0422 to 0x0a21
PC Pool 1720 0x0a22 to 0x10d9
LC CPU Pool 32 0x1152 to 0x1171
EARL Pool 72 0x10da to 0x1121
SPAN Pool 48 0x1122 to 0x1151
UCAST VDC Use Pool 16 0x1172 to 0x1181
UCAST Generic Pool 30 0x1182 to 0x119f
LISP Pool 4 0x1198 to 0x119b
Invalid SI 1 0x119c to 0x119c
ESPAN SI 1 0x119d to 0x119d
Recirc SI 1 0x119e to 0x119e
Drop DI 2 0x119f to 0x11a0
UCAST (L3_SVI_SI) Region 31 0x11a1 to 0x11bf
UCAST (Fex/GPC/SVI-ES) 3648 0x11c0 to 0x1fff
UCAST Reserved for Future Use Region 2048 0x2000 to 0x27ff
======================> UCAST MCAST BOUNDARY <======================
VDC OMF Pool 32 0x2800 to 0x281f
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
11-Oct-2013 |
Première publication |