ARP 【Address Resolution Protocol】 アドレス解決プロトコル
概要
ARP(Address Resolution Protocol)とは、IPアドレスから対応するMACアドレスを求める手順を定めたプロトコル(通信規約)。あるIPアドレスを持つ機器を特定し、その機器の物理的な所在を表すMACアドレスを対応付ける。インターネットで標準的に用いられるプロトコルであるIP(Internet Protocol)では、各機器に「IPアドレス」という識別番号を割り当てて通信する。一方、イーサネット(Ethernet)やWi-Fiなどの物理的なネットワークでは、これとは別に各機器に固有の「MACアドレス」が割り当てられ、そのネットワーク内での機器の識別、データの宛先や送信元の指定に用いられる。
あるIPアドレス宛てのデータをLAN内で送信するには、そのIPアドレスを持つのがどの機器なのかを割り出し、対応するMACアドレスを知る必要がある。この探査を行なうための通信手順やデータ形式を定めたプロトコル(通信規約)の標準がARPである。
問い合わせ手順
あるIPアドレスに対応するMACアドレスを調べたい機器は、特殊なイーサネットフレームを用いて調べたいIPアドレスを記載した問い合わせ(ARPリクエスト)を作成し、物理的に通信可能な範囲(同じネットワークセグメント)にいる機器に向けて同報送信(ブロードキャスト)する。
該当するIPアドレスの持ち主が問い合わせを受信したら、自らのMACアドレスを記載した応答(ARPリプライ)を問い合わせ元に返信する。問い合わせ元はその情報を記録し、以後、そのIPアドレス宛てにパケットを送信する際には宛先MACアドレスとしてARPで調べたMACアドレスを書き入れる。一定時間内に応答がなければ、当該IPアドレスを持つ機器は同一ネットワーク上には存在しないと判断する。
ARPテーブル
データ送信の度に毎回同じ問い合わせを繰り返すのは無駄なため、一度問い合わせたIPアドレスとMACアドレスの対応関係は「ARPテーブル」(ARP table)あるいは「ARPキャッシュ」(ARP cache)と呼ばれるリストに保存し、次からはこのリストを参照して対応アドレスを求める。調査結果には有効期限が指定され、期限が来ると内容が破棄されて改めて調べ直す。
LinuxなどのUNIX系OSやWindowsでは、コマンドラインからarpコマンドを実行すると現在のARPテーブルの表示や編集を行うことができる。ARPテーブルにIPアドレスとMACアドレスのペアを明示的に追加したり、特定のペアを削除したり、現在のARPテーブルを一覧表示することができる。