【Linux/Windows】arpコマンドの使い方|IPアドレスとMACアドレスの確認

【Linux/Windows】arpコマンドの使い方|IPアドレスとMACアドレスの確認

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:4,122

ネットワークのトラブルシューティングに欠かせないarpコマンドの使い方を解説。IPアドレスとMACアドレスの対応確認や、ARPテーブルの表示・削除方法をLinuxおよびWindows環境別にわかりやすく実例を交えて紹介します。

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

初心者向け

わかばちゃんと学ぶ サーバー監視

難易度
実用性
読みやすさ

マンガと図解が中心で圧倒的に読みやすい。負荷調査の手法がスッと理解できるようになります。

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ

「社内ネットワークにある別のPCと通信できなくなったけれど、IPIP [アイピー]Internet Protocol。インターネット通信の基本プロトコルアドレスしか分からなくて原因調査が進まない」「ネットワーク機器や端末のMACアドレスを素早く確認したい」といった悩みを抱えていませんか?

ネットワークのトラブルシューティングやセキュリティ管理において、IPアドレスとMACアドレスの対応関係を把握することは極めて重要です。arpコマンドを活用すれば、現在通信している機器のMACアドレスを簡単に確認し、ネットワーク経路の異常を切り分けることができます。

この記事を読むことで、LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルおよびWindows環境におけるarpコマンド(または代替コマンド)の基本操作から、ARPテーブルの表示・追加・削除、さらには実際のトラブルシューティングやセキュリティ対策(ARPスプーフィングの検知)までの具体的な手順がすべてわかるようになります。

動作確認環境(Windows / Linux)

本記事で紹介するコマンドおよび手順は、以下の環境で動作確認を行っています。

arpコマンドとは?IPアドレスとMACアドレスの対応を管理する仕組み

ネットワーク上でコンピュータ同士が通信を行う際、IPアドレス(ネットワーク層)だけでなく、MACアドレス(データリンク層)を用いて宛先を特定しています。このIPアドレスとMACアドレスの対応関係を管理・解決するためのプロトコルがARP(Address Resolution Protocol)です。

ARP(Address Resolution Protocol)の仕組み

MACアドレスは、同じネットワーク(同一リンク)上で通信相手を識別するために使われるアドレスです。IP通信では、IPパケットをEthernetEthernet [イーサネット]有線LANなどのコンピュータネットワークで最も普及している通信規格などのリンク層で送信する際に、宛先のMACアドレスが必要になります。しかし、私たちが知っているのは宛先のIPアドレスだけというケースがほとんどです。

そこでOSOS [オーエス]Operating System。基本ソフトウェアは、同じリンク上にある機器に対して「このIPアドレスを使っている機器のMACアドレスを教えてください」というARPリクエストをブロードキャストします。該当するIPアドレスを持つ端末が「それは私です。私のMACアドレスはこれです」と返答(ARPリプライ)することで、通信が可能になります。

この一度学習した「IPアドレスとMACアドレスの対応表」を一時的に保存している場所が**ARPテーブル(またはARPキャッシュ)**です。

【重要】ARPで確認できるのは基本的に同一リンク上の相手のみ IPv4IPv4 [アイピーブイフォー]インターネットプロトコル第4版。32ビットでIPアドレスを表現するのARPで直接MACアドレスを解決できるのは、同一リンク上の相手です。別サブネットにある宛先へ通信する場合、端末は宛先PCのMACアドレスではなく、次の転送先となるデフォルトゲートウェイなどのMACアドレスをARPで解決します。

どんな時にarpコマンドを使うのか

arpコマンドは、主に以下のようなシーンで活用されます。

  • 通信障害の切り分け: 特定の端末と通信できないとき、ARPテーブルに相手のMACアドレスが正しく登録されているか確認する。
  • IPアドレスとMACアドレスの対応確認: 自端末が保持しているARPキャッシュから、通信した相手などのIPアドレスとMACアドレスの対応を確認する。
  • 静的ARPエントリの設定: 特定のIPアドレスとMACアドレスの対応を固定したい場合に、静的ARPエントリを追加する。

Linuxでのarpコマンド・ip neighコマンドの使い方

近年の多くのLinuxディストリビューションでは、従来のarpコマンドを含む net-tools パッケージがデフォルトでインストールされていない場合があります。そのため、現代のLinuxでは標準的なネットワーク管理ツールである ip コマンドを使用することが推奨されています。

ARPテーブル(キャッシュ)を表示・確認する

LinuxでIPv4のARP情報を確認するには、ip neigh コマンドを使用します。

Terminal window
ip neigh

実行結果の例:

192.168.1.1 dev eth0 lladdr aa:bb:cc:dd:ee:ff REACHABLE
192.168.254.50 dev eth0 lladdr 11:22:33:44:55:66 STALE

出力の見方:

  • 192.168.1.1: 相手のIPアドレス
  • dev eth0: パケットを送信しているネットワークインターフェース
  • lladdr aa:bb:cc:dd:ee:ff: 相手のMACアドレス(Link Layer Address)
  • REACHABLE / STALE: エントリの状態(到達可能か、古い情報かなど)

※なお、net-tools がインストールされている環境であれば、伝統的な arp -a コマンドでも同様に確認が可能です。

ARPエントリを手動で追加・変更・削除する方法

特定のIPアドレスに対して、強制的にMACアドレスを紐付けたい場合(静的ARPエントリの追加)や、壊れたキャッシュをクリアしたい場合には ip コマンドを用います。

ステップ1: ARPエントリを手動で追加する

Terminal window
sudo ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0

※既にエントリが存在する場合はエラーになるため、変更や上書きを行いたい場合は add の代わりに replace を使用します。

