目錄

簡介

必要條件

需求

採用元件

什麼是ELAM?

拓撲

識別輸入轉送引擎

示例：ARP ELAM捕獲

配置觸發器

解釋結果

示例：IPv4 ELAM捕獲

配置觸發器

解釋結果

其他驗證（F3遠端區域）

ELAM錯誤

簡介

本檔案介紹用於在Cisco Nexus 7000/7700 F3模組上執行ELAM（嵌入式邏輯分析器模組）的步驟。

必要條件

需求

思科建議您先熟悉Cisco Nexus作業系統(NX-OS)和基本Nexus架構，然後再繼續處理本文檔中介紹的資訊。

ELAM只能由network-admin角色完成。請確保以具有網路管理員許可權的使用者身份登入。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco Nexus 7700 系列交換器

- 思科N7700 F3系列模組（N77-F324FQ-25,24埠10/40 Gigabit乙太網模組）

- Cisco NX-OS版本8.4.9

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

什麼是ELAM?

ELAM通過捕獲即時資料包而不中斷來協助排除網路轉發問題，並且不會影響效能或控制平面資源。ELAM是思科技術支援中心(TAC)工程師最常使用的強大、精細且無干擾的工具。但是，必須知道ELAM工具一次僅捕獲一個資料包，即ELAM啟動後收到的第一個資料包。如果需要擷取流量的所有封包，請使用SPAN或ERSPAN。

ELAM可以回答以下問題：

- 感興趣的幀是否進入交換機？

- 資料包是從哪個埠和VLAN接收的？

- 傳入資料包的源MAC地址和目的MAC地址是什麼？

- 資料包如何重寫，傳送到哪個埠？

拓撲

在本文中，連線到N77-F3埠E5/23的Host1將流量傳送到Host2。ELAM用於捕獲從Host1到Host2的單個幀。

要在N7K上運行ELAM，首先需要以具有網路管理員的使用者身份登入，然後需要連線到模組。

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

識別輸入轉送引擎

Nexus 7000作為全分散式交換機運行，由入口線卡的轉發引擎做出轉發決策。

本文中，預期相關流量會透過連線埠5/23進入交換器。在N7K的示例中，模組5 是F3模組。

N77-F3# show module 5

Mod Ports            Module-Type                     Model         Status

--- ----- ----------------------------------- ------------------ ----------

5     24      10/40 Gbps Ethernet Module        N77-F324FQ-25       ok

Mod Sw Hw

--- --------------- ------

5 8.4(9) 1.3

對於F3模組，請使用內部代號Flanker在第2層(L2)轉發引擎(FE)上執行ELAM。

module-5# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE: 24 port 40G

>Front Panel ports:24

--------------------------------------------------------------

Device name                  Dev role           Abbr num_inst:

--------------------------------------------------------------

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP      L2LKP 12

FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

22                 10     10      10      10      0,1

23                 11     11      11      11      0,1        >>>Port 23 belongs to FE instance 11

24                 11     11      11      11      0,1

+-----------------------------------------------------------------------+

在此輸出中，埠E5/23顯然屬於FE例項11。

第2層FE資料匯流排(DBUS)在第2層(L2)和第3層(L3)查詢之前承載原始報頭資訊，而結果匯流排(RBUS)包含L3和L2查詢的結果。對於大多數故障排除場景，第2層ELAM捕獲就足夠了。

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# ?

layer2 ELAMs for layer 2

layer3 ELAMs for layer 3

module-5(fln-elam)# layer2

示例：ARP ELAM捕獲

在本範例中，VLAN 100（IP位址為192.168.1.1,MAC位址為8c60.4fc7.c5bc）上連結到連線埠E5/23的主機1傳送位址解析通訊協定(ARP)要求。此請求用於解析同一VLAN 100上另一台主機的MAC地址，其IP地址為192.168.1.2。

配置觸發器

Flanker ASIC支援各種幀型別的ELAM觸發器。ELAM觸發器必須與幀型別相對應。如果該幀是ARP幀，則觸發器也必須設定為ARP選項。ARP幀無法被L2的其他觸發器捕獲。如果使用ELAM捕獲MPLS幀，請選擇IPv4或IPv6，而不是MPLS。如需更多詳細資訊，請參閱錯誤一節。

module-5(fln-l2-elam)# trigger dbus ?

arp ARP Frame Format              >>>capture ARP packet. Other L2 does not work for ARP

fc Fc hdr Frame Format

ipv4 IPV4 Frame Format            >>>capture IPv4 frame

ipv6 IPV6 Frame Format            >>>capture IPv6 frame

mpls MPLS

