목차

소개

배경 정보

개요

토폴로지

GUI 확인

알려진 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로

인그레스 리프 소스 EP MAC 학습

인그레스 리프 대상 MAC 끝점 조회

인그레스 리프 스위치에서 스파인 스위치로 전송

스파인 포워딩

이그레스 리프 원격 EP MAC 학습

이그레스 리프 대상 MAC 조회

두 엔드포인트가 스파인 스위치 COOP EP 리포에서 올바르게 학습되었는지 확인합니다.

ELAM Assistant를 사용한 ELAM 출력

CLI를 사용하는 인그레스 리프 ELAM

추적을 사용하여 흐름 추적

알 수 없는 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로 - 플러드 모드의 BD

BD GIPo 찾기

ELAM — 인그레스 리프 — 플러딩된 트래픽

FTAG 토폴로지 그리기

ELAM — 이그레스 리프 — 플러딩된 트래픽

알 수 없는 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로 - 하드웨어 프록시의 BD

레이어 2 포워딩 요약

ACI 패브릭 레이어 2 포워딩 동작

소개

이 문서에서는 ACI에서 레이어 2 포워딩을 이해하고 문제를 해결하는 단계를 설명합니다

배경 정보

이 문서의 자료는 Cisco Application Centric Infrastructure, Second Edition 트러블슈팅 특히 패브릭 내 포워딩 - L2 포워딩: 동일한 BD의 엔드포인트 2개 - 유니캐스트 라우팅 없음 장.

개요

이 섹션에서는 동일한 브리지 도메인 및 동일한 서브넷의 엔드포인트가 서로 통신할 수 없는 트러블슈팅 예를 설명합니다. 아래 그림에는 BD에 서브넷이 없고 유니캐스트 라우팅이 비활성화된 토폴로지가 나와 있습니다.

일반적으로 엔드포인트 연결로 트래픽 흐름을 트러블슈팅하는 경우 엔드포인트 쌍 식별을 시작하는 것이 좋습니다. EP A 및 B가 있는 아래 토폴로지를 참조하십시오. IP 주소는 각각 10.1.1.1/24 및 10.1.1.2/24입니다. MAC 주소는 각각 00:00:10:01:01 및 00:00:10:01:01:02입니다.

토폴로지

이 섹션에서는 세 가지 시나리오가 있습니다.

1. 알려진 레이어 2 유니캐스트 흐름.

2. 플러드 모드에서 BD를 사용하는 알 수 없는 레이어 2 유니캐스트 흐름입니다.

3. 하드웨어 프록시 모드에서 BD를 사용하는 알 수 없는 레이어 2 유니캐스트 흐름입니다.

준수할 트러블슈팅 플로우는 다음 체계로 요약할 수 있습니다.

- 레벨 1 확인: 확인된 컨피그레이션, 결함 및 엔드포인트의 GUI 검증

- 레벨 2 확인: 리프 스위치의 CLI:

- 소스 및 대상 리프 스위치가 엔드포인트를 학습하는지 확인합니다.

- 스파인 노드가 COOP에서 엔드포인트를 학습하는지 확인합니다.

- 레벨 3 확인: 패킷 캡처:

- ELAM(ELAM Assistant 또는 CLI)을 사용하여 프레임이 있는지 확인합니다.

- 흐름을 추적합니다.

GUI 확인

첫 번째 트러블슈팅 레벨은 GUI에서 엔드포인트 MAC가 제대로 학습되었는지 확인하는 것입니다. 이는 엔드포인트가 있는 EPG의 operational 탭에서 수행할 수 있습니다.

'EPG 운영 탭 > 클라이언트 엔드포인트'

이 시나리오에서는 엔드포인트 A와 B가 모두 GUI에 표시됩니다. GUI에는 MAC 주소, 패브릭에 연결되는 인터페이스, 캡슐화(이 경우 둘 다 캡슐화 VLAN 2501에 있음)가 표시됩니다.

BD 레벨에서 유니캐스트 라우팅이 비활성화되었으므로 ACI 패브릭에서 IP 주소를 학습하지 못할 것으로 예상됩니다.

위 스크린샷의 학습 소스 열을 참조하십시오. '학습됨'을 나타내는 경우 ACI 리프 스위치가 엔드포인트에서 하나 이상의 패킷을 수신했습니다.

이 경우 엔드포인트는 ACI 패브릭에서 학습되므로 알려진 레이어 2 유니캐스트 트래픽에 대한 다음 트러블슈팅 케이스로 이동하십시오.

알려진 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로

인그레스 리프 소스 EP MAC 학습

동일한 BD에서 레이어 2 포워딩을 수행하는 경우 ACI는 소스 MAC만 학습하고 목적지 MAC를 기반으로 포워딩합니다. MAC 주소는 BD의 범위에서 학습됩니다.

먼저 엔드포인트가 학습되었는지 확인합니다.

leaf1# show endpoint  mac  0000.1001.0101

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

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

VLAN/                           Encap           MAC Address       MAC Info/       Interface

Domain                          VLAN            IP Address        IP Info

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

4/Prod:VRF1                               vlan-2501    0000.1001.0101 L                      eth1/3

