목차

소개

배경 정보

토폴로지

트리거 구성

결과 해석

관련 정보

소개

이 문서에서는 Nexus 7000 Series 스위치에서 VXLAN 캡슐화 패킷을 캡처하기 위해 ELAM(Embedded Logic Analyzer Module)을 구축하는 방법에 대해 설명합니다.

팁: ELAM에 대한 개요는 ELAM 개요 문서를 참조하십시오.

배경 정보

현재 많은 사용자가 ACI MPOD/MSITE 구축을 위한 IPN/ISN 전송 장치로 N7K를 사용하고 있습니다. 그러나 N9K와 비교할 때, N7K는 풍부한 Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth 조합을 기반으로 ELAM 트리거를 설정하는 강력한 기능이 결여되어 있습니다. 따라서 ELAM 관점에서 특정 VXLAN으로 캡슐화된 패킷이 IPN 에지에서 N7K에 도달하는지 확인하는 것이 어렵습니다. 이 문서에서는 이러한 과제를 해결하기 위한 방법을 간략하게 설명합니다.

토폴로지

이 시나리오에서는 간단한 ACI MPOD 토폴로지가 나와 있습니다. 여기서 IPN은 F3 카드가 있는 N7K입니다. HOST1 및 HOST2는 pod1, HOST3은 pod2에 있습니다. HOST1은 HOST3과 통신할 수 있지만 HOST2는 통신할 수 없습니다. ACI 엔지니어가 수행한 트러블슈팅 결과, HOST2에서 HOST3으로 전송되는 패킷이 pod1의 spine1에서 N7K로 전송되었지만 pod2의 spine2에서 수신되지 않은 것으로 확인되었습니다. 이는 ACI 스파인의 ELAM을 통해 확인되었으며, 이로 인해 패킷이 N7K에서 삭제되고 있다는 의심이 제기되었습니다.

ACI 스파인에 대한 ELAM 결과만을 기준으로 N7K에 문제를 명확히 귀속시킬 수 있습니까? 당연히 아니지 이그레스 spine1의 ELAM에서 패킷을 N7K로 보냈다고 표시했지만, 하위 레이어 문제로 인해 ELAM 주기 이후에도 패킷이 계속 삭제될 수 있으므로 패킷이 물리적으로 N7K에 도달했다고 보장하지는 않습니다. 그러나 N7K 측에서 이러한 특정 패킷을 ELAM으로 전송하면 해당 문제와 관련된 올바른 디바이스를 정확하게 식별하는 데 도움이 될 수 있습니다.

트리거 구성

'l3-packet-length'는 N7K 플랫폼의 거의 모든 다른 세대 LC에 대해 유효한 ELAM 트리거입니다. 따라서 이를 활용하여 IPN N7K에서 ELAM 조건을 설정해봅시다. 이 작업에는 다음과 같이 지정된 패킷 길이의 테스트 패킷을 전송하도록 HOST를 제어하는 작업이 포함됩니다.

# ping 172.28.1.20 packet-size 777

PING 172.28.1.20 (172.28.1.20): 777 data bytes

785 bytes from 172.28.1.20: icmp_seq=0 ttl=252 time=1.246 ms

785 bytes from 172.28.1.20: icmp_seq=1 ttl=252 time=0.846 ms

785 bytes from 172.28.1.20: icmp_seq=2 ttl=252 time=0.84 ms

785 bytes from 172.28.1.20: icmp_seq=3 ttl=252 time=0.814 ms

785 bytes from 172.28.1.20: icmp_seq=4 ttl=252 time=0.817 ms

--- 172.28.1.20 ping statistics ---

5 packets transmitted, 5 packets received, 0.00% packet loss

round-trip min/avg/max = 0.814/0.912/1.246 ms

PING 유틸리티는 모든 유형의 OS에 통합되며 사용 중인 OS에 따라 약간의 매개변수 변동이 있을 뿐입니다. 강조할 중요한 점 중 하나는 OS에서 PING을 시작할 때 지정한 패킷 크기에 주목하는 것입니다. 이 예에서 777B는 순수 데이터 길이를 나타내며, 805B의 최종 IP 길이를 얻기 위해 추가 8B(ICMP 헤더) 및 20B(IP 헤더)가 필요합니다. VXLAN 캡슐화(추가 50B 오버헤드 추가) 후 패킷이 855B에서 N7K에 도달하는 것을 예상할 수 있습니다. ELAM에서 구성합니다.

이 예에서 spine1에 연결되는 인터페이스는 E7/1이고 E7/4는 spine2에 연결됩니다.

