本文档介绍在Cisco Nexus 7000(N7K)F2模块上执行ELAM所用的步骤,说明最相关的输出,并说明如何解释结果。
在本例中,VLAN 10(10.1.1.101,MAC地址为0050.56a1.1a01)上的主机,端口Eth6/4向VLAN 10(1)上的主机发送Internet控制消息协议(ICMP)请求0.1.1.102,MAC地址为0050.56a1.1aef),端口Eth6/3。使用ELAM捕获从10.1.1.101到10.1.1.102的此单个帧。请记住,ELAM仅允许您捕获单个帧。
要在N7K上执行ELAM,您必须首先连接到相应的模块(这需要网络管理员权限):
N7K# attach module 6
Attaching to module 6 ...
To exit type 'exit', to abort type '$.'
module-6#
流量预期会进入端口Eth6/4上的交换机。当您检查系统中的模块时,您会看到模块6是F2模块。请务必记住,N7K是完全分布式的,并且模块(而不是管理引擎)会为数据平面流量做出转发决策。
N7K# show module 6
Mod Ports Module-Type Model Status
--- ----- --------------------------- ------------------ -------
6 48 1/10 Gbps Ethernet Module N7K-F248XP-25E ok
对于F2模块,在具有内部代号Clipper的第2层(L2)转发引擎(FE)上执行ELAM操作。请注意,L2 FE数据总线(DBUS)包含L2和L3(L3)查找之前的原始报头信息,而结果总线(RBUS)包含L3和L2查找之后的结果。
N7K F2每个模块有12个FE,因此您必须确定端口Eth6/4上用于FE的Clipper ASIC。输入此命令以验证:
module-6# show hardware internal dev-port-map
--------------------------------------------------------------
CARD_TYPE: 48 port 10G
>Front Panel ports:48
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Clipper FWD DEV_LAYER_2_LOOKUP L2LKP 12
+-----------------------------------------------------------------------+
+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+
+-----------------------------------------------------------------------+
FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF
...
3 0 0 0 0 0 0
4 0 0 0 0 0 0
在输出中,您可以看到端口Eth6/4位于Clipper(L2LKP)实例0上。
module-6# elam asic clipper instance 0
module-6(clipper-elam)# layer2
module-6(clipper-l2-elam)#
Clipper ASIC支持多种帧类型的ELAM触发器。ELAM触发器必须与帧类型对齐。如果该帧是IPv4帧,则触发器也必须是IPv4。IPv4帧不会用其他触发器捕获。IPv6也适用同样的逻辑。
Clipper ASIC支持以下帧类型:
module-6(clipper-l2-elam)# trigger dbus ?
arp ARP Frame Format
fc Fc hdr Frame Format
ipv4 IPV4 Frame Format
ipv6 IPV6 Frame Format
other L2 hdr Frame Format
pup PUP Frame Format
rarp Rarp hdr Frame Format
valid On valid packet
使用Nexus操作系统(NX-OS),您可以使用问号字符来分隔ELAM触发器。在F2模块上,ELAM有多个可用选项:
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if ?
<CR>
destination-ipv4-address destination ipv4 address
destination-mac-address Inner destination mac address
source-index Source index
source-ipv4-address source ipv4 address
source-mac-address Inner source mac address
vlan Vlan
etc?
在本例中,根据源IPv4地址和目的IPv4地址捕获帧,因此仅指定这些值。
Clipper要求为DBUS和RBUS设置触发器。这与M系列模块不同,因为无需指定数据包缓冲区(PB)实例。这简化了RBUS触发器。
以下是DBUS触发器:
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address
10.1.1.101 destination-ipv4-address 10.1.1.102
以下是RBUS触发器:
module-6(clipper-l2-elam)# trigger rbus ingress if trig
现在,已选择入口FE并配置了触发器,您可以开始捕获:
module-6(clipper-l2-elam)# start
要检查ELAM的状态,请输入status命令:
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Armed
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Armed
FE收到与触发器匹配的帧后,ELAM状态显示为“已触发:
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Triggered
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Triggered
要显示ELAM结果,请输入show dbus 和show rbus 命令。以下是与本示例最相关的ELAM数据的摘要(省略部分输出):
module-6(clipper-l2-elam)# show dbus
--------------------------------------------------------------------
L2 DBUS CONTENT - IPV4 PACKET
--------------------------------------------------------------------
...
vlan : 0xa destination-index : 0x0
source-index : 0x3 bundle-port : 0x0
sequence-number : 0x3f vl : 0x0
...
source-ipv4-address: 10.1.1.101
destination-ipv4-address: 10.1.1.102
destination-mac-address: 0050.56a1.1aef
source-mac-address: 0050.56a1.1a01
module-6(clipper-l2-elam)# show rbus
--------------------------------------------------------------------
L2 RBUS INGRESS CONTENT
--------------------------------------------------------------------
l2-rbus-trigger : 0x1 sequence-number : 0x3f
di-ltl-index : 0x2 l3-multicast-di : 0x0
source-index : 0x3 vlan-id : 0xa
使用DBUS数据,您可以验证帧是否在VLAN 10(vlan:0xa),源MAC地址为0050.56a1.1a01,目的MAC地址为0050.56a1.1aef。您还可以看到,这是源自10.1.1.101的IPv4帧,发往10.1.1.102。
要验证帧在哪个端口上收到,请输入SRC_INDEX命令(源本地目标逻辑(LTL))。输入此命令可将LTL映射到N7K的端口或端口组:
N7K# show system internal pixm info ltl 0x3
Type LTL
---------------------------------
PHY_PORT Eth6/4
输出显示0x3的源索引映射到端口Eth6/4。这确认在端口Eth6/4上收到了帧。
使用RBUS数据,您可以验证该帧是否在VLAN 10(vlan-id:0xa)。 此外,您可以从di-ltl-index(目标LTL)确认出口端口:
N7K# show system internal pixm info ltl 0x2
Type LTL
---------------------------------
PHY_PORT Eth6/3
输出显示0x2的di-ltl索引映射到端口Eth6/3。这确认帧是从端口Eth6/3交换的。
要验证交换机如何分配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