Terminal window
sudo ip neigh replace 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0

ステップ2: ARPエントリを削除する

Terminal window
sudo ip neigh del 192.168.1.100 dev eth0

Windowsでのarpコマンドの使い方

Windows環境では、古くからおなじみの arp コマンドが現在でも標準で利用できます。表示だけなら通常の権限で実行できますが、ARPエントリの追加・削除など変更操作では、コマンドプロンプトやPowerShellを管理者権限で起動する必要があります。

WindowsでARPキャッシュを確認する(arp -a)

現在のARPテーブルを確認するには、-a オプションを使用します。

Terminal window
arp -a

実行結果の例:

インターフェイス: 192.168.1.50 --- 0x4
インターネット アドレス 物理アドレス 種類
192.168.1.1 aa-bb-cc-dd-ee-ff 動的
192.168.1.15 11-22-33-44-55-66 動的
224.0.0.22 01-00-5e-00-00-16 静的
239.255.255.250 01-00-5e-7f-ff-fa 静的

出力のポイント:

  • 動的 (dynamic): ARPリクエストによって自動的に学習され、一定時間通信がないと自動削除されるエントリです。
  • 静的 (static): 手動で追加された、あるいはOSが固定で保持しているエントリです。

ARPキャッシュの削除と静的エントリの固定化(arp -d, arp -s)

Windows環境でARPキャッシュをクリアしたり、固定化したりする手順です。これらを実行するには、コマンドプロンプトを管理者として実行する必要があります。

ステップ1: ARPキャッシュをすべて削除する ネットワークの不調時やARPキャッシュを再学習させたい場合は、ワイルドカード * を指定してすべてのARPエントリを削除できます。

Terminal window
arp -d *

特定のIPアドレスのエントリだけを削除したい場合は、IPアドレスを指定します。

Terminal window
arp -d 192.168.1.15

ステップ2: ARPエントリを静的(固定)として登録する 特定のIPアドレスとMACアドレスの対応を固定する用途があります。ただし、ARPスプーフィング対策としてすべての環境で利用するものではなく、大規模なネットワークではDHCPDHCP [ディーエイチシーピー]Dynamic Host Configuration Protocol。ネットワーク内の端末にIPアドレス等を自動で割り当てるプロトコル SnoopingやDynamic ARP Inspection(DAI)など、スイッチ側の機能を組み合わせて対策する方法があります。

Terminal window
arp -s 192.168.1.100 00-11-22-33-44-55

arpコマンドを活用したトラブルシューティング実践例

ここからは、実際の現場で遭遇しがちなトラブルに対し、arpコマンドをどのように役立てるのかを解説します。

IPアドレスから通信相手のMACアドレスを特定・調査する

「ファイルサーバーやプリンターのIPアドレス(例: 192.168.1.50)は分かっているのに、ブラウザやエクスプローラーからアクセスできない」という場合の手順です。

  1. まず、対象のIPアドレスに対して ping を実行します。対象が同一リンク上にあり、必要なARP情報がキャッシュにない場合、pingによる通信開始に伴ってARPによるMACアドレス解決が行われます。
    Terminal window
    ping 192.168.1.50
  2. その後、ARPテーブルを確認します。
    Terminal window
    # Linuxの場合
    ip neigh show 192.168.1.50
    # Windowsの場合
    arp -a | findstr 192.168.1.50
  3. 結果の判断:
    • MACアドレスが表示され、状態が REACHABLE などであれば、少なくとも同一リンク上の隣接ノードに対するARP/neighbor解決は成功していると判断できます。ただし、TCPTCP [ティーシーピー]Transmission Control Protocol。信頼性の高い通信プロトコルやアプリケーションレベルの通信が正常であることまでは意味しません。
    • ARP/neighbor情報が取得できない場合は、対象ホストの電源・NIC・VLAN・IPアドレス設定、ネットワーク経路などを追加で確認します。

ARPスプーフィングの兆候を見つける

セキュリティ上の脅威である「ARPスプーフィング(ARPキャッシュポイズニング)」は、攻撃者が偽のARPレスポンスを送りつけることで、通信を盗聴・改ざんする手法です。

調査と対策のポイント:

  • ARPテーブルを定期的に確認し、**「異なる複数のIPアドレスに対して、まったく同じMACアドレスが割り当てられている」**といった不自然な状態がないか確認します(ただし、ルーター配下や仮想環境等で意図的にMACアドレスが共有されている場合を除く)。
  • 不審な変動を見つけた場合は、ネットワーク機器のログやARP情報を追加で確認し、必要に応じてDHCP SnoopingやDynamic ARP Inspection(DAI)、ポートセキュリティなどの対策を検討してください。

まとめ:arpコマンドでネットワークの異常を迅速に切り分けよう

本記事では、ネットワーク調査に欠かせないarpコマンドの仕組みと使い方について解説しました。最後に重要なポイントを振り返ります。

  • ARPは、IPアドレスから通信相手のMACアドレスを特定するための重要なプロトコルである。
  • Linuxでは現在の標準コマンドである ip neigh を使い、必要に応じて追加・削除を行う。
  • Windowsでは arp -a でキャッシュを確認し、管理者権限で -d(削除)や -s(固定)を操作する。
  • 疎通トラブル時には ping とARP/neighborテーブルを組み合わせて確認することで、同一リンク上のARP解決や隣接ノードとの通信状況を切り分ける手掛かりになる。

ネットワークトラブルに直面した際は、ぜひこの記事を参考にarpコマンドを活用して原因究明に役立ててください。


以上で本記事の解説を終わります。
よいITライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る →

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

人気記事


記事を評価

Thanks!
目次
Scroll to Top