ARPコマンドとは
ARP(アープ)コマンドは、端末が保持するIPアドレスとMACアドレスの対応表を表示・変更するコマンドです。ARPはAddress Resolution Protocol(アドレス・レゾリューション・プロトコル)の略で、IPv4パケットを同じリンク上のEthernet等で届けるために使います。
Windowsのarp -aはインターフェース別のARPキャッシュを表示し、-dで項目削除、-sで静的項目追加を行えます。Unix系にも同名ツールがありますが選択肢は異なり、Linuxでは現在ip近隣機器がIPv4・IPv6の近隣表を扱います。
ARP表に入るのは同一リンクで次にフレームを渡す相手です。遠隔InternetサーバーのMACアドレスではなく、通常はローカルデフォルトゲートウェイのMACアドレスを解決します。

IPv4フレームを送るまで
同一サブネットなら宛先自身、リモートならデフォルトゲートウェイ等の次ホップを選びます。
next-hop IPv4アドレスに対応するリンク層アドレスと状態を調べます。
対応がなければ「このIPv4を持つ端末」を全参加端末へ問い合わせます。
所有する端末がARP 応答で自身のハードウェアアドレスを通知します。
次のパケットで再質問しないよう対応を保存し、状態と時間で更新します。
IPv4宛先はリモートのままでも、フレーム宛先はローカルゲートウェイになります。
インターフェースごとに表がある
一台にEthernet、Wi-Fi、VPN等があれば、同じIPv4アドレスに対しても出力インターフェースごとに近隣関係が違います。Windowsの表示はインターフェースのローカルアドレスごとに表を分けます。
項目を調べる前に経路で使用インターフェースを確認します。使われないアダプターの表を消しても、問題の通信には影響しません。逆に利用中インターフェースを誤って操作すると一時通信断を起こします。
リモートサーバーのMACは学習しない
IPv4宛先が同一サブネット外なら、端末は経路表からゲートウェイを選び、ゲートウェイのMACアドレスをARPで解決します。IPヘッダーの宛先はリモートサーバー、Ethernetフレームの宛先はゲートウェイです。
ルーターを一つ越えるたびにリンク層ヘッダーは作り直されます。自宅PCのARP表へ海外WebサーバーのMACがないのは正常です。リモートサーバーまでのルーター列はtraceroute、ローカル次ホップ対応はARPと役割を分けます。
動的・静的・不完全を分ける
動的項目はARP交換等から学習し、時間と利用状況で更新・削除されます。静的項目は管理者が固定対応として設定し、自動学習で簡単に変わらないようにします。
解決中でreplyがない場合、不完全等の状態になります。Windowsの従来ARP表示は主に動的・静的を示し、Linuxのip近隣機器はINCOMPLETE、REACHABLE、STALE、DELAY、PROBE、FAILED等を詳しく表示します。
キャッシュ削除は次の解決をやり直す操作
古いMAC対応が疑われるとき、対象項目を削除すると、次の通信でARP 要求を再送します。削除自体がルーター再起動、DHCP更新、DNSキャッシュ削除、IPアドレス変更を行うわけではありません。
すべての項目を消すと、ローカル通信ごとに再解決が必要になり一時遅延が増えます。対象IPv4、インターフェース、現在のMAC、変化時刻を記録し、必要な項目だけを操作します。
静的項目は恒久的な安全策ではない
静的対応付けは特定機器のARPなりすまし影響を抑える場合がありますが、ゲートウェイ交換、NIC交換、冗長化、仮想MAC移動で正しいMACが変わると通信を止めます。台数が増えると管理も困難です。
Windowsのarp -sで追加した項目はTCP/IPスタック再起動等で消える場合があり、永続化方法もOSで異なります。ネットワークスイッチのDHCP snooping、Dynamic ARP Inspection、セグメント分離、暗号化・相互認証等と役割を分けます。
ARPキャッシュは本人確認台帳ではない
ARPには基本的な暗号認証がなく、同一LANの攻撃者が偽replyを送り、IP・MAC対応を書き換えさせるARPなりすましが可能です。表示されたMACが期待値と違うときは、スイッチ表、DHCPリース、物理ポート、管理台帳を照合します。
同じMACが複数IPへ対応することはルーター、プロキシARP、仮想化等で正当な場合もあります。同じIPが短時間に複数MACへ揺れる場合も、冗長ゲートウェイの仮想MAC移動か攻撃かを文脈で判断します。
IPv6はARPを使わない
IPv6はICMPv6のNeighbour Discovery Protocol(ネイバー・ディスカバリー・プロトコル/NDP)を使い、Neighbour Solicitation・Advertisementでリンク層アドレスを解決します。ブロードキャストではなくマルチキャストを利用します。
従来のARPコマンドにはIPv6近隣が出ません。Linuxではip近隣機器、Windowsでは近隣キャッシュを扱う別コマンド・APIを使います。「IPv6アドレスのARP項目がない」をIPv6障害としません。
ARPコマンドは、IPv4の次ホップとMACアドレスの対応をインターフェース別キャッシュで確認・変更するツールです。経路が次ホップを決め、ARPが同一リンクで解決し、リモート経路・IPv6・相手認証は別の仕組みです。
Windows arpのinterface別cache、表示・削除・static追加:Microsoft Learn「arp」