본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Cisco Nexus 7000/7700 F3 모듈에서 ELAM(Embedded Logic Analyzer Module)을 수행하는 데 사용되는 단계에 대해 설명합니다.
이 문서에 설명된 정보를 계속 진행하기 전에 Cisco Nexus 운영 체제(NX-OS) 및 기본 Nexus 아키텍처에 대해 잘 아는 것이 좋습니다.
ELAM은 네트워크 관리자 역할로만 수행할 수 있습니다. 네트워크 관리자 권한이 있는 사용자로 로그인하십시오.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
ELAM은 중단 없이 실시간 패킷을 캡처하여 네트워크 포워딩 문제를 해결하는 데 도움을 주며 성능이나 컨트롤 플레인 리소스에 영향을 주지 않습니다. ELAM은 Cisco TAC(Technical Assistance Center) 엔지니어가 가장 일반적으로 사용하는 강력하고 세분화된 비간섭 툴입니다. 그러나 ELAM 툴이 한 번에 하나의 패킷만 캡처한다는 것을 아는 것이 중요합니다. ELAM이 시작된 후 처음 수신하는 패킷입니다. 흐름의 모든 패킷을 캡처해야 하는 경우 SPAN 또는 ERSPAN을 사용하십시오.
ELAM은 다음과 같은 질문에 답할 수 있습니다.
이 문서에서는 N77-F3 포트 E5/23에 연결된 Host1이 Host2에 트래픽을 전송합니다. ELAM은 Host1에서 Host2로의 개별 프레임을 캡처하는 데 사용됩니다.
N7K에서 ELAM을 실행하려면 먼저 network-admin을 사용하는 사용자로 로그인한 다음 모듈에 연결해야 합니다.
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을 통한 스위치 인그레스(ingress)가 예상됩니다. 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(Forwarding Engine)에서 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
이 예에서는 포트 E5/23에 연결된 VLAN 100의 Host1(IP 주소가 192.168.1.1이고 MAC 주소가 8c60.4fc7.c5bc)이 ARP(Address Resolution Protocol) 요청을 보냅니다. 이 요청은 IP 주소가 192.168.1.2인 동일한 VLAN 100의 다른 호스트에 대한 MAC 주소를 확인하기 위한 것입니다.
Flanker ASIC는 다양한 프레임 유형에 대한 ELAM 트리거를 지원합니다. ELAM 트리거는 프레임 유형과 일치해야 합니다. 프레임이 ARP 프레임이면 트리거도 ARP 옵션으로 설정해야 합니다. ARP 프레임은 Other L2 트리거에서 캡처할 수 없습니다. ELAM을 사용하여 MPLS 프레임을 캡처하는 경우 MPLS 대신 IPv4 또는 IPv6를 선택합니다. 자세한 내용은 버그 섹션을 참조하십시오.
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 주소 필드를 기반으로 프레임이 캡처되므로 이 값만 지정됩니다.
Flanker는 트리거가 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 상태가 Triggered(트리거됨)로 표시됩니다.
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 요청 프레임임을 식별할 수 있습니다.
프레임이 수신된 포트를 확인하려면 (Port Index Manager) 명령을PIXM
사용합니다. 이 명령은 LTL(Local Target Logic)을 전면 포트 또는 전면 포트 그룹에 매핑하는 것을 표시합니다.
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에서만 발송이 됩니다.
이 예에서는 VLAN 100의 Host1(IP 주소 192.168.1.1/24, MAC 주소 8c60.4fc7.c5bc)이 E5/23 포트에 연결되어 Host2에 ICMP(Internet Control Message Protocol) 요청을 보냅니다. 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 패킷임을 식별할 수도 있습니다.
프레임이 수신된 포트를 확인하려면 (Port Index Manager) 명령을PIXM
실행합니다. 이 명령은 LTL(Local Target Logic)을 전면 포트 또는 전면 포트 그룹에 매핑하는 것을 표시합니다.
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
이 명령의 출력은 LTL이 물리적 포트와 일치하지 않을 경우 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
Cisco 버그 ID | 버그 제목 | 버전 수정 |
Cisco 버그 ID CSCux73273 | F3에서 ELAM에 대한 MPLS 트리거가 작동하지 않음 | 고정 버전이 없으므로 해결 방법 사용 |
Cisco 버그 ID CSCvm65736 | N7k: ELAM 릴리스 트리거 clp_elam 충돌/LC 다시 로드 | 7.3(3)D1(1), 8.2(3) 또는 8.3(2) |
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
30-Jan-2024 |
최초 릴리스 |