위의 출력은 다음 정보를 제공합니다.

- MAC 주소 0000.1001.0101은 포트 이더넷 1/3에서 로컬로 학습됩니다(플래그는 로컬의 경우 L임). 이때 캡슐화 vlan-2501은 vrf Prod:VRF1입니다.

- 위의 출력에서 'VLAN/도메인' 열을 참조하십시오. 나열된 VLAN ID는 내부 VLAN입니다.

인그레스 리프 대상 MAC 끝점 조회

목적지 MAC가 알려진 경우(알려진 유니캐스트)

leaf1# show endpoint mac 0000.1001.0102

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

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

VLAN/                           Encap           MAC Address       MAC Info/       Interface

Domain                          VLAN            IP Address        IP Info

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

7/Prod:VRF1                          vxlan-16351141    0000.1001.0102                       tunnel4

위의 출력은 다음 정보를 제공합니다.

- MAC 주소 0000.1001.0102는 로컬에서 학습되지 않습니다.

- 인터페이스 터널 4에서 학습됩니다.

- 브리지 도메인의 BD_VNID(16351141 네트워크 ID)에 해당하는 캡슐화 VXLAN-ID에서 학습됩니다.

다음으로, 'show interface tunnel <x>' 명령을 사용하여 터널 인터페이스의 대상을 확인합니다

leaf1# show interface tunnel 4

Tunnel4 is up

MTU 9000 bytes, BW 0 Kbit

Transport protocol is in VRF "overlay-1"

Tunnel protocol/transport is ivxlan

Tunnel source 10.0.88.95/32 (lo0)

Tunnel destination 10.0.96.66

Last clearing of "show interface" counters never

Tx

0 packets output, 1 minute output rate 0 packets/sec

Rx

0 packets input, 1 minute input rate 0 packets/sec

따라서 패킷은 VXLAN에서 소스 TEP IP 10.0.88.95(loopback0에 할당됨)로 캡슐화되고 목적지 TEP IP 10.0.96.66으로 전송됩니다.

소스 IP를 확인합니다.

leaf1# show ip interface loopback 0 vrf overlay-1

IP Interface Status for VRF "overlay-1"

lo0, Interface status: protocol-up/link-up/admin-up, iod: 4, mode: ptep

IP address: 10.0.88.95, IP subnet: 10.0.88.95/32

IP broadcast address: 255.255.255.255

IP primary address route-preference: 0, tag: 0

대상 TEP IP 10.0.96.66은 다음 중 하나일 수 있습니다.

- 다른 leaf의 PTEP 주소(acidiag fnvread를 사용하여 확인할 수 있음)

- VPC VIP('GUI > Fabric > Access Policies > Policies > Switch > Virtual Port Channel default'에서 확인 가능)(아래 스크린샷 참조)

- 스파인 스위치의 일부 루프백 IP입니다. 스파인 스위치에서 'show ip interface vrf overlay-1' 명령을 사용하여 이를 확인합니다.

명시적 VPC 보호 그룹

인그레스 리프 스위치에서 스파인 스위치로 전송

인그레스 리프는 이제 이전 'show interface tunnel 4' 명령에 나열된 터널 대상 IP인 10.0.96.66으로 외부 대상 IP가 설정된 상태로 프레임을 VXLAN에 캡슐화합니다. 이전 'show endpoint mac 000.1001.0102' 명령 출력에 표시된 대로 브리지 도메인의 VNID(vxlan-16351141)를 사용하여 VXLAN에 캡슐화합니다.

VRF overlay-1의 IS-IS 경로에 따라 전송 위치를 결정합니다.

leaf1# show ip route 10.0.96.66 vrf overlay-1

IP Route Table for VRF "overlay-1"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

10.0.96.66/32, ubest/mbest: 4/0

*via 10.0.88.65, Eth1/49.10, [115/3], 2w5d, isis-isis_infra, isis-l1-int

*via 10.0.88.94, Eth1/50.128, [115/3], 2w5d, isis-isis_infra, isis-l1-int

스파인 스위치에 대한 패브릭 업링크인 eth1/49 및 1/50을 사용하는 목적지에 대한 ECMP(equal cost multipath) 라우팅이 있습니다.

스파인 포워딩

스파인의 VRF 오버레이-1 라우팅 테이블은 호스트 경로 10.0.96.66이 leaf3 또는 leaf4를 통해 연결할 수 있음을 보여줍니다. 10.0.96.66은 leaf 스위치 103 및 104의 VPC VIP이므로 예상됩니다.

spine1# show ip route 10.0.96.66 vrf overlay-1

IP Route Table for VRF "overlay-1"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

10.0.96.66/32, ubest/mbest: 2/0

*via 10.0.88.91, eth1/3.35, [115/2], 02w05d, isis-isis_infra, isis-l1-int

*via 10.0.88.90, eth1/4.39, [115/2], 02w05d, isis-isis_infra, isis-l1-int

spine1# show lldp neighbors | egrep "1\/3 |1\/4 "

leaf3             Eth1/3          120        BR          Eth1/49

leaf4             Eth1/4          120        BR          Eth1/49

이그레스 리프 원격 EP MAC 학습