# show module 7

Mod  Ports  Module-Type                         Model              Status

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

7    12     10/40 Gbps Ethernet Module          N7K-F312FQ-25      ok

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

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

CARD_TYPE:       12 port 40G

>Front Panel ports:12

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

Device name             Dev role              Abbr num_inst:

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

> Flanker Eth Mac Driver DEV_ETHERNET_MAC       MAC_0  6

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP     L2LKP  6

> Flanker Xbar Driver    DEV_XBAR_INTF          XBAR_INTF 6

> Flanker Queue Driver   DEV_QUEUEING           QUEUE  6

> Sacramento Xbar ASIC   DEV_SWITCH_FABRIC      SWICHF 1

> Flanker L3 Driver      DEV_LAYER_3_LOOKUP     L3LKP  6

> EDC                    DEV_PHY                PHYS   2

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

+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+

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

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

1               0       0       0       0       0

2               0       0       0       0       0

3               1       1       1       1       0

4               1       1       1       1       0

5       0       2       2       2       2       0

6       0       2       2       2       2       0

7       1       3       3       3       3       0

8       1       3       3       3       3       0

9               4       4       4       4       0

10              4       4       4       4       0

11              5       5       5       5       0

12              5       5       5       5       0

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

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

따라서 인스턴스 0에 설정해야 합니다.

module-7# elam asic flanker instance 0

module-7(fln-elam)# layer2

module-7(fln-l2-elam)# trigger dbus ipv4 ingress if l3-packet-length 855

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

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

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

ELAM Slot 7 instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if l3-packet-length 855

L2 DBUS: Triggered

ELAM Slot 7 instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

결과 해석

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

cp = 0x10084d00, buf = 0x10084d00, end = 0x10091050

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

Flanker Instance 00 - Capture Buffer On L2 DBUS:

Status(0x1102), TriggerWord(0x000), SampleStored(0x008),CaptureBufferPointer(0x000)

is_l2_egress: 0x0000, data_size: 0x023

[000]: 14f4a000 08010000 00000000 6d200800 00006000 00000000 01800100 00000000 00000000 00000000 0000306c 7270b100 03434343 43400000 01800040 00000000 0000

0590 00990000 00000000 00000000 00000005 88405000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00050064 200500f0 21800881 f03574

a4 2dbeef00

Printing packet 0

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

L2 DBUS PRS MLH IPV4

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

label-count         : 0x0             mc                  : 0x0

null-label-valid    : 0x0             null-label-exp      : 0x0

null-label-ttl      : 0x0             lbl0-vld            : 0x0

lbl0-eos            : 0x0             lbl0-lbl            : 0x0

lbl0-exp            : 0x0             lbl0-ttl            : 0x0

lbl1-exp            : 0x0             lbl1-ttl            : 0x0

ipv4                : 0x0             ipv6                : 0x0

l4-protocol         : 0x11            df                  : 0x0

mf                  : 0x0             frag                : 0x0

ttl                 : 0x1f            l3-packet-length    : 0x357

option              : 0x0             tos                 : 0x0

sup-eid             : 0x0             header-type         : 0x1

error               : 0x0             redirect            : 0x0

port-id             : 0x0             last-ethertype      : 0x800

l2-frame-type       : 0x0             da-type             : 0x0

packet-type         : 0x0             l2-length-check     : 0x0

ip-da-multicast     : 0x0             ip-multicast        : 0x0

ip-multicast-control: 0x0             ids-check-fail      : 0x0

tr                  : 0x0             outer-cos           : 0x0

inner-cos           : 0x0             vqi-valid           : 0x0

vqi                 : 0x0             packet-length       : 0x369

vlan                : 0x4             destination-index   : 0x0

source-index        : 0x30            bundle-port         : 0x0

acos                : 0x0             outer-drop-eligibility: 0x0

inner-drop-eligibility: 0x0             sg-tag              : 0x0

rbh                 : 0x0             vsl-num             : 0x0

inband-flow-creation-deletion: 0x0             ignore-qoso         : 0x0

ignore-qosi         : 0x0             ignore-aclo         : 0x0

ignore-acli         : 0x0             index-direct        : 0x0

no-stats            : 0x0             dont-forward        : 0x0

notify-index-learn  : 0x1             notify-new-learn    : 0x1

disable-new-learn   : 0x0             disable-index-learn : 0x0

dont-learn          : 0x0             bpdu                : 0x0

ff                  : 0x0             rf                  : 0x0

ccc                 : 0x0             l2                  : 0x0

