Questo documento descrive i passaggi utilizzati per eseguire un ELAM sui moduli Cisco Nexus serie 7000 (N7K) M, spiega gli output più rilevanti e come interpretare i risultati.
Nell'esempio, un host sulla VLAN 2500 (10.0.5.101), la porta Eth4/1 invia una richiesta ICMP (Internet Control Message Protocol) a un host sulla VLAN 5 (10.0.3.101), la porta Eth3/5. ELAM viene usato per acquisire questo singolo pacchetto da 10.0.5.101 a 10.0.3.101. È importante ricordare che ELAM consente di acquisire un singolo fotogramma.
Per eseguire un ELAM sulla N7K, è necessario prima connettersi al modulo appropriato (è necessario avere il privilegio di amministratore di rete):
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Lo switch deve ricevere il traffico sulla porta Eth4/1. Se si controllano i moduli del sistema, si osserverà che il modulo 4 è un modulo della serie M. È importante ricordare che la N7K è completamente distribuita e che i moduli, non il supervisore, prendono le decisioni di inoltro per il traffico della corsia dati.
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
Per i moduli serie M, eseguire l'ELAM sul Layer 2 (L2) Forwarding Engine (FE) con il nome in codice interno Eureka. Il bus di dati L2 FE (DBUS) contiene le informazioni di intestazione originali prima delle ricerche L2 e Layer 3 (L3), mentre il bus di risultati (RBUS) contiene i risultati dopo entrambe le ricerche L3 e L2. La ricerca L3 viene eseguita dal layer L3/layer 4 (L4) FE con nome in codice interno Lamira, che è lo stesso processo utilizzato sulla piattaforma dello switch Cisco Catalyst serie 6500 con Supervisor Engine 2T.
I moduli serie M N7K possono utilizzare più FE per ciascun modulo, quindi è necessario determinare l'ASIC Eureka utilizzato per FE sulla porta Eth4/1. Per verificarlo, immettere questo comando:
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
Nell'output, è possibile vedere che la porta Eth4/1 è sull'istanza Eureka (L2LKP) 0.
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
Eureka ASIC supporta i trigger ELAM per IPv4, IPv6 e altri. Il trigger ELAM deve essere allineato al tipo di frame. Se il frame è di tipo IPv4, il trigger deve essere anch'esso IPv4. Un frame IPv4 non viene acquisito con un altro trigger. La stessa logica si applica a IPv6.
Con Nexus Operating Systems (NX-OS), è possibile utilizzare il punto interrogativo per separare il trigger 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
Nell'esempio, il frame viene acquisito in base agli indirizzi IPv4 di origine e di destinazione, quindi vengono specificati solo i valori specificati.
Eureka richiede l'impostazione di trigger per DBUS e RBUS. I dati RBUS possono risiedere in due diversi Packet Buffer (PB). La determinazione della variante PB corretta dipende dal tipo esatto di modulo e dalla porta in entrata. In genere, è consigliabile configurare PB1 e, se RBUS non viene attivato, ripetere la configurazione con PB2.
Di seguito è riportato il trigger 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
Di seguito è riportato il trigger RBUS:
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Dopo aver selezionato la FE in entrata e configurato il trigger, è possibile avviare l'acquisizione:
module-4(eureka-elam)# start
Per controllare lo stato dell'ELAM, immettere il comando 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
Una volta che il frame che corrisponde al trigger viene ricevuto dal FE, lo stato ELAM viene visualizzato come 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
Per visualizzare i risultati ELAM, immettere i comandi show dbus e show rbus. Se il volume di traffico è elevato e corrisponde agli stessi trigger, DBUS e RBUS potrebbero attivare due frame diversi. È quindi importante controllare i numeri di sequenza interni sui dati DBUS e RBUS per verificare che corrispondano:
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Di seguito è riportato l'estratto dei dati ELAM più importante per questo esempio (alcuni output sono omessi):
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
Con i dati DBUS, è possibile verificare che il frame venga ricevuto sulla VLAN 2500 con un indirizzo MAC di origine d0d0.fdb7.3dc2 e un indirizzo MAC di destinazione di 0000.0c07.ac65. Inoltre, questo è un frame IPv4 con origine 10.0.5.101 e destinazione 10.0.3.101.
Per verificare su quale porta viene ricevuto il frame, immettere il comando SRC_INDEX (la logica di destinazione locale (LTL) di origine). Immettere questo comando per eseguire il mapping di una LTL a una porta o a un gruppo di porte per il modello N7K:
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
L'output mostra che il valore SRC_INDEX di 0xa21 è mappato alla porta Eth4/1. Ciò conferma che il frame viene ricevuto sulla porta Eth4/1.
Con i dati RBUS, è possibile verificare che il frame sia instradato alla VLAN 55 e che il valore TTL sia diminuito da 0xff nei dati DBUS a 0xfe nei dati RBUS. Come si può notare, gli indirizzi MAC di origine e destinazione vengono riscritti rispettivamente in 8478.ac0e.4741 e 005.73a9.5541. Inoltre, è possibile confermare la porta in uscita da DEST_INDEX (LTL di destinazione):
N7K# show system internal pixm info ltl 0x9ed
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth3/5
FLOOD_W_FPOE 0x8017
FLOOD_W_FPOE 0x8016
L'output mostra che DEST_INDEX di 0x9ed è mappato alla porta Eth3/5. Ciò conferma che il frame è inviato dalla porta Eth3/5.
Per verificare in che modo lo switch alloca il pool LTL, immettere il comando show system internal pixm info ltl-region. L'output di questo comando è utile per comprendere lo scopo di una LTL se non corrisponde a una porta fisica. Un buon esempio è 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
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
11-Oct-2013 |
Versione iniziale |