이 경우 대상 TEP는 VPC 쌍이므로 패킷이 leaf3 또는 leaf4에 도착합니다. 아래의 명령 출력을 참조하십시오. Leaf4는 유사한 출력을 표시해야 합니다. 동일한 VPC 쌍의 일부이므로 모든 엔드포인트가 두 리프 스위치 간에 동기화됩니다.

이그레스 리프의 레이어 2 트래픽에 대한 엔드포인트 학습은 수신된 패킷의 VNID에 해당하는 BD에서 학습된 소스 MAC 주소를 기반으로 합니다. 이는 엔드포인트 테이블에서 확인할 수 있습니다.

소스 MAC 주소는 VXLAN-16351141의 터널 26 뒤에 있습니다.

터널 26은 TEP IP 10.0.88.95(leaf1)로 이동합니다.

leaf3# show endpoint  mac 0000.1001.0101

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

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

VLAN/                           Encap           MAC Address       MAC Info/       Interface

Domain                          VLAN            IP Address        IP Info

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

136/Prod:VRF1                        vxlan-16351141    0000.1001.0101                      tunnel26

leaf3# show interface tunnel 26

Tunnel26 is up

MTU 9000 bytes, BW 0 Kbit

Transport protocol is in VRF "overlay-1"

Tunnel protocol/transport is ivxlan

Tunnel source 10.0.88.91/32 (lo0)

Tunnel destination 10.0.88.95

Last clearing of "show interface" counters never

Tx

0 packets output, 1 minute output rate 0 packets/sec

Rx

0 packets input, 1 minute input rate 0 packets/sec

leaf3# acidiag fnvread | egrep "10.0.88.95"

101        1                leaf1      FDO20160TPA      10.0.88.95/32    leaf         active   0

이그레스 리프 대상 MAC 조회

'show endpoint' 명령은 대상 MAC이 포트 채널 1 뒤에서 학습되고 캡슐화 VLAN-2501을 사용하는지 확인합니다

leaf3# show endpoint mac 0000.1001.0102

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

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

VLAN/                           Encap           MAC Address       MAC Info/       Interface

Domain                          VLAN            IP Address        IP Info

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

135/Prod:VRF1                             vlan-2501    0000.1001.0102 LpV                       po1

프레임이 리프3 인터페이스 포트 채널 1의 ACI 패브릭에서 엔캡 VLAN ID 2501로 떠나고 있음을 나타냅니다. GUI의 Tenant Operational(테넌트 운영) 탭에서 BD VNID를 찾을 수 있습니다.

두 엔드포인트가 스파인 스위치 COOP EP 리포에서 올바르게 학습되었는지 확인합니다.

COOP EP repo는 모든 스파인 노드에서 동기화되어야 합니다. coop EP repo는 BD VNID를 키로 사용하고 EP MAC 주소를 입력하여 확인할 수 있습니다.

이 흐름의 소스 MAC 주소는 leaf1의 TEP IP인 터널 next-hop 10.0.88.95에서 학습됩니다. 또한 명령 출력에는 올바른 브리지 도메인에 해당하는 VNID 16351141이 표시됩니다.

spine1# show coop internal info repo ep key 16351141 00:00:10:01:01:01

Repo Hdr Checksum : 24197

Repo Hdr record timestamp : 10 01 2019 10:16:50 278195866

Repo Hdr last pub timestamp : 10 01 2019 10:16:50 283699467

Repo Hdr last dampen timestamp : 01 01 1970 00:00:00 0

Repo Hdr dampen penalty : 0

Repo Hdr flags : IN_OBJ EXPORT ACTIVE

EP bd vnid : 16351141

EP mac :  00:00:10:01:01:01

flags : 0x80

repo flags : 0x122

Vrf vnid : 2097154

Epg vnid : 0

EVPN Seq no : 0

Remote publish timestamp: 01 01 1970 00:00:00 0

Snapshot timestamp: 10 01 2019 10:16:50 278195866

Tunnel nh : 10.0.88.95

MAC Tunnel  : 10.0.88.95

IPv4 Tunnel : 10.0.88.95

IPv6 Tunnel : 10.0.88.95

ETEP Tunnel : 0.0.0.0

이 흐름의 대상 MAC은 leaf3 및 leaf4의 VPC VIP 10.0.96.66에 대해 학습됩니다. EP BD VNID 16351141도 나열되며, 이는 올바른 BD에 해당합니다.

spine1# show coop internal info repo ep key 15302583 00:00:10:01:01:02

Repo Hdr Checksum : 16897

Repo Hdr record timestamp : 10 01 2019 11:05:46 351360334

Repo Hdr last pub timestamp : 10 01 2019 11:05:46 352019546

Repo Hdr last dampen timestamp : 01 01 1970 00:00:00 0

Repo Hdr dampen penalty : 0

Repo Hdr flags : IN_OBJ EXPORT ACTIVE

EP bd vnid : 16351141

EP mac :  00:00:10:01:01:02

flags : 0x90

repo flags : 0x122

Vrf vnid : 2097154

Epg vnid : 0

EVPN Seq no : 0

Remote publish timestamp: 01 01 1970 00:00:00 0

