Ce document décrit les étapes utilisées pour exécuter un ELAM sur un module F2 Cisco Nexus 7000 (N7K), explique les résultats les plus pertinents et explique comment interpréter les résultats.
Dans cet exemple, un hôte sur VLAN 10 (10.1.1.101 avec l'adresse MAC 0050.56a1.1a01), le port Eth6/4 envoie une requête ICMP à un hôte qui se trouve également sur VLAN 10 (10.1.1.0 avec l'adresse MAC 050.56a1.1aef), port Eth6/3. ELAM est utilisé afin de capturer cette trame unique de 10.1.1.101 à 10.1.1.102. Il est important de se rappeler que ELAM vous permet de capturer une seule trame.
Pour exécuter un ELAM sur le N7K, vous devez d'abord vous connecter au module approprié (cela nécessite le privilège network-admin) :
N7K# attach module 6
Attaching to module 6 ...
To exit type 'exit', to abort type '$.'
module-6#
Le trafic doit entrer dans le commutateur sur le port Eth6/4. Lorsque vous vérifiez les modules du système, vous voyez que Module 6 est un module F2. Il est important de se rappeler que le N7K est entièrement distribué et que les modules, et non le superviseur, prennent les décisions de transfert pour le trafic du plan de données.
N7K# show module 6
Mod Ports Module-Type Model Status
--- ----- --------------------------- ------------------ -------
6 48 1/10 Gbps Ethernet Module N7K-F248XP-25E ok
Pour les modules F2, exécutez l'ELAM sur le FE (Layer 2) Forwarding Engine) de couche 2 avec le Clipper de nom de code interne. 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 le bus de résultats (RBUS) contient les résultats après les recherches de couche 3 et de couche 2.
Le N7K F2 a 12 FE par module, vous devez donc déterminer l'ASIC Clipper qui est utilisé pour le FE sur le port Eth6/4. Entrez cette commande afin de vérifier :
module-6# show hardware internal dev-port-map
--------------------------------------------------------------
CARD_TYPE: 48 port 10G
>Front Panel ports:48
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Clipper FWD DEV_LAYER_2_LOOKUP L2LKP 12
+-----------------------------------------------------------------------+
+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+
+-----------------------------------------------------------------------+
FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF
...
3 0 0 0 0 0 0
4 0 0 0 0 0 0
Dans la sortie, vous pouvez voir que le port Eth6/4 est sur l'instance 0 Clipper (L2LKP).
module-6# elam asic clipper instance 0
module-6(clipper-elam)# layer2
module-6(clipper-l2-elam)#
L'ASIC Clipper prend en charge les déclencheurs ELAM pour plusieurs types de trame. 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.
L'ASIC Clipper prend en charge les types de trame suivants :
module-6(clipper-l2-elam)# trigger dbus ?
arp ARP Frame Format
fc Fc hdr Frame Format
ipv4 IPV4 Frame Format
ipv6 IPV6 Frame Format
other L2 hdr Frame Format
pup PUP Frame Format
rarp Rarp hdr Frame Format
valid On valid packet
Avec Nexus Operating Systems (NX-OS), vous pouvez utiliser le caractère de point d'interrogation afin de séparer le déclencheur ELAM. Plusieurs options sont disponibles pour ELAM sur le module F2 :
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if ?
<CR>
destination-ipv4-address destination ipv4 address
destination-mac-address Inner destination mac address
source-index Source index
source-ipv4-address source ipv4 address
source-mac-address Inner source mac address
vlan Vlan
etc?
Dans cet exemple, la trame est capturée en fonction des adresses IPv4 source et de destination. Seules ces valeurs sont donc spécifiées.
Le client Clipper nécessite que les déclencheurs soient définis pour le DBUS et le RBUS. Ceci diffère des modules de la gamme M, car il n'est pas nécessaire de spécifier une instance de tampon de paquets (PB). Cela simplifie le déclencheur RBUS.
Voici le déclencheur DBUS :
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address
10.1.1.101 destination-ipv4-address 10.1.1.102
Voici le déclencheur RBUS :
module-6(clipper-l2-elam)# trigger rbus ingress if trig
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-6(clipper-l2-elam)# start
Afin de vérifier l'état de l'ELAM, entrez la commande status :
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Armed
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Armed
Une fois que la trame qui correspond au déclencheur est reçue par le FE, l'état ELAM s'affiche comme Déclenché :
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Triggered
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Triggered
Afin d'afficher les résultats ELAM, entrez les commandes show dbus et show rbus. Voici l'extrait des données ELAM qui est le plus pertinent pour cet exemple (certains résultats sont omis) :
module-6(clipper-l2-elam)# show dbus
--------------------------------------------------------------------
L2 DBUS CONTENT - IPV4 PACKET
--------------------------------------------------------------------
...
vlan : 0xa destination-index : 0x0
source-index : 0x3 bundle-port : 0x0
sequence-number : 0x3f vl : 0x0
...
source-ipv4-address: 10.1.1.101
destination-ipv4-address: 10.1.1.102
destination-mac-address: 0050.56a1.1aef
source-mac-address: 0050.56a1.1a01
module-6(clipper-l2-elam)# show rbus
--------------------------------------------------------------------
L2 RBUS INGRESS CONTENT
--------------------------------------------------------------------
l2-rbus-trigger : 0x1 sequence-number : 0x3f
di-ltl-index : 0x2 l3-multicast-di : 0x0
source-index : 0x3 vlan-id : 0xa
Avec les données DBUS, vous pouvez vérifier que la trame est reçue sur le VLAN 10 (vlan : 0xa) avec l'adresse MAC source 050.56a1.1a01 et l'adresse MAC de destination 0050.56a1.1aef. Vous pouvez également voir qu'il s'agit d'une trame IPv4 qui provient de 10.1.1.101 et qui est destinée à 10.1.1.102.
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 0x3
Type LTL
---------------------------------
PHY_PORT Eth6/4
Le résultat montre qu'un index source de 0x3 mappe au port Eth6/4. Ceci confirme que la trame est reçue sur le port Eth6/4.
Avec les données RBUS, vous pouvez vérifier que la trame est commutée sur VLAN 10 (id-vlan : 0xa). En outre, vous pouvez confirmer le port de sortie à partir de l'index di-ltl (LTL de destination) :
N7K# show system internal pixm info ltl 0x2
Type LTL
---------------------------------
PHY_PORT Eth6/3
Le résultat montre qu'un di-ltl-index de 0x2 mappe au port Eth6/3. Ceci confirme que la trame est commutée à partir du port Eth6/3.
Afin de vérifier comment le commutateur alloue le pool LTL, entrez la commande show system internal pixm info ltl-region. La sortie de cette commande est utile afin de comprendre l'objectif d'une LTL si elle n'est pas mise en correspondance avec un port physique. Un bon exemple en est une LTL Drop :
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