ARPテーブルはIPアドレスとMACアドレスの対応、MACアドレステーブルはMACアドレスとVLAN・受信ポートの対応を保持します。前者は主に端末やL3機器、後者はL2スイッチが転送判断に使います。
本文では同一セグメントの通信フローを追い、show ip arpとshow mac address-tableの出力を照合します。キャッシュ未登録、VLAN違い、重複IP、MACフラップをどう見分けるかも扱います。
この記事はネットワークエンジニアの仕事内容の各論です。工程の全体像から確認したい場合はそちらへ。
ARPテーブルとMACアドレステーブルは何が違う?
(出典:RFC 826 An Ethernet Address Resolution Protocol)
ARPテーブルとMACアドレステーブルを比較表で見ると何が違う?
比較表では、キーと値、保持機器、学習方法、利用するレイヤー、確認コマンド、消去条件を比べます。ARPはIPから次ホップMACを解決し、MACテーブルはそのMAC宛フレームをどのポートへ出すかを決めます。
| テーブル | 保持する機器 | 対応関係 | 転送での役割 |
|---|---|---|---|
| ARPテーブル | L3端末・ルーター | IPアドレスとMACアドレス | 同一セグメントのネクストホップをEthernetフレームへ変換 |
| MACアドレステーブル | L2スイッチ | MACアドレスとVLAN・ポート | 受信フレームをどのポートへ転送するか判断 |
ARPテーブルとは?
ARPテーブルは、同一L2セグメント上の宛先または次ホップのIPとMACの対応を保持します。未登録ならARP要求をブロードキャストし、対象の応答から学習します。
端末やルーターはARPキャッシュを持ちます。L3機器なら show arp で、どのIPにどのMACがひも付いているか、その学習がいつまで有効かを確認できます。
| 確認軸 | 実務で押さえる内容 |
|---|---|
| ポイント1 | ARPは同一L2内の次ホップMACを解決する |
| ポイント2 | ARP要求はブロードキャスト、応答は通常ユニキャスト |
| ポイント3 | 端末やルーターはARPキャッシュを持つ |
| ポイント4 | L2スイッチは送信元MACと受信ポートを学習する |
| ポイント5 | MACテーブルはVLAN単位で扱われる |
(出典:RFC 1122 Requirements for Internet Hosts)
MACアドレステーブルとは?
MACアドレステーブルは、スイッチが受信フレームの送信元MACを、VLANと受信ポートにひも付けて学習した表です。宛先MACが未学習なら、対象VLAN内の受信ポート以外へフラッドします。
スイッチは受信したフレームの送信元MACを、その受信ポートとVLANにひも付けて学習します。show mac address-table を実行すると、どのMACがどのポートで学習されているかを一覧で確認できます。
(出典:Understand Proxy ARP(Cisco))
それぞれを持つ機器
端末・ルーター・L3スイッチでARPキャッシュ、L2/L3スイッチでMACテーブルを確認します。L3スイッチは両方を持つため、VRF・VLAN・インターフェースを合わせて見ます。
- STEP 01端末が宛先またはゲートウェイをARP解決
- STEP 02フレームをスイッチへ送信
- STEP 03スイッチが送信元MACを受信ポートに学習
- STEP 04宛先MACの登録ポートへ転送
- STEP 05未登録なら同一VLANへフラッディング
IPアドレスとMACアドレスの対応
ARPテーブルで対象IPに対応するMACとL3インターフェースを確認し、そのMACをスイッチのMACアドレステーブルで検索します。ARPのVLANとMACテーブルのVLANが一致し、想定ポートへ学習しているかを同じ時刻で照合します。
スイッチが転送先ポートを学習するのはどういう仕組み?
スイッチは受信フレームの送信元MACアドレスを、受信したVLANとポートへ学習します。宛先MACが未学習なら同一VLANの受信ポート以外へフラッディングし、返信を受けると相手側MACも学習して以後は該当ポートへ転送します。
show arpとshow mac address-tableで何を確認できる?
show ip arpでIP、MAC、インターフェース、経過時間を確認し、show mac address-table address MACでそのMACが学習されたVLANとポートを追います。両者を同じMACで繋ぐと、IPから物理的な収容先まで絞れます。
ARP要求はブロードキャストで送られ、応答は通常ユニキャストで返ります。show arp でMACが解決できていれば、その相手からARP応答が返ってきたということです。
通信フローでは両テーブルをどう確認する?
端末が別セグメントへ送る場合、まずゲートウェイIPをARPでMACへ変換し、スイッチはそのMACを学習しているポートへフレームを転送します。show ip arpでIPからMACを得て、show mac address-table addressでMACからVLAN・ポートを追います。
テーブルに情報がない場合の動作
ARP未登録ならARP要求と応答、MAC未登録なら対象VLAN内のUnknown Unicastフラッドを確認します。ただちにテーブルを消去せず、キャプチャとカウンターを保存して未学習の原因を追います。
障害切り分けで確認すること
ARPがIncompleteならARP要求と応答、端末・VLAN・ゲートウェイを確認します。ARPはあるのにMACが未学習なら、スイッチが端末からフレームを受信しているか、Access VLAN、Trunk、STP、配線を確認します。二つの表は同じ時刻・同じVRF/VLANで取得してください。
設定・確認コマンドはどう実行する?
対象IPをARPテーブルで検索してMACとL3インターフェースを確認し、そのMACをMACアドレステーブルで検索してVLANと物理ポートを追います。VRF、VLAN、取得時刻をそろえ、消去コマンドは変更前の表を保存してから実施します。
show running-config
show interfaces status
show ip route
正常時と異常時の出力はどう違う?
正常時はARPのIP・MAC・L3インターフェースと、MACテーブルのVLAN・ポートが同じ通信経路を示します。ARPがIncomplete、MACが未学習、想定外ポートへ移動している場合は、端末・VLAN・トランク・配線を区間ごとに確認します。
| 確認 | 正常時 | 異常時 | 次の確認 |
|---|---|---|---|
| 状態 | up/up、期待した経路・隣接情報が表示される | down、Incomplete、経路なし、拒否カウンタ増加 | 物理、VLAN、ARP、経路、ACLを一段ずつ戻って確認 |
| 差分 | 設計値・作業前証跡と一致 | 想定外のIF、ネクストホップ、VLAN、エラー増加 | 直前変更と隣接機器の両側を照合 |
関連する記事
- MACアドレステーブルとフラッディングの仕組みを図解
- スイッチングとルーティングの違い|L2・L3の通信を図解
- Pingが通らない原因は?ネットワーク障害の切り分け手順
表を消す前に現状を保存する
障害時は表を消す前に必ず現状を保存します。ARPのIncomplete、MACのポート移動、同じIPに対するMAC変動は、それぞれ異なる原因を示すためです。
案件では、正常時の情報がなければ障害時の差分を判断できません。作業前にWindows/Linux: arp -a / ip neighとCisco L3: show arpを取得し、変更後も同じ条件で比較します。二つの表をつなぐとフレーム経路を追えます。
この内容は、設計構築チャンネルの動画でも解説しています。
まとめ
ARPテーブルはIP→MAC、MACアドレステーブルはMAC→VLAN/ポートの対応を保持します。障害時は両方を同じMACで照合し、ARPの応答、VLAN、学習ポート、重複IPの順に差を確認します。
