arpコマンドは、IPアドレスとMACアドレスの対応表(ARPキャッシュ)を表示・削除・追加するコマンドです。Windowsは「arp -a」で一覧を出し、削除は管理者権限で「arp -d」。Linuxでは「ip neigh」が今の標準です。
この記事でわかること
- arp -aの出力で、「動的」「静的」と各列が何を表すか
- 削除・静的登録など目的別のオプションと、管理者権限が要る操作
- Linuxのip neighとCisco IOSのshow ip arpでの同じ作業
- IPの重複や機器交換の後など、ARPで切り分けられるトラブル
- ARPテーブルとMACアドレステーブルの違いと、つなげて使う手順
一次情報: Microsoft Learn「arp」(参照)/Linux man-pages「ip-neighbour(8)」(参照)/Cisco IOS IP Addressing Services Command Reference(参照)※2026年10月時点
ARPやMACアドレスは、ネットワークの資格学習で最初につまずきやすいところです。どの資格をどの順で取ると現場で評価されるか、別の記事で整理しました。
arpコマンドとは?IPとMACの対応表を扱うコマンド
arpコマンドとは、パソコンが覚えている「IPアドレスとMACアドレスの対応表」を表示したり、書き換えたりするコマンドです。この対応表をARPキャッシュ(ARPテーブル)と呼びます。
同じネットワークの中で相手に届けるには、IPアドレスだけでなく相手のMACアドレスが要ります。そこで「このIPの持ち主は誰?」とブロードキャストで尋ね、持ち主が自分のMACアドレスを返す仕組みがARPです。手順はRFC 826で決まっています。
返ってきた答えを毎回聞き直すのは無駄なので、しばらく手元に覚えておく。その控えがARPキャッシュで、arpコマンドはそれをのぞく道具です。
ARPキャッシュに載るのは同じネットワークの相手だけ
ここは誤解が多いところです。別のネットワークにいる相手のMACアドレスは、ARPキャッシュに載りません。
インターネット上のサーバーへ通信するとき、パソコンが実際に送り出す先はデフォルトゲートウェイです。だから、キャッシュに載るのはゲートウェイ(ルーター)のIPとMACの組み合わせになります。
| 載るもの | 載らないもの |
|---|---|
| 同じネットワークの相手(PC・プリンター・サーバー) | ルーターの先にいる相手のMAC |
| デフォルトゲートウェイ | まだ通信していない相手(問い合わせ前) |
| ブロードキャスト・マルチキャストの宛先(静的) | 応答しなかった相手(失敗の記録だけ残ることがある) |
arp -aの見方|「動的」「静的」と各列の意味
Windowsでは、コマンドプロンプトで「arp -a」と打つとキャッシュの一覧が出ます。下は日本語表示の出力例で、アドレスは説明用の値です。
インターフェイス: 192.0.2.10 --- 0xb
インターネット アドレス 物理アドレス 種類
192.0.2.1 00-00-5e-00-53-01 動的
192.0.2.20 00-00-5e-00-53-14 動的
192.0.2.255 ff-ff-ff-ff-ff-ff 静的
224.0.0.22 01-00-5e-00-00-16 静的
239.255.255.250 01-00-5e-7f-ff-fa 静的
| 表示 | 意味 | 見るポイント |
|---|---|---|
| インターフェイス: 192.0.2.10 | どのNICの表か(そのNICのIP) | NICが複数あると表も複数出る |
| — 0xb | インターフェイス番号(16進) | 有線・無線・VPNの区別に使う |
| インターネット アドレス | 相手のIPアドレス | ゲートウェイの行がまず大事 |
| 物理アドレス | 相手のMACアドレス | 機器交換の前後で変わるか |
| 動的 | ARPのやり取りで覚えた行 | 時間がたつと自動で消える |
| 静的 | 固定の行(手で登録・OSが自動で置く) | 消えない。手で消すまで残る |
「静的」の行は手で登録したものとは限らない
手で何も登録していないのに「静的」が並んでいて、驚く方は多いはずです。ff-ff-ff-ff-ff-ffはブロードキャスト、01-00-5eで始まるのはIPv4マルチキャストの宛先で、OSが自動で置く行です。
マルチキャストのMACは、IPアドレスの下位23ビットを01-00-5eの後ろに並べて作ります(RFC 7042)。224.0.0.22なら末尾が16(10進の22)、239.255.255.250なら7f-ff-faです。01-00-5eやff-ffの行は気にしなくてよい行と覚えておくと、一覧がぐっと読みやすくなります。
目的別のarpオプション一覧(Windows)
Microsoft Learnの「arp」に載っているオプションを、やりたいこと別に並べ直しました。
| やりたいこと | 書き方 | 補足 |
|---|---|---|
| すべての表を見る | arp -a | -g も同じ動き |
| 特定のIPだけ見る | arp -a 192.0.2.1 | 相手が多いときに便利 |
| NICを指定して見る | arp -a -N 192.0.2.10 | -N は大文字。小文字は不可 |
| 詳しく見る | arp -a -v | 無効な行やループバックの行も出る |
| 1件消す | arp -d 192.0.2.20 | 管理者権限が要る |
| 全部消す | arp -d * | 消してもすぐ載り直す |
| 静的に登録する | arp -s 192.0.2.80 00-00-5e-00-53-50 | 再起動など、TCP/IPが止まると消える |
-sで登録した行は、TCP/IPが再起動されると消えます。Microsoftの資料は、残したいなら登録コマンドをバッチファイルにして、起動時にタスクで実行する方法を案内しています。
削除は管理者で。消してもすぐ載り直す
arp -dは、管理者として開いたコマンドプロンプトでないと失敗します。スタートメニューで「cmd」を右クリックし、「管理者として実行」を選んでから打ってください。
消した行は、次に通信した瞬間にARPで聞き直されて戻ります。消すのは「古い答えを捨てて聞き直させる」ための操作で、通信が切れるわけではありません。
PowerShellなら状態まで見える
PowerShellのGet-NetNeighborを使うと、arp -aには出ない「状態」まで見えます。IPv4では、この表がARPキャッシュそのものです(Microsoft Learn)。
Get-NetNeighbor -AddressFamily IPv4
Get-NetNeighbor -State Reachable,Stale
| 状態 | 意味 |
|---|---|
| Reachable | 直近(1分以内)に到達できたことを確認済み |
| Stale | 到達の確認が古くなった。次に送るまで確認しない |
| Delay/Probe | 到達を確かめ直している途中 |
| Incomplete | 問い合わせ中で、MACアドレスがまだ分からない |
| Unreachable | 到達できない |
| Permanent | 静的に登録された行。設定で消すまで残る |
LinuxとCisco IOSでARPテーブルを見る
同じ作業でも、OSと機器でコマンドが違います。Linuxは「ip neigh」、Cisco IOSは「show ip arp」が基本です。
| やりたいこと | Windows | Linux(iproute2) | Cisco IOS |
|---|---|---|---|
| 一覧を見る | arp -a | ip neigh | show ip arp |
| 特定のIPだけ | arp -a IP | ip neigh show IP | show ip arp IP |
| 1件消す | arp -d IP | ip neigh del IP dev eth0 | clear arp-cache(全体) |
| まとめて消す | arp -d * | ip neigh flush dev eth0 | clear arp-cache |
| 静的に登録 | arp -s IP MAC | ip neigh add IP lladdr MAC dev eth0 nud permanent | arp IP MAC arpa |
| 覚えている時間 | 状態で管理 | 状態で管理(既定30秒が基準) | 既定4時間 |
Linuxはip neighで状態を読む
Linuxの「ip neigh」は、1行に1件ずつ、最後に状態を付けて表示します。
192.0.2.1 dev eth0 lladdr 00:00:5e:00:53:01 REACHABLE
192.0.2.20 dev eth0 lladdr 00:00:5e:00:53:14 STALE
192.0.2.30 dev eth0 FAILED
REACHABLEは確認済み、STALEは「有効だが確認が古い」、FAILEDは何度問い合わせても答えが無かった状態です(man ip-neighbour)。
確認済みの行が有効とみなされる時間は、base_reachable_timeを基準にランダムに決まります。既定は30秒で、その半分から1.5倍の間です(man arp(7))。古いnet-toolsのarpコマンドも使えますが、入っていない環境が増えています。
Cisco IOSはshow ip arpのAgeを見る
Cisco IOSの「show ip arp」は、Ageの列で分単位の経過時間を表します。シスコのコマンドリファレンスによると、Ageが「-」の行はその機器自身のアドレスです。
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.0.2.1 - 0000.5e00.5301 ARPA GigabitEthernet0/0
Internet 192.0.2.20 12 0000.5e00.5314 ARPA GigabitEthernet0/0
Internet 192.0.2.30 0 Incomplete ARPA
Hardware Addrが「Incomplete」の行は、問い合わせたのに答えが返っていない相手です。Cisco IOSの既定の保持時間(arp timeout)は14,400秒=4時間で、インターフェースごとに変えられます。シスコの資料には、1時間未満に縮めると通信量が大きく増えるという注意書きもあるので、むやみに短くしないのが無難です。
arpで切り分けられるトラブル
ARPキャッシュは、通信できないときの手がかりになります。「IPでは届くはずなのに届かない」とき、MACの段階で止まっていないかを見る道具です。
ARPキャッシュの見え方で疑う場所が変わる
- 同じネットワークの相手と通信できない
- 行が無い・Incomplete・FAILED相手が答えていない。電源・ケーブル・VLAN・IPの設定違いを疑う
- MACが前と違う機器を交換した直後なら古いキャッシュ。arp -dで聞き直させる
- 同じIPでMACが入れ替わるIPの重複。2台が同じIPを名乗っている
- ゲートウェイのMACが急に変わった冗長化の切り替えか、なりすまし。どちらかを確かめる
図:行が無いのか、MACが違うのかで、次に見る場所が決まる
機器を交換した後につながらない
プリンターやルーターを同じIPのまま交換すると、周りの機器は古いMACを覚えたままのことがあります。しばらく待てば自然に聞き直されますが、すぐに直したいときは「arp -d 対象のIP」で古い行を捨てます。
Cisco IOSのルーターやL3スイッチは、既定で4時間覚えたままです。サーバーを入れ替えたのにルーター越しの通信だけ戻らない場合は、ルーター側で「clear arp-cache」を打つと解消することがあります。
IPアドレスの重複を見つける
arp -aを何度か打って、同じIPのMACが入れ替わるなら、2台が同じIPを名乗っている疑いが濃いです。MACアドレスの先頭6桁(ベンダー識別子)を見ると、どのメーカーの機器かの見当がつきます。
Linuxなら「arping -D -I eth0 192.0.2.20」で、そのIPを使っている機器がいないかを確かめられます。-Dは重複検出のモードで、誰も答えなければ終了コード0を返します(man arping)。
ゲートウェイのMACが急に変わった
ルーターを2台で冗長化していると、切り替わりでゲートウェイのMACが変わることがあります。VRRPでは、仮想ルーターのMACは00-00-5e-00-01-(VRID)の形と決まっています(RFC 5798)。この形なら冗長化の仮想MACです。
一方、理由なくゲートウェイのMACが別の端末のMACに変わったら、ARPのなりすまし(ARPスプーフィング)を疑います。社内の担当窓口へ早めに相談してください。
ARPテーブルとMACアドレステーブルの違い
名前が似ていて混同しやすいのが、スイッチのMACアドレステーブルです。役割がまったく違います。
| 項目 | ARPテーブル | MACアドレステーブル |
|---|---|---|
| 持っている機器 | PC・サーバー・ルーター(IPを扱う機器) | L2スイッチ |
| 中身 | IPアドレス ⇔ MACアドレス | MACアドレス ⇔ スイッチのポート |
| 見るコマンド | arp -a/ip neigh/show ip arp | show mac address-table |
| 分かること | そのIPの持ち主のMAC | そのMACの機器がどの差し口にいるか |
IPから物理的な差し口までたどる
ARPテーブルとMACアドレステーブルをつなげると、「IP 192.0.2.20の機器は、どのスイッチのどのポートにいるのか」まで追えます。配線図が古い現場で、問題の端末を探すときに使う手順です。
IPアドレスから差し口のポートまでたどる
- 問題の端末のIPは分かるが、どこにつながっているか分からないときに使います。
- 1pingを1回打ってからarp -a同じネットワークのPCかルーターで、そのIPのMACアドレスを調べる
- 2show mac address-tableでMACを探すコアのスイッチで、そのMACがどのポートの先にいるかを見る
- 3ポートの先がスイッチなら、そのスイッチで繰り返す末端のポートに当たるまで、1台ずつたどる
pingを先に打つのは、ARPキャッシュに相手の行を載せるため。
図:ARPテーブルでMACを知り、MACアドレステーブルで差し口を知る
Cisco IOSのスイッチでは「show mac address-table address 0000.5e00.5314」のように、MACを指定して探せます。MACの書き方が「00-00-5e-…」と「0000.5e00.…」で違うので、打ち直すときは区切りに注意してください。
よくある質問
arp -aに自分のIPアドレスが出てこないのはなぜですか?
ARPキャッシュに載るのは、自分が通信した相手です。自分自身の行は載りません。「インターフェイス:」の後ろに出ているIPが、そのNICに付いている自分のアドレスです。
動的のエントリはどれくらいで消えますか?
OSと機器で違います。Linuxは確認済みの状態がbase_reachable_time(既定30秒)を基準にした時間で古くなり、使われなければ消されます。Cisco IOSは既定で4時間です。Windowsは状態(Reachable・Staleなど)で管理していて、Get-NetNeighborで今の状態を確かめられます。
arp -dで削除できないときはどうすればいいですか?
管理者として開いていないコマンドプロンプトでは削除できません。「管理者として実行」で開き直してから打ってください。PowerShellのRemove-NetNeighborでも削除できます。
別のネットワークにあるPCのMACアドレスは、arpで調べられますか?
調べられません。ルーターの先にいる相手へは、ゲートウェイのMACあてに送るので、キャッシュに載るのはゲートウェイの行です。相手のMACを知りたいときは、相手と同じネットワークにある機器でarpを打つか、相手のPCで直接確かめます。
ff-ff-ff-ff-ff-ffや01-00-5eで始まる行は消していいですか?
消す必要はありません。ff-ff-ff-ff-ff-ffはブロードキャスト、01-00-5eで始まるのはマルチキャストの宛先で、OSが自動で置く静的な行です。トラブルの原因になることはまずありません。
まとめ
- arpコマンドは、IPとMACの対応表(ARPキャッシュ)を表示・削除・登録するコマンド
- 載るのは同じネットワークの相手とゲートウェイだけ。ルーターの先の相手は載らない
- Windowsはarp -aで一覧、arp -dで削除(管理者)。Linuxはip neigh、Cisco IOSはshow ip arp
- 行が無い・MACが違う・MACが入れ替わる、の3つで疑う場所が変わる
- スイッチのMACアドレステーブルとつなげると、IPから差し口のポートまでたどれる
ARPで「MACまでは届いている」と分かったら、次はIPの経路です。pingやtracertと組み合わせると、止まっている場所をさらに狭められます。
ARPやMACアドレステーブルを読んで障害の場所を絞る作業は、監視・運用の現場でよく任されます。監視から構築側へ進む道筋を、段階ごとにまとめた記事です。
免責事項
※本記事はMicrosoft・シスコシステムズの公式ドキュメント、Linuxのマニュアル、RFCなどの公開情報をもとに整理したものです。コマンドの表示や既定値は、OSのバージョンや機器の設定によって変わる場合があります。業務で使う機器では、所属先の手順とベンダーの最新資料をあわせてご確認ください。