rdt                 : 0x0             dft                 : 0x0

dfst                : 0x0             status-ce-1q        : 0x0

status-is-1q        : 0x1             trill-encap         : 0x0

mim-valid           : 0x0             dtag-ttl            : 0x0

dtag-ftag           : 0x0             valid               : 0x1

erspan-kpa-valid    : 0x0             recir-shim-vxlan-src-peer-id: 0x0

vn-valid            : 0x0             source-vif          : 0x0

destination-vif     : 0x0             vn-p                : 0x0

sequence-number     : 0x60            vl                  : 0x0

inner-de-valid      : 0x0             de-cfi              : 0x0

second-inner-cos    : 0x0             tunnel-type         : 0x2

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

UDP OTV/LISP TUNNEL BNDL

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

vlan-tag-valid: 0x0             segment-id-valid: 0x0

vl: 0x0             de: 0x0

sgt-valid: 0x0             inner-ip-ttl: 0x0

ip-da-multicast: 0x0             lisp-inst-id: 0x2c8004

lisp-flags: 0xc8            isis-mac-da-valid: 0x0

type: 0x0

shim-valid          : 0x0

segment-id-valid    : 0x0             copp                : 0x0

dti-type-vpnid      : 0x0             segment-id          : 0x0

ib-length-bundle    : 0x58840         mlh-type            : 0x5

ulh-type            : 0x4

source-ipv4-address: 10.0.200.64

destination-ipv4-address: 10.1.224.67

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

destination-mac-address : 00c1.b1c9.c2c4

source-mac-address : 000d.0d0d.0d0d

l3 패킷 길이가 트리거로 사용되므로 ELAM이 캡처할 의도가 없는 백그라운드 패킷에 의해 트리거될 수 있습니다. 따라서 캡처 결과에 대한 이중 교차 확인을 위해 캡처의 다른 필드를 활용하는 것이 중요합니다. 이렇게 하면 캡처된 패킷이 소스 IP(sip), 목적지 IP(dip), ttl(time-to-live), 소스 인덱스 등의 필드를 포함하여 원하는 기준에 맞게 정렬됩니다. 흥미로운 관찰은 N7K에서 VXLAN VNID를 트리거로 사용하는 것을 지원하지 않지만 출력 인터프리터에서 'lisp-inst-id: 0x2c8004' 필드가 VXLAN 헤더의 VNID에 해당한다는 것입니다.

module-7(fln-l2-elam)# dec 0x2c8004

2916356

Leaf3# show system internal epm endpoint ip 172.28.1.20

MAC : 0000.2222.1202 ::: Num IPs : 1

IP# 0 : 172.28.1.20 ::: IP# 0 flags : host-tracked| ::: l3-sw-hit: Yes ::: flags2 :

Vlan id : 186 ::: Vlan vnid : 11494 ::: VRF name : zixu:vrf

BD vnid : 16482209 ::: VRF vnid : 2916356 /* Confirming the VNID from ACI LEAF side */

Phy If : 0x1a00b000 ::: Tunnel If : 0

Interface : Ethernet1/12

Flags : 0x80005c04 ::: sclass : 16388 ::: Ref count : 5

EP Create Timestamp : 01/22/2021 15:42:49.243582

EP Update Timestamp : 02/08/2021 11:26:52.882308

EP Flags : local|IP|MAC|host-tracked|sclass|timer|

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

cp = 0x100a96fc, buf = 0x100a96fc, end = 0x100b5a4c

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

Flanker Instance 00 - Capture Buffer On L2 RBUS:

Status(0x1102), TriggerWord(0x000), SampleStored(0x008),CaptureBufferPointer(0x000)

is_l2_egress: 0x0000, data_size: 0x018

[000]: 0015cb30 0000006d 20000000 03000000 00000000 00000000 00000014 2d8000a0 3c3c0000 00000000 02000000 0f000f00 0c001104 a0000000 20200000 00000000 0000

0000 00000400 00008000 005d0000 001e0002 2bd7c0cf f96002a0 000000ba

Printing packet 0

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

L2 RBUS INGRESS CONTENT

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

pad                 : 0x572c          valid               : 0x1

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

rit-ipv4-id         : 0x0             ipv4-tunnel-encap   : 0x0

rit-mpls-rw         : 0x0             ml2-ptr             : 0x0

ml3-ptr             : 0x0             mark                : 0x0

result-cap3         : 0x0             di1-v5-delta-length : 0x0

di1-v5-delta-length-plus: 0x0             di1-v4-delta-length : 0x0

