소개
이 문서에서는 Tahoe 기반 스위치에서 Nexus MAC 재작성을 확인하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이름 |
플랫폼 |
버전 |
N9K1 |
N9K-C93108TC-EX |
9.3(10) |
N9K2 |
N9K-C93108TC-EX |
9.3(10) |
N9K3 |
N9K-C93108TC-EX |
9.3(10) |
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
토폴로지

배경
IP 라우팅 프로세스에서 패킷이 소스에서 대상으로 네트워크를 통과하면 소스 및 대상 IP 주소는 각 홉에서 업데이트되는 반면, 소스 및 대상 IP 주소는 변경되지 않습니다. 패킷이 라우터에 도달하면 라우터는 목적지 IP 주소를 검사하여 최종 목적지에 대한 경로의 다음 홉을 결정합니다. 그런 다음 라우터는 목적지 mac 주소를 다음 홉 인터페이스의 mac 주소와 스와핑하고 소스 mac 주소를 자체 발신 인터페이스 mac 주소로 업데이트하여 패킷을 다음 홉으로 전달합니다.
이러한 스와핑은 패킷이 로컬 네트워크의 다음 라우터 또는 최종 목적지로 올바르게 전달될 수 있도록 합니다. 한편, 소스 및 목적지 IP 주소는 엔드 투 엔드 경로를 유지하고 패킷이 잠재적으로 여러 네트워크 세그먼트 전반에 걸쳐 올바른 목적지에 도달하도록 하는 데 사용되므로, 이 과정에서 소스 및 목적지 IP 주소는 일정하게 유지됩니다.
MAC 재작성 확인
Nexus 9K Tahoe 기반 스위치에서 mac 재작성이 올바르게 수행되었는지 확인하려면 다음 홉 mac 주소 및 Nexus 포워딩 결정이라는 두 가지 구성 요소를 확인해야 합니다.
이 예에서 Nexus는 표시된 소스 및 대상 mac과 함께 패킷을 수신합니다. 이 mac은 대상에 도달하기 위해 다시 작성됩니다.
N9K2# debug platform internal tah elam
N9K2(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K2(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K2(TAH-elam-insel6)# start
N9K2(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 0
============================
Incoming Interface: Eth1/1
Src Idx : 0x1, Src BD : 4100
Outgoing Interface Info: dmod 1, dpid 17
Dst Idx : 0x5, Dst BD : 4101
Packet Type: IPv4
Dst mac address: 70:0F:6A:95:1C:F9
Src mac address: 70:0F:6A:5E:6A:3F
Dst IPv4 address: 172.16.1.2
Src IPv4 address: 172.16.1.1
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 255, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0x9ebb
L4 Protocol : 1
ICMP type : 8
ICMP code : 0
다음 홉 MAC 확인
이 문서에서는 next hop mac 주소를 확인하기 위해 라우팅 및 ARP 테이블을 확인할 수 있습니다.
이 예에서는 N9K2에서 대상 172.16.1.2에 대한 mac 주소를 재작성하는 방법을 살펴봅니다.
라우팅 테이블 확인
N9K2# show ip route 172.16.1.2
<Snipped>
172.16.1.2/32, ubest/mbest: 1/0
*via 192.168.1.2, [1/0], 00:09:30, static
물리적 인터페이스가 이그레스(egress) 인터페이스로 발견될 때까지 next hop으로의 경로를 확인해야 합니다.
N9K2# show ip route 192.168.1.2
<Snipped>
192.168.1.2/32, ubest/mbest: 1/0, attached
*via 192.168.1.2, Eth1/2, [250/0], 00:12:23, am
연결된 경로가 관찰되고 am(Adjacency Manager)을 통해 학습되면 계속해서 다음 홉에 대한 ARP 항목을 확인할 수 있습니다
N9K2# show ip arp 192.168.1.2
<Snipped>
IP ARP Table
Total number of entries: 1
Address Age mac Address Interface Flags
192.168.1.2 00:14:56 700f.6a5e.6d5b Ethernet1/2
700f.6a5e.6d5b는 Nexus에서 라우팅 재작성을 위해 대상 mac으로 사용해야 하는 mac입니다.
Nexus 포워딩 결정 확인(MAC 재작성)
Nexus 포워딩 결정을 확인하기 위해 ELAM 캡처를 수행해야 합니다. 구체적으로 상세 보고서는 RW 섹션에서 사용됩니다.
N9K2# debug platform internal tah elam
N9K2(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K2(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K2(TAH-elam-insel6)# start
대상에 대한 ping을 수행해야 합니다.
N9K1# ping 172.16.1.2 source 172.16.1.1
PING 172.16.1.2 (172.16.1.2) from 172.16.1.1: 56 data bytes
64 bytes from 172.16.1.2: icmp_seq=0 ttl=253 time=0.906 ms
64 bytes from 172.16.1.2: icmp_seq=1 ttl=253 time=0.599 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=253 time=0.589 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=253 time=0.556 ms
64 bytes from 172.16.1.2: icmp_seq=4 ttl=253 time=0.55 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 0.55/0.64/0.906 ms
패킷이 N9K2에 도달하면 Nexus는 대상 mac을 수집하기 위해 Tah L3 인접성 테이블에 조회(lu)를 수행해야 하며, Nexus는 이 mac을 재작성(rw)에 배치해야 합니다.
N9K2(TAH-elam-insel6)# report detail | i i lurw_vec.dst_addr
GBL_C++: [MSG] sug_lurw_vec.dst_addr: 0x700F6A5E6D5B
Nexus는 패킷 재작성을 위한 목적지 mac 주소로 mac 700F6A5E6D5B를 사용하려고 합니다. 이 정보를 통해 Nexus가 이전 출력에서 가져온 목적지 mac 주소와 일치하는 올바른 재작성을 수행하고 있음을 확인할 수 있습니다(70:0f:6a:5e:6d:5b).
다음 소스 MAC 확인
패킷의 소스 mac 주소의 경우 Nexus는 172.16.1.2에 도달하기 위해 사용 중인 이그레스 인터페이스의 mac 주소를 사용해야 합니다. 이 예에서는 Nexus가 인터페이스 이더넷 1/2 mac 주소를 사용합니다.
N9K2# show interface ethernet 1/2 mac-address
--------------------------------------------------------------------------------
Interface mac-Address Burn-in mac-Address
--------------------------------------------------------------------------------
Ethernet1/2 700f.6a95.1cf9 700f.6a95.1cfb
최종 확인
검증은 다음 홉 디바이스에서 수행될 수 있습니다. 예를 들어, ELAM은 N9K3에서 실행될 수 있습니다
이전 출력이 있는 이 예에서는 Nexus에서 다음을 사용해야 합니다.
소스 mac: 700f.6a95.1cf9
대상 MAC: 70:0f:6a:5e:6d:5b
N9K3# debug platform internal tah elam
N9K3(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K3(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K3(TAH-elam-insel6)# start
N9K3(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 0
============================
Incoming Interface: Eth1/1
Src Idx : 0x5, Src BD : 4101
Outgoing Interface Info: dmod 0, dpid 0
Dst Idx : 0x5bf, Dst BD : 4101
Packet Type: IPv4
Dst mac address: 70:0F:6A:5E:6D:5B
Src mac address: 70:0F:6A:95:1C:F9
Sup hit: 1, Sup Idx: 2788
Dst IPv4 address: 172.16.1.2
Src IPv4 address: 172.16.1.1
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 254, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0x9fc0