簡介
本文說明如何驗證基於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路由過程中,當資料包通過網路從源傳輸到目的地時,源和目的MAC地址會在每一跳更新,而源和目的IP地址保持不變。封包到達路由器時,路由器會檢查目的地IP位址,判斷通往最終目的地的路徑上的下一躍點。然後,路由器將資料包轉發到下一跳,方法是將目的mac地址與下一跳介面的mac地址交換,並將源mac地址更新為其自己的傳出介面mac地址。
這種交換可確保資料包正確傳送到本地網路上的下一台路由器或最終目的地。同時,源和目的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
在本檔案中,為了驗證下一跳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
在找到作為輸出介面的物理介面之前,需要檢查通往下一跳的路由。
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)觀察並獲知連線的路由,您就可以繼續檢查下一跳的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必須向Tah L3鄰接表查詢(lu)以收集目標mac,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 700F6A5E6D5B作為資料包重寫的目標mac地址,使用此資訊可以確認Nexus正在執行正確的重寫,因為此地址與從先前輸出(70:0f:6a:5e:6d:5b)獲取的目標mac地址匹配。
驗證下一個源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
最終驗證
可以在下一跳裝置上完成驗證,例如,可以在N9K3中運行ELAM
對於此示例以及之前的輸出,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