本文档介绍在Cisco Nexus 7000(N7K)M系列模块上执行ELAM所使用的步骤,说明最相关的输出,并说明如何解释结果。
在本示例中,端口Eth4/1上的VLAN 2500(10.0.5.101)上的主机向VLAN 55(10.0.3.101)上的端口Eth3/5上的主机发送Internet控制消息协议(ICMP)请求。 使用ELAM捕获从10.0.5.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和第3层(L3)查找之前的原始报头信息,结果总线(RBUS)包含L3和L2查找之后的结果。L3查找由内部代号为Lamira的L3/第4层(L4)FE执行,该过程与运行Supervisor Engine 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上。
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地址捕获帧,因此仅指定这些值。
Eureka要求为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
选择入口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状态显示为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
要显示ELAM结果,请输入show dbus和show 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地址000.0c07.ac65。您还可以看到这是一个源自10.0.5.101的IPv4帧,目标为10.0.3.101。
要验证接收帧的端口,请输入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,以及TTL是否从DBUS数据中的0xff减到RBUS数据中的0xfe。您可以看到源和目标MAC地址分别重写为8478.ac0e.4741和005.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
输出显示0x9ed的DEST_INDEX映射到端口Eth3/5。这确认帧是从端口Eth3/5发送的。
要验证交换机如何分配LTL池,请输入show system internal pixm info ltl-region命令。此命令的输出有助于理解LTL不与物理端口匹配时的用途。丢弃 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
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
11-Oct-2013 |
初始版本 |