はじめに
このドキュメントでは、TahoeベースのスイッチでNexus MAC書き換えを確認する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
[名前(Name)] |
掌状 |
バージョン |
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転送の決定という2つのコンポーネントを確認する必要があります。
次の例では、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アドレス(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
接続されたルートがAdjacency Manager(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は宛先MACを収集するためにTah L3隣接関係テーブルを検索(lu)し、この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では、以前の出力から取得された宛先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