目录

简介

本文档介绍在Cisco Nexus 7000(N7K)M系列模块上执行ELAM所用的步骤,说明最相关的输出,并说明如何解释结果。

提示:有关ELAM的概述,请参阅ELAM概述文档。

拓扑


在本示例中,VLAN 2500(10.0.5.101)上的主机端口Eth4/1向VLAN 55(10.0.3.101)上的主机端口Eth3/5发送Internet控制消息协议(ICMP)请求. ELAM用于捕获从10.0.5.101 10.0.3.101到10.0.3.101的单个数据包。请记住,ELAM允许您捕获单个帧。

要在N7K上执行ELAM,您必须首先连接到相应的模块(这需要网络管理员权限):

N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#

确定入口转发引擎

流量预期会进入端口Eth4/1上的交换机。当您检查系统中的模块时,您会看到模块4是M系列模块。请务必记住,N7K是完全分布式的,并且模块(而不是管理引擎)会为数据平面流量做出转发决策。

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

对于M系列模块,使用内部代号Eureka在第2层(L2)转发引擎(FE)上执行ELAM操作。请注意,L2 FE数据总线(DBUS)包含L2和L3(L3)查找之前的原始报头信息,而结果总线(RBUS)包含L3和L2查找之后的结果。L3查找由L3/第4层(L4)FE执行,内部代号为Lamira,与运行Supervisor引擎2T的Cisco Catalyst 6500系列交换机平台上使用的过程相同。

N7K M系列模块可以为每个模块使用多个FE,因此您必须确定用于端口Eth4/1上FE的Eureka ASIC。输入此命令以验证:

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

在输出中,您可以看到端口Eth4/1位于Eureka(L2LKP)实0上

注意:对于M系列模块,ELAM语法使用基于1的值,因此在配置ELAM时,例0为实例1。F系列模块的情况并非如此。

module-4# elam asic eureka instance 1
module-4(eureka-elam)#

配置触发器

Eureka ASIC持IPv4、IPv6等的ELAM触发器。ELAM触发器必须与帧类型对齐。如果该帧是IPv4帧,则触发器也必须是IPv4。IPv4帧不会用其他触发器捕获。IPv6也适用同样的逻辑。 

使用Nexus操作系统(NX-OS),您可以使用问号字符来分隔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

在本例中,根据源IPv4地址和目的IPv4地址捕获帧,因此仅指定这些值。

尤利卡要求为DBUS和RBUS设置触发器。RBUS数据可驻留在两个不同的数据包缓冲区(PB)中。正确PB实例的确定取决于确切的模块类型和入口端口。通常,建议您配置PB1,如果RBUS未触发,则对PB2重复配置。

以下是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

以下是RBUS触发器:

module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1

注意:要使RBUS在cap2位上正确触发,需要在DBUS触发器末尾使用rbi-correlate关键字

开始捕获

现在,已选择入口FE并配置了触发器,您可以开始捕获:

module-4(eureka-elam)# start

要检查ELAM的状态,请输入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

FE收到与触发器匹配的帧后,ELAM状态显示为“已触:

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

解释结果

要显示ELAM结果,请输入show dbusshow rbus 命令。如果有大量流量与相同的触发器匹配,则DBUS和RBUS可能会在不同帧上触发。因此,检查DBUS和RBUS数据上的内部序列号以确保它们匹配非常重要:

module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05

以下是与本示例最相关的ELAM数据的摘要(省略部分输出):

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

使用DBUS数据,您可以验证VLAN 2500上是否收到帧,其源MAC地址为d0d0.fdb7.3dc2,目的MAC地址为0000.0c07.ac65。您还可以看到这是IP源自10.0.5.101,并发往10.0.3.101的V4帧,V4 FRAME(VV4帧)从10.0.5.101发往10.0.3.101(VV4帧)发送到10.0.3.101(V),VVANANANANANANANANANANANANANANANANANANANANANANANANANANANANA(NANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANANA

提示:此输出中还包含其他几个有用字段,如服务类型(TOS)值、IP标志、IP长度和L2帧长度。

要验证帧在哪个端口上收到,请输入SRC_INDEX命令(源本地目标逻辑(LTL))。输入此命令可将LTL映射到N7K的端口或端口组:

N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type            LTL
---------------------------------
PHY_PORT       Eth4/1         
FLOOD_W_FPOE   0x8014

输出显示0xa21的SRC_INDEX 映射到端口Eth4/1。这确认该帧在端口Eth4/1上收到。

使用RBUS数据,您可以验证帧是否路由到VLAN 55,以及DBUS数据中的TTL从0xff递减到RBUS数据中的0xfe。您可以看到源MAC地址和目的MAC地址被分别重写为8478.ac0e.47410005.73a9.5541。此外,您可以从DEST_INDEX(目标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

输出显示0x9edDEST_INDEX映射到端口Eth3/5。这确认该帧是从端口Eth3/5发送的

其他验证

要验证交换机如何分配LTL池,请输入show system internal pixm info ltl-region命令。如果LTL与物理端口不匹配,此命令的输出对于了解其用途非常有用。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