ARP

読み:あーぷ / 英語表記:Address Resolution Protocol

IPv4で、宛先のIPアドレスから、同じネットワーク上にある機器のMACアドレスを求めるプロトコル。問い合わせはブロードキャストで送り、応答はユニキャストで返る。IPv6では、ICMPv6を使った近隣探索がこの役割を担う。

イマシルちゃんの解説

IPアドレスは「住所」、MACアドレスは「その家の表札」みたいなものなんだ。
同じネットワークの中で実際に荷物(フレーム)を届けるには、表札のほうが必要なんだよ。

そこでARPは、みんなに向かって大声で聞くんだ。
「192.168.1.10番地の人、表札を教えて〜!」
すると、その住所の人だけが「ぼくだよ、表札はこれ!」って返事をくれるんだよ!

より深い解説

定義

ARP(Address Resolution Protocol)は、RFC 826で定められた、IPv4アドレスに対応するMACアドレスを求める(アドレス解決する)プロトコルである。イーサネットのフレームを送るには宛先のMACアドレスが必要なため、IPv4でLAN上の機器と通信する前に使われる。

ARPのメッセージは、IPパケットに入れずに、イーサネットのフレームで直接運ばれる(タイプ値0x0806)。

動作

  1. 送信元は、宛先IPアドレスを入れたARP要求を、ブロードキャスト(宛先MACアドレス FF-FF-FF-FF-FF-FF)で送る
  2. 同じネットワークのすべての機器が受け取るが、自分のIPアドレスが書かれた機器だけが応答する
  3. 該当する機器は、自分のMACアドレスを入れたARP応答を、要求の送信元にユニキャストで返す
  4. 送信元は、得られた対応をARPテーブル(ARPキャッシュ)に一定時間保存し、次からは問い合わせずに使う

別のネットワークの宛先の場合

宛先が別のネットワークにある場合、送信元は宛先そのもののMACアドレスではなく、デフォルトゲートウェイ(ルータ)のMACアドレスをARPで求める。ARPの問い合わせはルータを越えないため、MACアドレスを解決できるのは同じネットワークの中だけである。

ARPの応用

名前内容
GARP(Gratuitous ARP)自分のIPアドレスを宛先にしたARPを送る。IPアドレスの重複の検出や、周りの機器のARPテーブルの更新(冗長化構成の切り替え時など)に使う
プロキシARPルータが、別のネットワークにある機器の代わりに、自分のMACアドレスでARP応答を返す

セキュリティ上の問題

ARPには認証の仕組みがなく、要求していないARP応答も受け入れてしまう機器が多い。この性質を悪用し、偽のARP応答を送って他人のIPアドレスに自分のMACアドレスを結び付けさせ、通信を横取りする攻撃をARPスプーフィング(ARPポイズニング)という。中間者攻撃の手段として使われる。

対策として、スイッチでARPのやり取りを検査する機能(ダイナミックARPインスペクション)や、重要な機器のARPテーブルを静的に設定する方法がある。

関連するプロトコルとの比較

プロトコル求めるもの手がかり
ARPMACアドレスIPアドレス
RARPIPアドレスMACアドレス
DHCPIPアドレスなどの設定情報MACアドレス(クライアントの識別)
NDP(IPv6)MACアドレスIPv6アドレス

IPv6には、ARPというプロトコルはない。IPv6でのアドレス解決は、ICMPv6の近隣要請(NS)と近隣広告(NA)のメッセージを使う近隣探索プロトコル(NDP)が行う。また、IPv6にはブロードキャストがないため、近隣要請は要請ノードマルチキャストアドレスに送られ、関係のない機器の負荷を減らしている。

実際の試験ではここに出る!

この用語が出てくる記事

↑