Snapshot timestamp: 10 01 2019 11:05:46 351360334

Tunnel nh : 10.0.96.66

MAC Tunnel  : 10.0.96.66

IPv4 Tunnel : 10.0.96.66

IPv6 Tunnel : 10.0.96.66

ETEP Tunnel : 0.0.0.0

ELAM Assistant를 사용한 ELAM 출력

ELAM Assistant는 ACI 패브릭에서 ELAM 캡처 실행을 간소화할 수 있는 강력한 ACI 앱입니다.

ELAM Assistant 트리거는 여러 리프 노드에서 동시에 시작할 수 있습니다. 따라서 leaf1, leaf3 및 leaf4에서 특정 패킷을 병렬로 확인할 수 있습니다.

구성된 ELAM 캡처는 아래와 같이 표시됩니다. 관찰된 바와 같이, 패킷은 leaf1(node-101) 및 leaf3(node-103)에서 확인됩니다.

ELAM Assistant — 매개변수

leaf1(node-101) 보고서는 다음을 보여줍니다.

- 캡처된 패킷 정보 출력은 패킷이 eth1/3에 진입하고 올바른 MAC 및 IP 정보를 가지고 있음을 확인합니다.

- 패킷 전달 정보는 eth1/49에서 TEP IP 10.0.96.66으로 전달된 것을 보여줍니다.

ELAM Assistant — leaf1(node-101) — 캡처된 패킷 정보

ELAM Assistant — leaf1(node-101) — 패킷 전달 정보

이그레스 leaf의 leaf3(node-103)에서 다음 항목이 관찰됩니다.

leaf3의 캡처된 패킷 정보에서 eth1/49부터 시작합니다. 외부 IP 주소는 다음을 확인합니다.

- 소스 단계: 10.0.88.95

- 대상 TEP: 10.0.96.66

- VNID: 16351141(BD VNID)

ELAM Assistant — leaf3(node-103) — 캡처된 패킷 정보

Packet Forwarding Information(패킷 포워딩 정보)은 트래픽이 포트 채널 1 및 특히 이더넷 1/12에서 포워딩됨을 보여줍니다.

CLI를 사용하는 인그레스 리프 ELAM

ELAM Assistant를 사용하는 것이 좋습니다. ELAM 캡처를 실행하는 작업이 간소화되기 때문입니다. 그러나 ACI 스위치에서 CLI 명령을 사용하여 ELAM 보고서를 생성할 수도 있습니다. 아래는 이 작업이 수행되는 방법의 예입니다.

표시된 트리거 시퀀스를 사용하여 인그레스 리프의 패킷을 캡처합니다. ELAM 옵션에 대한 자세한 내용은 "툴" 섹션을 참조하십시오.

- 이 예에서 ASIC는 leaf로 'tah'(부품 번호가 '-EX'로 끝나음)입니다.

- 'in-select 6'은 VXLAN 캡슐화 없이 다운링크 포트에서 오는 패킷을 캡처하는 데 사용됩니다.

- 'out-select 1'은 드롭 벡터가 표시되는지 확인합니다(패킷 드롭의 경우).

- 이전 트리거가 지워졌는지 확인하려면 'reset' 명령이 필요합니다.

- 이것이 브리지 플로우임에도 불구하고 ELAM은 IP 헤더를 확인할 수 있습니다.

- 따라서 'ipv4 src_ip' 및 'dst_ip'를 사용하여 트리거를 설정할 수 있습니다.

module-1# debug platform internal tah elam asic 0

module-1(DBG-elam)# trigger init in-select ?

10  Outerl4-innerl4-ieth

13  Outer(l2|l3|l4)-inner(l2|l3|l4)-noieth

14  Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth

15  Outer(l2|l3|l4)-inner(l2|l3|l4)-ieth

6   Outerl2-outerl3-outerl4

7   Innerl2-innerl3-innerl4

8   Outerl2-innerl2-ieth

9   Outerl3-innerl3

module-1(DBG-elam)# trigger init in-select 6 out-select 1

module-1(DBG-elam-insel6)# reset

module-1(DBG-elam-insel6)# set outer ipv4 src_ip 10.1.1.1 dst_ip 10.1.1.2

module-1(DBG-elam-insel6)# start

패킷이 수신되었는지 확인하려면 ELAM 상태를 확인합니다. 트리거가 있는 경우, 조건과 일치하는 패킷이 포착되었음을 의미합니다.

module-1(DBG-elam-insel6)# status

ELAM STATUS

===========

Asic 0 Slice 0 Status Triggered

Asic 0 Slice 1 Status Armed

다음 출력에서는 보고서가 'ereport' 명령을 사용하여 표시되는 것을 보여줍니다. 출력이 매우 길어서 여기에서는 시작 부분만 붙여 넣는다. 그러나 전체 보고서는 나중에 분석을 위해 리프 파일 시스템의 위치에 저장됩니다. 파일 이름에는 ELAM을 가져온 타임스탬프도 포함됩니다.

leaf1# ls -al /var/log/dme/log/elam_2019-09-30-03m-23h-14s.txt

