In dit document worden de stappen beschreven die zijn gebruikt om een ELAM uit te voeren op Cisco Nexus 7000 (N7K) M-Series-modules, worden de meest relevante uitgangen verklaard en wordt beschreven hoe de resultaten moeten worden geïnterpreteerd.
In dit voorbeeld stuurt een host op VLAN 2500 (10.0.5.101), poort Eth4/1 een ICMP-verzoek (Internet Control Message Protocol) naar een host op VLAN 55 (10.0.3.101), poort Eth3/5. ELAM wordt gebruikt om dit enkelvoudige pakket van 10.0.5.101 tot 10.0.3.101 op te nemen. Het is belangrijk om te onthouden dat ELAM u in staat stelt om een enkel frame vast te leggen.
Om een ELAM op de N7K uit te voeren, moet u eerst verbinding maken met de juiste module (hiervoor is de netwerk-admin bevoegdheid nodig):
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Verwacht wordt dat het verkeer de switch op poort Eth4/1 zal binnendringen. Wanneer u de modules in het systeem controleert, ziet u dat module 4 een M-Series module is. Het is belangrijk om te onthouden dat de N7K volledig gedistribueerd is, en dat de modules, niet de supervisor, de doorsturen besluiten voor dataplane verkeer.
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
Voor M-Series modules, voer ELAM op Layer 2 (L2) Forwarding Engine (FE) uit met interne codenaam Eureka. Merk op dat de L2 FE Data Bus (DBUS) de originele headerinformatie bevat voordat de L2 en Layer 3 (L3) lookups, en de Result Bus (RBUS) bevat de resultaten na zowel L3 als L2 lookups. De L3 lookup wordt uitgevoerd door L3/Layer 4 (L4) FE met de interne codenaam Lamira, die het zelfde proces dat op Cisco Catalyst 6500 Series switch platform wordt gebruikt dat Supervisor Engine 2T in werking stelt is.
N7K M-Series modules kunnen meerdere FE's gebruiken voor elke module, dus u moet de Eureka ASIC bepalen die wordt gebruikt voor de FE op poort Eth4/1. Voer deze opdracht in om dit te verifiëren:
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 de output, kunt u zien dat haven Eth4/1 op Eureka (L2LKP) instantie 0 is.
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
De Eureka ASIC ondersteunt ELAM-triggers voor IPv4, IPv6 en anderen. De ELAM-trigger moet uitlijnen op het frametype. Als het frame een IPv4-frame is, moet de trigger ook IPv4 zijn. Een IPv4-frame wordt niet met een andere trigger opgenomen. Dezelfde logica is van toepassing op IPv6.
Met Nexus Operating Systems (NX-OS) kunt u het vraagteken gebruiken om de ELAM-trigger te scheiden:
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 dit voorbeeld wordt het frame opgenomen op basis van de IPv4-adressen van de bron en van de bestemming, zodat alleen die waarden worden gespecificeerd.
Eureka vereist dat de triggers zijn ingesteld voor de DBUS en de RBUS. Er zijn twee verschillende Packet Buffers (PB) waarin de RBUS-gegevens zich kunnen bevinden. Bepaling van de juiste PB-instantie is afhankelijk van het exacte moduletype en de ingangspoort. Meestal wordt aanbevolen om PB1 te configureren en als de RBUS niet start, herhaal dan de configuratie met PB2.
Hier is de DBUS-trigger:
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 is de RBUS-trigger:
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Nu de toegang FE wordt geselecteerd en u de trekker vormde, kunt u de opname beginnen:
module-4(eureka-elam)# start
Om de status van de ELAM te controleren, voert u de opdracht status in:
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
Zodra het kader dat de trekker aanpast door FE wordt ontvangen, toont de status ELAM zoals Teweeggebracht:
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
Om de ELAM-resultaten weer te geven, voert u de show dbus in en toont u opensourceopdrachten. Als er een grote hoeveelheid verkeer is die overeenkomt met dezelfde triggers, kunnen de DBUS en de RBUS op verschillende frames starten. Daarom is het belangrijk om de interne volgnummers op de DBUS- en RBUS-gegevens te controleren om ervoor te zorgen dat ze overeenkomen met:
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Hier is het uittreksel uit de ELAM-gegevens dat het meest relevant is voor dit voorbeeld (een deel van de output wordt weggelaten):
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
Met de DBUS-gegevens kunt u verifiëren dat het frame wordt ontvangen op VLAN 2500 met een MAC-adres van d0d0.fdb7.3dc2 en een MAC-adres van bestemming van 000.0c07.ac65. U kunt ook zien dat dit een IPv4 frame is dat afkomstig is van 10.0.5.101 en bestemd is voor 10.0.3.101.
Om te verifiëren op welke poort het frame is ontvangen, voert u de opdracht SRC_INDEX (de bron Local Target Logic (LTL)) in. Voer deze opdracht in om een LTL in te delen naar een haven of groep poorten voor de N7K:
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
De output toont aan dat de SRC_INDEX van 0xa21 aan haven Eth4/1 in kaart brengt. Dit bevestigt dat het frame wordt ontvangen op poort Eth4/1.
Met de RBUS-gegevens kunt u controleren of het frame naar VLAN 55 is gerouteerd en of de TTL is verlaagd van 0xff in de DBUS-gegevens naar 0xfe in de RBUS-gegevens. U kunt zien dat de bron en de bestemming MAC-adressen worden herschreven naar respectievelijk 8478.ac0e.4741 en 0005.73a9.5541. Daarnaast kunt u de uitgaande poort bevestigen vanaf de DEST_INDEX (bestemmings-LTL):
N7K# show system internal pixm info ltl 0x9ed
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth3/5
FLOOD_W_FPOE 0x8017
FLOOD_W_FPOE 0x8016
De output toont aan dat DEST_INDEX van 0x9ed kaarten aan haven Eth3/5. Dit bevestigt dat het kader wordt verzonden van haven Eth3/5.
Om te verifiëren hoe de switch de LTL-pool toewijst, voert u de opdracht LTL-regio van het display-systeem in met interne pixelinfo. De output van deze opdracht is nuttig om het doel van een LTL te begrijpen als het niet wordt gekoppeld aan een fysieke poort. Een goed voorbeeld hiervan is 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
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
11-Oct-2013 |
Eerste vrijgave |