other L2 hdr Frame Format         >>>capture non-ip l2 frame

rarp RARP Frame Format

在本示例中，根據ARP幀的目標IP地址欄位捕獲該幀，因此僅指定此值。

側翼需要為DBUS和RBUS設定觸發器。簡化了RBUS觸發器trig，匹配與DBUS觸發器相同的條件。

module-5(fln-l2-elam)# trigger dbus arp ingress if target-ip-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

配置觸發器後，即可開始捕獲。

module-5(fln-l2-elam)# start

要驗證ELAM是否已捕獲任何資料包，可以運行status命令。 「Armed」一詞表示尚未捕獲到匹配的資料包。

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Armed                  >>>no matched packet

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed                  >>>no matched packet

從Host1(192.168.1.1)對192.168.1.2執行ping操作。由於Host1上沒有ARP條目，因此Host1在廣播資料包中傳送ARP請求。FE收到ARP幀後，會檢查觸發器。如果存在匹配項，ELAM將捕獲此幀的轉發決策，然後將ELAM狀態顯示為觸發。

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Triggered              >>Packet hit

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered              >>Packet hit

解釋結果

只有當DBUS和RBUS捕獲了同一資料包時，結果才有效。因此，有必要檢查DBUS和RBUS結果中的序列號。如果它們不匹配，可以重新啟動並再次捕獲它們，直到它們對齊。

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x7 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x7

建議首先檢查DBUS輸出，因為它包含任何重寫前的資料。以下是ARP ELAM捕獲的示例。請注意，某些輸出已被省略。

module-5(fln-l2-elam)# show dbus

cp = 0x20c6ad1c, buf = 0x20c6ad1c, end = 0x20c7706c

--------------------------------------------------------------------

Flanker Instance 11 - Capture Buffer On L2 DBUS:

<snip>

--------------------------------------------------------------------

L2 DBUS PRS MLH ARP/RARP

--------------------------------------------------------------------

valid : 0x1                                    requst-response : 0x1    >>>ARP request

(1:for ARP request,2: for ARP reply, 3:for RARP request, 4:for RARP reply)

port-id : 0x0                                 last-ethertype : 0x806    >>>Ethernet type, 0x0806 means ARP

packet-type : 0x0                              l2-length-check : 0x0    >>>0 for ingress, 1 for egress

vqi : 0x0                                       packet-length : 0x40    >>>L2 ethernet frame totally length 64 byte

vlan : 0x64                                  destination-index : 0x0    >>>VLAN100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x0                                 trill-encap : 0x0    >>>0 means frame without vlan tag

sender-ip-address: 192.168.1.1                                          >>>sender-ip-address in ARP header

target-ip-address: 192.168.1.2                                          >>>target-ip-address in ARP header

sender-mac-address : 8c60.4fc7.c5bc                                     >>>sender-mac-address in ARP header

target-mac-address : ffff.ffff.ffff                                     >>>target-mac-address in ARP header

destination-mac-address : ffff.ffff.ffff                                >>>sestination mac in ethernet header

source-mac-address : 8c60.4fc7.c5bc                                     >>>source mac in ethernet header

使用DBUS資料，您可以確認在VLAN100(vlan:0x64)上收到該幀，源MAC地址為8c60.4fc7.c5bc，目的MAC地址為ffff.ffff.ffff。您還可以確定這是源自IP 192.168.1.1的ARP請求幀。

要檢驗接收幀的埠，請使用PIXM（埠索引管理器）命令。此命令顯示本地目標邏輯(LTL)到前埠或前埠組的對映。

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

輸出顯示，0xb79的來源索引映射到連線埠E5/23。這可驗證埠E5/23上是否接收到該幀。

在確認ELAM已捕獲到感興趣的幀後，您可以使用RBUS資料驗證轉發決策的結果（請注意，某些輸出已被省略）。

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

di-ltl-index : 0xc031                        l3-multicast-di : 0xc00    >>> destination ltl index

source-index : 0xb79                         vlan : 0x64                >>> vlan id after rewritten

vqi : 0x0                                    di2-valid : 0x0            >>> use l3-multicast-di as di if this is 1

routed-frame : 0x0                           copy-cause : 0x0           >>> 0x0 means N7K performs layer 2 switching

通過RBUS資料，您可以確認幀是否在VLAN 100(0x64)上交換。要通過di-ltl-index確定出口埠，請再次使用pixm命令。

N77-F3# show system internal pixm info ltl 0xc031

Member info

------------------

IFIDX LTL

---------------------------------

Eth5/24 0x0b78

Eth5/23 0x0b79

