In diesem Dokument werden die Schritte zum Durchführen eines ELAM für Module der Cisco Nexus 7000 (N7K) M-Serie beschrieben, die wichtigsten Ausgaben erläutert und die Interpretation der Ergebnisse beschrieben.
In diesem Beispiel sendet ein Host in VLAN 2500 (10.0.5.101) Port Eth4/1 eine ICMP-Anforderung (Internet Control Message Protocol) an einen Host in VLAN 55 (10.0.3.101) Port Eth3/5. ELAM wird verwendet, um dieses einzelne Paket von 10.0.5.101 bis 10.0.3.101 zu erfassen. Beachten Sie, dass Sie mit ELAM einen einzelnen Frame erfassen können.
Um ein ELAM auf dem Nexus 7000 auszuführen, müssen Sie zunächst eine Verbindung mit dem entsprechenden Modul herstellen (hierzu ist die Netzwerkadministratorberechtigung erforderlich):
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Es wird erwartet, dass der Datenverkehr am Switch auf Port Eth4/1 eingeht. Wenn Sie die Module im System überprüfen, stellen Sie fest, dass Modul 4 ein Modul der M-Serie ist. Denken Sie daran, dass das N7K vollständig verteilt ist und dass die Module, nicht der Supervisor, die Weiterleitungsentscheidungen für den Datenverkehr über Datenflugzeuge treffen.
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
Führen Sie für Module der M-Serie das ELAM auf der Layer 2 (L2) Forwarding Engine (FE) mit dem internen Codenamen Eureka durch. Beachten Sie, dass der L2 FE-Datenbus (DBUS) die ursprünglichen Headerinformationen vor den L2- und Layer 3-Suchvorgängen enthält, und der Ergebnisbus (Result Bus, RBUS) die Ergebnisse nach L3- und L2-Suchvorgängen. Die L3-Suche wird von der FE für L3/Layer 4 (L4) mit dem internen Codenamen Lamira durchgeführt. Hierbei handelt es sich um denselben Prozess, der auch auf der Cisco Catalyst Switch-Plattform der Serie 6500 mit der Supervisor Engine 2T verwendet wird.
N7K-Module der M-Serie können mehrere FEs für jedes Modul verwenden. Sie müssen daher den für den FE verwendeten Eureka-ASIC an Port Eth4/1 ermitteln. Geben Sie den folgenden Befehl ein, um dies zu überprüfen:
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
In der Ausgabe können Sie sehen, dass Port Eth4/1 auf Eureka (L2LKP) Instanz 0 ist.
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
Der Eureka ASIC unterstützt ELAM-Trigger für IPv4, IPv6 und andere. Der ELAM-Trigger muss mit dem Frame-Typ übereinstimmen. Wenn es sich bei dem Frame um einen IPv4-Frame handelt, muss der Trigger ebenfalls IPv4 sein. Ein IPv4-Frame wird nicht mit einem anderen Trigger erfasst. Dieselbe Logik gilt für IPv6.
Bei Nexus-Betriebssystemen (NX-OS) können Sie das Fragezeichen verwenden, um den ELAM-Trigger zu trennen:
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
In diesem Beispiel wird der Frame entsprechend der Quell- und Ziel-IPv4-Adresse erfasst, sodass nur diese Werte angegeben werden.
Eureka verlangt, dass Trigger für den DBUS und den RBUS gesetzt werden. Es gibt zwei verschiedene Paketpuffer (PB), in denen die RBUS-Daten gespeichert werden können. Die Bestimmung der richtigen PB-Instanz hängt vom genauen Modultyp und Eingangsport ab. In der Regel wird empfohlen, PB1 zu konfigurieren. Wenn der RBUS nicht auslöst, wiederholen Sie die Konfiguration mit PB2.
Der DBUS-Trigger lautet wie folgt:
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
Hier der RBUS-Trigger:
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Nachdem Sie die Eingangs-FE ausgewählt und den Trigger konfiguriert haben, können Sie die Erfassung starten:
module-4(eureka-elam)# start
Um den Status des ELAM zu überprüfen, geben Sie den Befehl status ein:
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
Sobald der Frame, der mit dem Trigger übereinstimmt, von der FE empfangen wird, wird der ELAM-Status als Triggered angezeigt:
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
Um die ELAM-Ergebnisse anzuzeigen, geben Sie die Befehle show dbus und show rbus ein. Bei einem hohen Datenverkehrsvolumen, das denselben Triggern entspricht, können DBUS und RBUS auf verschiedenen Frames ausgelöst werden. Daher ist es wichtig, die internen Sequenznummern in den DBUS- und RBUS-Daten zu überprüfen, um sicherzustellen, dass sie übereinstimmen:
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Hier ist der Auszug aus den ELAM-Daten, der für dieses Beispiel am relevantesten ist (einige Ausgaben werden weggelassen):
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
Mithilfe der DBUS-Daten können Sie überprüfen, ob der Frame im VLAN 2500 mit der Quell-MAC-Adresse d0d0.fdb7.3dc2 und der Ziel-MAC-Adresse 0000.0c07.ac65 empfangen wird. Sie können auch sehen, dass es sich um einen IPv4-Frame handelt, der von 10.0.5.101 stammt und für 10.0.3.101 bestimmt ist.
Um zu überprüfen, an welchem Port der Frame empfangen wird, geben Sie den Befehl SRC_INDEX (die Local Target Logic (LTL) der Quelle) ein. Geben Sie den folgenden Befehl ein, um einen LTL einem Port oder einer Portgruppe für das N7K zuzuordnen:
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
Die Ausgabe zeigt, dass SRC_INDEX von 0xa21 Port Eth4/1 zugeordnet ist. Dadurch wird bestätigt, dass der Frame an Port Eth4/1 empfangen wird.
Mit den RBUS-Daten können Sie überprüfen, ob der Frame zum VLAN 55 geroutet wird und ob die TTL in den DBUS-Daten von 0xff auf 0xfe in den RBUS-Daten dekrementiert wird. Sie können sehen, dass die Quell- und Ziel-MAC-Adressen in 8478.ac0e.4741 bzw. 0005.73a9.5541 umgeschrieben werden. Zusätzlich können Sie den Ausgangsport aus DEST_INDEX (Ziel-LTL) bestätigen:
N7K# show system internal pixm info ltl 0x9ed
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth3/5
FLOOD_W_FPOE 0x8017
FLOOD_W_FPOE 0x8016
Die Ausgabe zeigt, dass der DEST_INDEX von 0x9ed Port Eth3/5 zugeordnet ist. Dadurch wird bestätigt, dass der Frame von Port Eth3/5 gesendet wird.
Um zu überprüfen, wie der Switch den LTL-Pool zuweist, geben Sie den Befehl show system internal pixm info ltl-region ein. Die Ausgabe dieses Befehls ist nützlich, um den Zweck eines LTL zu verstehen, wenn er nicht mit einem physischen Port übereinstimmt. Ein gutes Beispiel hierfür ist ein 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
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
11-Oct-2013 |
Erstveröffentlichung |