di1-v4-delta-length-plus: 0x0             di2-delta-length    : 0x0

di2-delta-length-plus: 0x0             ml2-delta-length    : 0x0

ml2-delta-length-plus: 0x0             ml3-delta-length    : 0x0

ml3-delta-length-plus: 0x0             s-vector            : 0x0

lcpu-ff-valid       : 0x0             sup-di-vqi          : 0x0

erspan-term-index-dir: 0x0             erspan-buffer-check : 0x0

l2-tunnel-decapped  : 0x0             l3-delta-length     : 0x0

rit-crc16-valid     : 0x1             rit-crc16           : 0x42d8

vntag-p             : 0x0             frr-recirc          : 0x0

ingress-lif         : 0x5             earl-proxy-vld      : 0x0

md-di-vld           : 0x0             rc                  : 0x0

segment-id-valid    : 0x0             ttl-out             : 0x1e

ttl-mid             : 0x1e            tos-out             : 0x0

tos-in              : 0x0             orig-vlan1          : 0x0

vlan1               : 0x0             source-peer-id      : 0x0

final-ignore-qoso   : 0x0             port-id             : 0x0

cr-type             : 0x1             pup-packet          : 0x0

bpdu                : 0x0             vdc                 : 0x0

tr                  : 0x0             de                  : 0x0

cos                 : 0x0             inner-drop-eligibility: 0x0

inner-cos           : 0x0             acos                : 0x0

di-ltl-index        : 0x3c            l3-multicast-di     : 0x3c

source-index        : 0x30            vlan                : 0x4

index-direct        : 0x0             di1-valid           : 0x1

vqi                 : 0x4a            di2-valid           : 0x0

v5-fpoe-idx         : 0x0             di2-fpoe-idx        : 0x0

l3-multicast-v5     : 0x0             dft                 : 0x0

dfst                : 0x0             l3-learning-ff      : 0x0

result-rbh          : 0x40            di2-cr-type         : 0x0

result-2            : 0x1             dtag-ftag           : 0x0

dtag-ttl            : 0x20            mac-in-mac-op       : 0x0

dvif                : 0x0             result-cap1         : 0x0

result-cap2         : 0x0             erspan-term         : 0x0

erspan-decap        : 0x0             dont-learn          : 0x0

routed-frame        : 0x1             copy-cause          : 0x0

l2-copy-cause       : 0x0             l3-rit-ptr          : 0x5d

sg-tag              : 0x0             trill-nh-id         : 0x0

ttl-in              : 0x1e            fc-up               : 0x0

up-did              : 0x0             did                 : 0x22bd

up-sid              : 0x0             sid                 : 0xf819ff

shim-l2-tunnel-encap: 0x0             shim-ls-hash        : 0xb

shim-rc             : 0x0             shim-lif            : 0x5

shim-replication-pkt: 0x0             shim-router-mac     : 0x1

shim-mark-enable    : 0x0             shim-qos-group-id   : 0x0

shim-destination-table-index: 0x5d            shim-acos-preserve  : 0x0

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

module-7(fln-l2-elam)# show system internal pixmc info ltl-cb ltl 0x30

ltl  | ltl_type | if_index | lc_type | vdc | v4_fpoe | v5_fpoe | base_fpoe_idx | flag

0x0030 |    5    |    Eth7/1    |   2   |  4  |  0x00  |  0x00  |    0x0000    | 0x0

module-7(fln-l2-elam)# show system internal pixmc info ltl-cb ltl 0x3c

ltl  | ltl_type | if_index | lc_type | vdc | v4_fpoe | v5_fpoe | base_fpoe_idx | flag

0x003c |    5    |    Eth7/4    |   2   |  4  |  0x00  |  0x00  |    0x0000    | 0x0

ACI 플러딩 BD 내에서 브로드캐스트, 알 수 없는 유니캐스트 및 멀티캐스트(BUM) 패킷을 캡처하려고 할 때도 동일한 방법론이 작동하며 고정 ARP를 설정하고 호스트에 존재하지 않는 MAC을 가리킨 다음 동일한 방법으로 PING을 시작해야 합니다.

관련 정보

여러 N7K LC에서 ELAM을 사용하는 방법에 대한 자세한 내용은 다음 링크를 참조하십시오.

- ELAM 개요

- N7K M 시리즈 모듈 ELAM 절차

- N7K F1 모듈 ELAM 절차

- N7K F2 모듈 ELAM 절차

- N7K M3 모듈 ELAM 절차

- Cisco 기술 지원 및 다운로드