-rw-rw-rw- 1 root root 699106 Sep 30 23:03 /var/log/dme/log/elam_2019-09-30-03m-23h-14s.txt

'보고'는 패킷이 수신되었는지, 정보가 예상대로 수신되었는지 확인합니다(소스 및 대상 MAC, 소스, 대상 IP 등).

module-1(DBG-elam-insel6)# ereport

Python available. Continue ELAM decode with LC Pkg

ELAM REPORT

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

Trigger/Basic Information

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

ELAM Report File                        : /tmp/logs/elam_2019-09-30-03m-23h-14s.txt

In-Select Trigger                       : Outerl2-outerl3-outerl4( 6 )

Out-Select Trigger                      : Pktrw-sideband-drpvec( 1 )

ELAM Captured Device                    : LEAF

Packet Direction                        : ingress

Triggered ASIC type                     : Sugarbowl

Triggered ASIC instance                 : 0

Triggered Slice                         : 0

Incoming Interface                      : 0x24( 0x24 )

( Slice Source ID(Ss) in "show plat int hal l2 port gpd" )

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

Captured Packet

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

Outer Packet Attributes

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

Outer Packet Attributes       : l2uc ipv4 ip ipuc ipv4uc

Opcode                        : OPCODE_UC

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

Outer L2 Header

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

Destination MAC               : 0000.1001.0102

Source MAC                    : 0000.1001.0101

802.1Q tag is valid           : yes( 0x1 )

CoS                           : 0( 0x0 )

Access Encap VLAN             : 2501( 0x9C5 )

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

Outer L3 Header

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

L3 Type                       : IPv4

IP Version                    : 4

DSCP                          : 0

IP Packet Length              : 84 ( = IP header(28 bytes) + IP payload )

Don't Fragment Bit            : not set

TTL                           : 255

IP Protocol Number            : ICMP

IP CheckSum                   : 51097( 0xC799 )

Destination IP                : 10.1.1.2

Source IP                     : 10.1.1.1

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

Forwarding Lookup ( FPB )

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

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

Destination MAC (Lookup Key)

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

Dst MAC Lookup was performed            : yes

Dst MAC Lookup BD                       : 522( 0x20A )

( Hw BDID in "show plat int hal l2 bd pi" )

Dst MAC Address                         : 0000.1001.0102

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

Destination MAC (Lookup Result)

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

Dst MAC is Hit                          : yes

Dst MAC is Hit Index                    : 6443( 0x192B )

( phy_id in "show plat int hal objects ep l2 mac (MAC) extensions" )

or ( HIT IDX in "show plat int hal l3 nexthops" for L3OUT/L3 EP)

.....

추적을 사용하여 흐름 추적

Triage는 APIC CLI에서 실행되며 ACI 패브릭을 통한 전체 경로를 따르는 데 사용할 수 있습니다. 적어도 인그레스 리프(node-101), 소스 IP 및 목적지 IP를 지정합니다. 이 경우에는 브리지된(레이어 2) 흐름이므로 Triage bridge 옵션을 사용해야 합니다.

분류는 현재 디렉토리에 로그 파일을 생성합니다. 이 로그 파일에는 수집된 모든 로그 및 ELAM 보고서가 포함됩니다. 이렇게 하면 모든 홉에서 패킷을 캡처할 수 있습니다. 출력의 간단한 버전은 다음과 같습니다.

apic1# ftriage bridge -ii LEAF:101 -sip 10.1.1.1 -dip 10.1.1.2

fTriage Status: {"dbgFtriage": {"attributes": {"operState": "InProgress", "pid": "12181", "apicId": "1", "id": "0"}}}

Starting ftriage

Log file name for the current run is: ftlog_2019-10-01-18-53-24-125.txt

2019-10-01 18:53:24,129 INFO     /controller/bin/ftriage bridge -ii LEAF:101 -sip 10.1.1.1 -dip 10.1.1.2

2019-10-01 18:53:49,280 INFO     ftriage:     main:1165 Invoking ftriage with default password and default username: apic#fallback\\admin

2019-10-01 18:54:10,204 INFO     ftriage:     main:839  L2 frame Seen on leaf1 Ingress: Eth1/3 Egress: Eth1/49 Vnid: 15302583

2019-10-01 18:54:10,422 INFO     ftriage:     main:242  ingress encap string vlan-2501

2019-10-01 18:54:10,427 INFO     ftriage:     main:271  Building ingress BD(s), Ctx

2019-10-01 18:54:12,288 INFO     ftriage:     main:294  Ingress BD(s) Prod:BD1

2019-10-01 18:54:12,288 INFO     ftriage:     main:301  Ingress Ctx: Prod:VRF1

2019-10-01 18:54:12,397 INFO     ftriage:   pktrec:490  leaf1: Collecting transient losses snapshot for LC module: 1

2019-10-01 18:54:30,079 INFO     ftriage:     main:933  SMAC 00:00:10:01:01:01 DMAC 00:00:10:01:01:02

2019-10-01 18:54:30,080 INFO     ftriage:  unicast:973  leaf1: <- is ingress node

2019-10-01 18:54:30,320 INFO     ftriage:  unicast:1215 leaf1: Dst EP is remote

