内容

はじめに

前提条件

要件

使用するコンポーネント

トポロジ

背景

MAC書き換えの確認

ネクストホップMACの確認

ルーティングテーブルの確認

Nexusフォワーディング決定（MAC書き換え）の確認

次の送信元MACの確認

最終確認

はじめに

このドキュメントでは、TahoeベースのスイッチでNexus MAC書き換えを確認する方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- NXOSプラットフォーム

- ルーティング

- ELAM

使用するコンポーネント

[名前(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