ARP
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)。
動作
- 送信元は、宛先IPアドレスを入れたARP要求を、ブロードキャスト(宛先MACアドレス FF-FF-FF-FF-FF-FF)で送る
- 同じネットワークのすべての機器が受け取るが、自分のIPアドレスが書かれた機器だけが応答する
- 該当する機器は、自分のMACアドレスを入れたARP応答を、要求の送信元にユニキャストで返す
- 送信元は、得られた対応を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テーブルを静的に設定する方法がある。
関連するプロトコルとの比較
| プロトコル | 求めるもの | 手がかり |
|---|---|---|
| ARP | MACアドレス | IPアドレス |
| RARP | IPアドレス | MACアドレス |
| DHCP | IPアドレスなどの設定情報 | MACアドレス(クライアントの識別) |
| NDP(IPv6) | MACアドレス | IPv6アドレス |
IPv6には、ARPというプロトコルはない。IPv6でのアドレス解決は、ICMPv6の近隣要請(NS)と近隣広告(NA)のメッセージを使う近隣探索プロトコル(NDP)が行う。また、IPv6にはブロードキャストがないため、近隣要請は要請ノードマルチキャストアドレスに送られ、関係のない機器の負荷を減らしている。
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和7年度 春期 午後Ⅱ 問1
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問6
- ネットワークスペシャリスト 令和5年度 春期 午前Ⅱ 問1
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問7
- ネットワークスペシャリスト 平成30年度 秋期 午前Ⅱ 問6