본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 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입니다.
이 섹션에서는 세 가지 시나리오가 있습니다.
준수할 트러블슈팅 플로우는 다음 체계로 요약할 수 있습니다.
첫 번째 트러블슈팅 레벨은 GUI에서 엔드포인트 MAC가 제대로 학습되었는지 확인하는 것입니다. 이는 엔드포인트가 있는 EPG의 operational 탭에서 수행할 수 있습니다.
'EPG 운영 탭 > 클라이언트 엔드포인트'
이 시나리오에서는 엔드포인트 A와 B가 모두 GUI에 표시됩니다. GUI에는 MAC 주소, 패브릭에 연결되는 인터페이스, 캡슐화(이 경우 둘 다 캡슐화 VLAN 2501에 있음)가 표시됩니다.
BD 레벨에서 유니캐스트 라우팅이 비활성화되었으므로 ACI 패브릭에서 IP 주소를 학습하지 못할 것으로 예상됩니다.
위 스크린샷의 학습 소스 열을 참조하십시오. '학습됨'을 나타내는 경우 ACI 리프 스위치가 엔드포인트에서 하나 이상의 패킷을 수신했습니다.
이 경우 엔드포인트는 ACI 패브릭에서 학습되므로 알려진 레이어 2 유니캐스트 트래픽에 대한 다음 트러블슈팅 케이스로 이동하십시오.
동일한 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가 알려진 경우(알려진 유니캐스트)
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
위의 출력은 다음 정보를 제공합니다.
다음으로, '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은 다음 중 하나일 수 있습니다.
명시적 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
이 경우 대상 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
'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 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는 ACI 패브릭에서 ELAM 캡처 실행을 간소화할 수 있는 강력한 ACI 앱입니다.
ELAM Assistant 트리거는 여러 리프 노드에서 동시에 시작할 수 있습니다. 따라서 leaf1, leaf3 및 leaf4에서 특정 패킷을 병렬로 확인할 수 있습니다.
구성된 ELAM 캡처는 아래와 같이 표시됩니다. 관찰된 바와 같이, 패킷은 leaf1(node-101) 및 leaf3(node-103)에서 확인됩니다.
ELAM Assistant — 매개변수
leaf1(node-101) 보고서는 다음을 보여줍니다.
ELAM Assistant — leaf1(node-101) — 캡처된 패킷 정보
ELAM Assistant — leaf1(node-101) — 패킷 전달 정보
이그레스 leaf의 leaf3(node-103)에서 다음 항목이 관찰됩니다.
leaf3의 캡처된 패킷 정보에서 eth1/49부터 시작합니다. 외부 IP 주소는 다음을 확인합니다.
ELAM Assistant — leaf3(node-103) — 캡처된 패킷 정보
Packet Forwarding Information(패킷 포워딩 정보)은 트래픽이 포트 채널 1 및 특히 이더넷 1/12에서 포워딩됨을 보여줍니다.
ELAM Assistant를 사용하는 것이 좋습니다. ELAM 캡처를 실행하는 작업이 간소화되기 때문입니다. 그러나 ACI 스위치에서 CLI 명령을 사용하여 ELAM 보고서를 생성할 수도 있습니다. 아래는 이 작업이 수행되는 방법의 예입니다.
표시된 트리거 시퀀스를 사용하여 인그레스 리프의 패킷을 캡처합니다. ELAM 옵션에 대한 자세한 내용은 "툴" 섹션을 참조하십시오.
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
이 예에서는 목적지 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'로 설정되어 있는 경우 상위 레벨에서 다음과 같은 상황이 발생합니다.
이 섹션에서는 확인할 수 있는 항목을 강조 표시합니다.
GUI는 BD에서 다중 목적지 트래픽에 사용하는 멀티캐스트 그룹 225.1.5.48을 식별합니다.
BD GIPo
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 토폴로지는 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
이 경우 플러딩 트래픽은 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로 전달합니다.
현재 나열된 시나리오는 하드웨어 프록시 모드에서 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
다음 다이어그램에는 ACI 패브릭의 레이어 2 트래픽에 대해 가능한 포워딩 동작이 요약되어 있습니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
08-Aug-2022 |
최초 릴리스 |