輸出顯示，埠E5/23和E5/24都屬於LTL 0xc031。ARP資料包會交換到這兩個埠。當從E5/23接收時，它只從E5/24發出。

示例：IPv4 ELAM捕獲

ipv4 l3 elam

在本範例中，VLAN 100上的Host1(IP位址為192.168.1.1/24,MAC位址為8c60.4fc7.c5bc)連線到連線埠E5/23，並向主機2傳送網際網路控制訊息通訊協定(ICMP)要求。Host2的IP地址為192.168.2.2/24，位於不同的VLAN VLAN200上。

配置觸發器

在本範例中，由於Host1和Host2位於不同的VLAN中，因此從Host1到Host2的ICMP封包會通過N77-F3上的第3層路由。第2層ELAM用於捕獲ICMP請求資料包。

來源IP(192.168.1.2)和目的地IP(192.168.2.2)都作為DBUS觸發器組合。ELAM僅捕獲與所有觸發器匹配的資料包。

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 11:19:46 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# layer2

module-5(fln-l2-elam)# trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

module-5(fln-l2-elam)# start

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Armed

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed

開始從Host1(192.168.1.2)對Host2(192.168.2.2)執行ping。FE例項11收到與觸發器匹配的資料包後，ELAM狀態顯示為Triggered。

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Triggered

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

解釋結果

確保RBUS和DBUS具有相同的序列號。每次捕獲時都需要執行此步驟。

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x74 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x74      >>same sequence number, valid elam result

以下是IPv4 ICMP ELAM擷取範例。請注意，某些輸出已被省略。

module-5(fln-l2-elam)# show dbus

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

l4-protocol : 0x1                                           df : 0x0    >>>L4 protocol id, 1 means icmp packet

ttl : 0xff                                   l3-packet-length : 0x54    >>>ip total length is 84 in this packet, ttl is 255

port-id : 0x0                                 last-ethertype : 0x800    >>>Ethernet type, 0x0800 means IPv4

vqi : 0x0                                       packet-length : 0x66    >>>L2 frame length field

vlan : 0x64                                  destination-index : 0x0    >>>vlan id 100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x1                                 trill-encap : 0x0    >>>1 means frame with vlan tag

source-ipv4-address: 192.168.1.2                                        >>>Packet source IP

destination-ipv4-address: 192.168.2.2                                   >>>Packet destination IP

destination-mac-address : 003a.9c40.8ac3                                >>>Packet destination mac

source-mac-address : 8c60.4fc7.c5bc                                     >>>Packet source mac

透過DBUS資料，您可以確認在VLAN100(vlan:0x64)上收到封包，來源IP為192.168.1.2，目的地IP為192.168.2.2。您還可以識別這是IPv4 ICMP資料包。

要驗證接收幀的埠，請運行PIXM(Port Index Manager)命令。此命令顯示本地目標邏輯(LTL)到前埠或前埠組的對映。

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

輸出顯示，0xb79的來源索引映射到連線埠E5/23。這確認埠E5/23上接收到該幀。

在確認ELAM已捕獲感興趣的ICMP資料包後，您可以使用RBUS資料驗證轉發決策的結果（請注意，某些輸出已被忽略）。從RBUS資料中，您可以看到幀從VLAN 100(0x64)路由到VLAN200。

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

segment-id-valid : 0x0                                 ttl-out : 0xfe      >>>TTL is 254

di-ltl-index : 0xb78                            l3-multicast-di : 0x0      >>>destination port ltl

source-index : 0xb79                                      vlan : 0xc8      >>>vlan id is 200

routed-frame : 0x1                                   copy-cause : 0x0      >>>routed on N7K

要通過di-ltl-index確定出口埠，請運行PIXM命令。輸出顯示輸出埠為E5/24。

N77-F3# show system internal pixm info ltl 0xb78

Member info

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/24

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

其他驗證(F3 ltl-region)

如果LTL與物理埠不匹配，此命令的輸出有助於瞭解它的用途。示例包括Drop LTL和Inband LTL:

N77-F3# show system internal pixm info ltl-region

===========================================================

PIXM VDC 1 LTL MAP Version: 3

Description: LTL Map for Crossbow

===========================================================

LTL_TYPE SIZE START END

========================================================================

LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f

-------------------------------------------------------------------

LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae

LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad

ELAM錯誤

思科錯誤 ID

錯誤標題

修復版本

思科錯誤ID CSCux73273

F3上ELAM的MPLS觸發器無法正常工作

沒有固定版本，請使用解決方法

思科錯誤ID CSCvm65736

N7k:ELAM發佈觸發clp_elam crash/LC重新載入

7.3(3)D1(1)或8.2(3)或8.3(2)