2019-10-01 18:54:31,155 INFO     ftriage:     misc:659  leaf1: L2 frame getting bridged in SUG

2019-10-01 18:54:31,380 INFO     ftriage:     misc:657  leaf1: Dst MAC is present in SUG L2 tbl

2019-10-01 18:54:31,826 INFO     ftriage:     misc:657  leaf1: RwDMAC DIPo(10.0.96.66) is one of dst TEPs ['10.0.96.66']

2019-10-01 18:56:16,249 INFO     ftriage:     main:622  Found peer-node spine1 and IF: Eth1/1 in candidate list

2019-10-01 18:56:21,346 INFO     ftriage:     node:643  spine1: Extracted Internal-port GPD Info for lc: 1

2019-10-01 18:56:21,348 INFO     ftriage:     fcls:4414 spine1: LC trigger ELAM with IFS: Eth1/1 Asic :0 Slice: 0 Srcid: 32

2019-10-01 18:56:54,424 INFO     ftriage:     main:839  L2 frame Seen on spine1 Ingress: Eth1/1 Egress: LC-1/0 FC-24/0 Port-0 Vnid: 15302583

2019-10-01 18:56:54,424 INFO     ftriage:   pktrec:490  spine1: Collecting transient losses snapshot for LC module: 1

2019-10-01 18:57:15,093 INFO     ftriage:      fib:332  spine1: Transit in spine

2019-10-01 18:57:21,394 INFO     ftriage:  unicast:1252 spine1: Enter dbg_sub_nexthop with Transit inst: ig infra: False glbs.dipo: 10.0.96.66

2019-10-01 18:57:21,508 INFO     ftriage:  unicast:1417 spine1: EP is known in COOP (DIPo = 10.0.96.66)

2019-10-01 18:57:25,537 INFO     ftriage:  unicast:1458 spine1: Infra route 10.0.96.66 present in RIB

2019-10-01 18:57:25,537 INFO     ftriage:     node:1331 spine1: Mapped LC interface: LC-1/0 FC-24/0 Port-0 to FC interface: FC-24/0 LC-1/0 Port-0

2019-10-01 18:57:30,616 INFO     ftriage:     node:460  spine1: Extracted GPD Info for fc: 24

2019-10-01 18:57:30,617 INFO     ftriage:     fcls:5748 spine1: FC trigger ELAM with IFS: FC-24/0 LC-1/0 Port-0 Asic :0 Slice: 2 Srcid: 0

2019-10-01 18:57:49,611 INFO     ftriage:  unicast:1774 L2 frame Seen on FC of node: spine1  with Ingress: FC-24/0 LC-1/0 Port-0  Egress: FC-24/0 LC-1/0 Port-0 Vnid: 15302583

2019-10-01 18:57:49,611 INFO     ftriage:   pktrec:487  spine1: Collecting transient losses snapshot for FC module: 24

2019-10-01 18:57:53,110 INFO     ftriage:     node:1339 spine1: Mapped FC interface: FC-24/0 LC-1/0 Port-0 to LC interface: LC-1/0 FC-24/0 Port-0

2019-10-01 18:57:53,111 INFO     ftriage:  unicast:1474 spine1: Capturing Spine  Transit pkt-type L2 frame on egress LC on Node: spine1 IFS: LC-1/0 FC-24/0 Port-0

2019-10-01 18:57:53,530 INFO     ftriage:     fcls:4414 spine1: LC trigger ELAM with IFS: LC-1/0 FC-24/0 Port-0 Asic :0 Slice: 0 Srcid: 64

2019-10-01 18:58:26,497 INFO     ftriage:  unicast:1510 spine1: L2 frame Spine egress  Transit pkt Seen on spine1 Ingress: LC-1/0 FC-24/0 Port-0 Egress: Eth1/3 Vnid: 15302583

2019-10-01 18:58:26,498 INFO     ftriage:   pktrec:490  spine1: Collecting transient losses snapshot for LC module: 1

2019-10-01 18:59:28,634 INFO     ftriage:     main:622  Found peer-node leaf3 and IF: Eth1/49 in candidate list

2019-10-01 18:59:39,235 INFO     ftriage:     main:839  L2 frame Seen on leaf3 Ingress: Eth1/49 Egress: Eth1/12 (Po1) Vnid: 11364

2019-10-01 18:59:39,350 INFO     ftriage:   pktrec:490  leaf3: Collecting transient losses snapshot for LC module: 1

2019-10-01 18:59:54,373 INFO     ftriage:     main:522  Computed egress encap string vlan-2501

2019-10-01 18:59:54,379 INFO     ftriage:     main:313  Building egress BD(s), Ctx

2019-10-01 18:59:57,152 INFO     ftriage:     main:331  Egress Ctx Prod:VRF1

2019-10-01 18:59:57,153 INFO     ftriage:     main:332  Egress BD(s): Prod:BD1

2019-10-01 18:59:59,230 INFO     ftriage:  unicast:1252 leaf3: Enter dbg_sub_nexthop with Local inst: eg infra: False glbs.dipo: 10.0.96.66

