Contenu

Introduction

Topologie

Déterminer le moteur de transfert en entrée

Configurer le déclencheur

Démarrer la capture

Interpréter les résultats

Vérification supplémentaire

Introduction

Ce document décrit les étapes utilisées pour exécuter un ELAM sur les modules de la gamme Cisco Nexus 7000 (N7K) M, explique les résultats les plus pertinents et explique comment interpréter les résultats.

Astuce : Reportez-vous au document Aperçu de l'ELAM pour obtenir une vue d'ensemble de l'ELAM.

Topologie

Dans cet exemple, un hôte sur le VLAN 2500 (10.0.5.101), le port Eth4/1 envoie une requête ICMP à un hôte sur le 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 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 4

Attaching to module 4 ...

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

module-4#

Déterminer le moteur de transfert en entrée

Le trafic doit entrer dans le commutateur sur le port Eth4/1. Lorsque vous vérifiez les modules du système, vous constatez que 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 les modules, et non le superviseur, 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 de couche 2 (L2) (FE) 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 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 (couche 4) 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 N7K M 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 la sortie, vous pouvez voir que le port Eth4/1 est sur l'instance 0 Eureka (L2LKP).

Note: Pour les modules de la gamme M, la syntaxe ELAM utilise des valeurs basées sur 1, de sorte que l'instance 0 devient l'instance 1 lorsque vous configurez ELAM. Ce n'est pas le cas pour les modules de la gamme F.

module-4# elam asic eureka instance 1

module-4(eureka-elam)#

Configurer le déclencheur

L'ASIC Eureka prend en charge les déclencheurs ELAM pour IPv4, IPv6 et d'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 Nexus Operating Systems (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. Il existe deux mémoires tampon de paquets (PB) différentes dans lesquelles les données RBUS peuvent résider. La détermination de l'instance PB correcte dépend du type exact de module et du port d'entrée. En règle générale, il est recommandé de configurer PB1. 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

Note: Le mot clé rbi-corrélé à la fin du déclencheur DBUS est requis pour que le RBUS se déclenche correctement sur le bit cap2.

Démarrer la capture

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 s'affiche comme Déclenché :

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

Interpréter les résultats

Afin d'afficher les résultats ELAM, entrez les commandes show dbus et show rbus. Si un volume de trafic élevé 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 de séquence 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 VLAN 2500 avec une adresse MAC source de d0d0.fdb7.3dc2 et une adresse MAC de destination de 0000.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.

Astuce : Plusieurs autres champs utiles ne sont pas inclus dans cette sortie, tels que la valeur TOS (Type of Service), les indicateurs IP, la longueur IP et la longueur de trame L2.

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 le SRC_INDEX de 0xa21 mappe au port Eth4/1. Ceci 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 vers 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 à partir 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. Ceci confirme que la trame est envoyée depuis le port Eth3/5.

Vérification supplémentaire

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