ARPとは何か?
ARP(Address Resolution Protocol)とは、コンピュータネットワークにおいて「IPアドレス」から対応する「MACアドレス(物理アドレス)」を調べるための通信プロトコルです。
簡単に言えば、「このIPアドレスの機器は、どのネットワーク機器(物理アドレス)なのか?」を知るために使われます。
たとえば、あなたのPCがネットワーク上のプリンタに接続しようとする際、相手のIPアドレスは知っていても、そのプリンタのMACアドレスがわからなければ通信できません。そこでARPの出番です。ARPはIPアドレスを元に、その機器のMACアドレスを調べてくれるのです。
ネットワーク通信の基礎:IPアドレスとMACアドレスの違い
ARPの理解には、まず「IPアドレス」と「MACアドレス」の違いを押さえておくことが大切です。
- IPアドレス(論理アドレス):インターネット上の住所のようなもので、変更可能です。例:192.168.1.10
- MACアドレス(物理アドレス):ネットワーク機器(NIC)に固有の番号。世界で一意。例:00:1A:2B:3C:4D:5E
ネットワーク通信では、まず宛先のIPアドレスを指定し、次にARPによって対応するMACアドレスを取得してから、実際のデータ送信が行われます。
ARPの役割:なぜ必要なのか?
IPアドレスで通信先が分かっていても、それだけではデータは送れません。実際にネットワーク上で通信を行うのはMACアドレス同士のやりとりだからです。
そのため、「このIPアドレスを持つ機器のMACアドレスは何ですか?」と尋ねるためにARPが必要になります。
ARPがなければ、IPアドレスからMACアドレスを導き出す手段がなく、通信は成立しません。
ARPの仕組み:リクエストとリプライの流れ
ARPは以下のようなシンプルな仕組みで動作します。
● ARPリクエスト
自分のLAN内にブロードキャストで次のようなメッセージを送信します。
「192.168.1.5のIPアドレスを持っている人、あなたのMACアドレスを教えてください!」
このARPリクエストは、同じネットワークセグメント内のすべての機器に送信されます。
● ARPリプライ
該当のIPアドレスを持つ機器が、それに応答します。
「はい、私です。私のMACアドレスは00:1A:2B:3C:4D:5Eです!」
このようにして、IPアドレスとMACアドレスの対応関係が判明し、通信が可能になります。
ARPテーブルとは?:キャッシュの仕組みと確認方法
ARPの結果は都度毎回調べるわけではなく、「ARPテーブル」というキャッシュに一定期間保存されます。これにより、同じ宛先と繰り返し通信するときに毎回ARPを使う必要がなくなり、通信効率が向上します。
● 確認方法の例
- Windows:
コマンドプロンプトでarp -a - macOS / Linux:
ターミナルでarpまたはip neigh
ARPテーブルは時間とともに消去されたり、上書きされたりします。
ARPの種類と応用
ARPには応用的な使われ方や、拡張された種類も存在します。
1. グラチアスARP(Gratuitous ARP)
自分のIPアドレスとMACアドレスの組み合わせをネットワークに知らせるために、自発的に送信するARPです。
主な用途:
- IPアドレスの重複検出(同じIPを使っている機器がないかチェック)
- ネットワーク機器の冗長構成(例:VRRP)でのMACアドレスの引き継ぎ
2. プロキシARP(Proxy ARP)
別のネットワークにいる機器の代わりに、あたかも自分がそのMACアドレスであるかのように振る舞うARP応答です。
主な用途:
- ルーターなどが、複数のネットワーク間でARPを中継する際に使用
ARPに関連するトラブルとセキュリティ
ARPは便利な反面、セキュリティの弱点にもなり得ます。
1. ARPスプーフィングとは?
ARPの仕組みを悪用して、偽のARPリプライを送信する攻撃手法です。
たとえば攻撃者が次のようなメッセージを送ると…
「192.168.1.1(ルーター)は、私(攻撃者)のMACアドレスです!」
被害者のPCはルーターに通信しているつもりでも、実際には攻撃者にデータが流れます。
2. ARPポイズニングのリスクと対策
ARPスプーフィングによってARPテーブルが偽情報で「毒される(poisoning)」と、通信の盗聴や改ざん、なりすましなどのリスクがあります。
対策としては以下のような方法があります。
- 静的ARPテーブルを使う(ただし管理が大変)
- VLANの活用やスイッチのセキュリティ設定(ポートセキュリティ)
- ARP監視ツール(ARPウォッチャー、IDS/IPSなど)の導入
ARPの確認・操作方法(Windows / macOS / Linux)
ARPの状態はOSのコマンドで簡単に確認できます。
8-1. WindowsでのARP確認と操作
arp -a
現在のARPテーブルを表示します。
arp -d 192.168.1.1
特定のIPアドレスに対応するエントリを削除することもできます。
8-2. macOS / Linuxでのコマンド例
arp -a
または、最近のLinuxでは以下のように使うこともあります:
ip neighbor
Linuxでは ip コマンドの使用が推奨されています。
ARPは非常に基本的な仕組みですが、ネットワーク通信の根幹を支える重要な技術です。
IPアドレスとMACアドレスの橋渡しをすることで、LAN内の通信が成立します。
また、ARPの動作やセキュリティリスク、ツールでの確認方法などを理解しておくと、ネットワークトラブルの診断にも非常に役立ちます。
ITやネットワークの基礎を学ぶ上で、ARPはぜひ押さえておきたいプロトコルの一つです。