2019-10-01 18:59:59,231 INFO     ftriage:  unicast:1257 leaf3: dbg_sub_nexthop invokes dbg_sub_eg for vip

2019-10-01 18:59:59,231 INFO     ftriage:  unicast:1784 leaf3: <- is egress node

2019-10-01 18:59:59,377 INFO     ftriage:  unicast:1833 leaf3: Dst EP is local

2019-10-01 18:59:59,378 INFO     ftriage:     misc:657  leaf3: EP if(Po1) same as egr if(Po1)

2019-10-01 18:59:59,378 INFO     ftriage:     misc:659  leaf3: L2 frame getting bridged in SUG

2019-10-01 18:59:59,613 INFO     ftriage:     misc:657  leaf3: Dst MAC is present in SUG L2 tbl

2019-10-01 19:00:06,122 INFO     ftriage:     main:961  Packet is Exiting fabric with peer-device: n3k-3 and peer-port: Ethernet1/16

알 수 없는 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로 - 플러드 모드의 BD

이 예에서는 목적지 MAC를 알 수 없습니다. 인그레스 리프에 대한 대상 MAC 조회에서 출력이 표시되지 않습니다.

leaf1# show endpoint mac 0000.1001.0102

Legend:

s - arp              H - vtep             V - vpc-attached     p - peer-aged

R - peer-attached-rl B - bounce           S - static           M - span

D - bounce-to-proxy  O - peer-attached    a - local-aged       m - svc-mgr

L - local            E - shared-service

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

VLAN/                           Encap           MAC Address       MAC Info/       Interface

Domain                          VLAN            IP Address        IP Info

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

BD가 L2 알 수 없는 유니캐스트에 대해 'Flood'로 설정되어 있는 경우 상위 레벨에서 다음과 같은 상황이 발생합니다.

1. 인그레스 리프는 패킷 헤더를 해시하여 FTAG 중 하나에 할당합니다(0~15).

2. 인그레스 리프는 BD VNID를 사용하는 VXLAN 패킷의 프레임을 캡슐화합니다. 외부 대상 IP는 BD GIPo + FTAG가 됩니다.

3. 트리 토폴로지에 따라 패브릭에서 플러딩되며, BD가 구축된 모든 리프 노드에 도달해야 합니다.

이 섹션에서는 확인할 수 있는 항목을 강조 표시합니다.

BD GIPo 찾기

GUI는 BD에서 다중 목적지 트래픽에 사용하는 멀티캐스트 그룹 225.1.5.48을 식별합니다.

BD GIPo

ELAM — 인그레스 리프 — 플러딩된 트래픽

ELAM Assistant를 사용하여 인그레스 리프에 대한 ELAM 보고서를 확인합니다. 이는 프레임이 BD에 플러딩되었고 모든 패브릭 업링크에서 이그레스(egress)되고 있음을 보여줍니다(여기서 eth1/49, 1/50, 1/51, 1/52).

ELAM Assistant - 인그레스 리프 - 패킷 전달 정보

인그레스 리프에서 선택한 FTAG 값을 찾으려면 ELAM Assistant의 원시 보고서로 이동합니다.

sug_lu2ba_sb_info.mc_info.mc_info_nopad.ftag: 0xC

0xC의 16진수 값을 10진수로 변환할 때 FTAG 12가 됩니다.

FTAG 토폴로지 그리기

FTAG 토폴로지는 IS-IS에 의해 계산됩니다. 각 FTAG 값에 대해 최적의 로드 분산 토폴로지를 허용하는 루트 및 출력 인터페이스 목록과 함께 트리 토폴로지가 생성됩니다.

다음 명령을 사용하여 로컬 FTAG 토폴로지를 표시합니다. 아래 예에서는 spine1에서 FTAG ID 12 토폴로지를 사용합니다.

spine1# show isis internal mcast routes ftag

IS-IS process: isis_infra

VRF : default

FTAG Routes

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

FTAG ID:  12  [Enabled] Cost:(   2/  11/   0)

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

Root port: Ethernet1/4.39

OIF List:

Ethernet1/11.11

Ethernet1/12.12

대규모 ACI 패브릭에서 전체 FTAG 토폴로지를 그리면 길고 복잡한 작업이 될 수 있습니다. 'aci-ftag-viewer' Python 스크립트(https://github.com/agccie/aci-ftag-viewer)는 APIC에 복사할 수 있습니다. Fabric 의 전체 FTAG 토폴로지를 단일 경로로 생성합니다.

아래 출력에는 Multi-Pod Fabric의 Pod1에 있는 FTAG 12 트리가 표시되며 IPN 디바이스 전반에 걸친 FTAG 토폴로지가 포함됩니다.

이는 트래픽이 leaf101에서 ACI 패브릭으로 들어오는 경우 아래 스크립트의 출력에 나열된 대로 다음 경로를 통과함을 보여줍니다.

admin@apic1:tmp> python aci_ftag_viewer.py --ftag 12 --pod 1

################################################################################

#  Pod 1 FTAG 12

#  Root spine-204

#  active nodes: 8, inactive nodes: 1

################################################################################

spine-204

+- 1/1 -------- 1/52 leaf-101

+- 1/2 -------- 1/52 leaf-102

+- 1/3 -------- 1/52 leaf-103

+- 1/4 -------- 1/52 leaf-104

+- 1/49 -------- 1/4 spine-201

|                      +- 1/11 ...... (EXT) Eth2/13 n7706-01-Multipod-A1

|                      +- 1/12 ...... (EXT) Eth2/9 n7706-01-Multipod-A2

|

+- 1/50 -------- 1/4 spine-202

|                      +- 1/11 ...... (EXT) Eth2/14 n7706-01-Multipod-A1

|                      +- 1/12 ...... (EXT) Eth2/10 n7706-01-Multipod-A2

|

+- 1/51 -------- 2/4 spine-203

+- 2/11 ...... (EXT) Eth2/15 n7706-01-Multipod-A1

+- 2/12 ...... (EXT) Eth2/11 n7706-01-Multipod-A2

+- 1/11 ...... (EXT) Eth2/16 n7706-01-Multipod-A1

+- 1/12 ...... (EXT) Eth2/12 n7706-01-Multipod-A2

ELAM — 이그레스 리프 — 플러딩된 트래픽

이 경우 플러딩 트래픽은 ACI 패브릭의 모든 리프에 도달합니다. 따라서 VPC 쌍인 leaf3 및 leaf4에 모두 도달합니다. 두 리프 노드 모두 대상에 대한 VPC를 가지고 있습니다. 중복 패킷을 방지하기 위해 VPC 쌍은 하나의 리프만 선택하여 플러딩된 트래픽을 대상으로 전달합니다. 선택된 리프는 VPC DF 리프(VPC 지정 전달자 리프)라고 합니다.

이는 두 leaf 노드에서 다음 트리거를 사용하여 ELAM에서 확인할 수 있습니다.

module-1# debug platform internal tah elam asic 0

module-1(DBG-elam)# trigger reset

module-1(DBG-elam)# trigger init in-select 14 out-select 1

module-1(DBG-elam-insel14)# set inner ipv4 src_ip 10.1.1.1 dst_ip 10.1.1.2

module-1(DBG-elam-insel14)# start

leaf3 출력:

module-1(DBG-elam-insel14)# ereport | egrep vpc.*df

sug_lub_latch_results_vec.lub4_1.vpc_df: 0x1

leaf4 출력:

module-1(DBG-elam-insel14)# ereport | egrep vpc.*df

sug_lub_latch_results_vec.lub4_1.vpc_df: 0x0

위 출력에서 leaf3의 값이 'vpc_df' 필드에 대해 설정된 '0x1'인 반면 leaf4의 값은 'vpc_df' 필드에 대해 설정된 '0x0'입니다. 따라서 지정된 전달자는 leaf3가 됩니다. leaf3는 VPC 링크의 플러딩된 패킷을 대상 EP로 전달합니다.

알 수 없는 레이어 2 유니캐스트 트래픽에 대한 문제 해결 워크플로 - 하드웨어 프록시의 BD

현재 나열된 시나리오는 하드웨어 프록시 모드에서 BD가 있는 레이어 2 알 수 없는 유니캐스트 트래픽에 대한 시나리오입니다. 이 시나리오에서 인그레스 리프가 목적지 MAC 주소를 모르는 경우, 패킷을 스파인 anycast proxy-mac 주소로 전달합니다. 스파인은 대상 MAC에 대해 COOP 조회를 수행합니다.

조회가 아래와 같이 성공하면 스파인은 외부 대상 IP를 터널 대상(여기서는 10.0.96.66)에 다시 쓰고 leaf3-leaf4 VPC 쌍으로 전송합니다.

spine1# show coop internal info repo ep key 15302583 00:00:10:01:01:02

Repo Hdr Checksum : 16897

Repo Hdr record timestamp : 10 01 2019 11:05:46 351360334

Repo Hdr last pub timestamp : 10 01 2019 11:05:46 352019546

Repo Hdr last dampen timestamp : 01 01 1970 00:00:00 0

Repo Hdr dampen penalty : 0

Repo Hdr flags : IN_OBJ EXPORT ACTIVE

EP bd vnid : 16351141

EP mac :  00:00:10:01:01:02

flags : 0x90

repo flags : 0x122

Vrf vnid : 2097154

Epg vnid : 0

EVPN Seq no : 0

Remote publish timestamp: 01 01 1970 00:00:00 0

Snapshot timestamp: 10 01 2019 11:05:46 351360334

Tunnel nh : 10.0.96.66

MAC Tunnel  : 10.0.96.66

IPv4 Tunnel : 10.0.96.66

IPv6 Tunnel : 10.0.96.66

ETEP Tunnel : 0.0.0.0

조회가 실패할 경우(엔드포인트가 ACI 패브릭에서 알 수 없음), 스파인은 알 수 없는 유니캐스트를 삭제합니다.

spine1# show coop internal info repo ep key 15302583 00:00:10:01:01:02

Key not found in repo

레이어 2 포워딩 요약

다음 다이어그램에는 ACI 패브릭의 레이어 2 트래픽에 대해 가능한 포워딩 동작이 요약되어 있습니다.

ACI 패브릭 레이어 2 포워딩 동작