ARP
IPv4の通信で、同じリンク上の次の配送先のIPアドレスに対応するMACアドレスを求めるプロトコルである。通常のアドレス解決では要求をブロードキャストし、応答をユニキャストで返す。別のネットワークへ送る場合は中継するルータのMACアドレスを調べる。
イマシルちゃんの解説
同じLANの機器へIPv4でデータを送りたいとするね。
イーサネットで届けるには、IPアドレスだけでなく、LAN内の届け先を示すMACアドレスも必要になるんだ。
この二つのアドレスの対応を調べるプロトコルがARPだよ。
対応が分からないときは、LANのみんなに「このIPアドレスの機器はいますか? MACアドレスを教えて!」と問い合わせるの。
そのIPアドレスを使う機器から返事が来れば、教わったMACアドレスを宛先にしてデータを送れるよ。
調べた対応は記録しておくので、毎回みんなに聞き直さなくても通信できるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
ARP(Address Resolution Protocol)は、RFC 826で定められた、IPv4アドレスに対応するMACアドレスを求める(アドレス解決する)プロトコルである。イーサネットのフレームを送るには宛先のMACアドレスが必要なため、IPv4でLAN上の機器と通信する前に使われる。
ARPのメッセージは、IPパケットに入れずに、イーサネットのフレームで直接運ばれる(タイプ値0x0806)。
動作
- 送信元は、宛先IPアドレスを入れたARP要求(ARPリクエスト)を、ブロードキャスト(宛先MACアドレス FF-FF-FF-FF-FF-FF)で送る
- 同じネットワークのすべての機器が受け取るが、自分のIPアドレスが書かれた機器だけが応答する
- 該当する機器は、自分のMACアドレスを入れたARP応答(ARPリプライ)を、要求の送信元にユニキャストで返す
- 送信元は、得られた対応をARPテーブル(ARPキャッシュ)に一定時間保存し、次からは問い合わせずに使う
メッセージの中の四つのアドレス
Ethernet上でIPv4のアドレスを解決する場合、ARPメッセージには次の四つの欄がある。「プロトコルアドレス」はIPv4アドレス、「ハードウェアアドレス」はMACアドレスを指す。
| 略記 | 欄の意味 | 通常の要求で入れる情報 |
|---|---|---|
| SHA | 送信元ハードウェアアドレス | 問い合わせる端末自身のMACアドレス |
| SPA | 送信元プロトコルアドレス | 問い合わせる端末自身のIPv4アドレス |
| THA | 宛先ハードウェアアドレス | 調査中なので未確定。一般に0を設定する |
| TPA | 宛先プロトコルアドレス | MACアドレスを調べたい相手のIPv4アドレス |
例えば端末Aが192.0.2.20の機器Bを探す場合、TPAへ192.0.2.20を入れる。要求をLANへ配るための宛先FF-FF-FF-FF-FF-FFは、外側のEthernetヘッダーの値である。ARPメッセージ内のTHAと混同しない。
Bが返すARP応答では、SPAがBのIPv4アドレス、SHAがBのMACアドレスになる。Aはこの二つの対応を学習する。要求でも送信元の二つの欄は使われており、受信機器はその対応を既存のキャッシュへ反映したり、自分宛ての要求なら追加したりする。対応の学習は応答だけに限られない。
別のネットワークの宛先の場合
宛先が別のネットワークにある場合、送信元は宛先そのもののMACアドレスではなく、デフォルトゲートウェイ(ルータ)のMACアドレスをARPで求める。ARPの問い合わせはルータを越えないため、MACアドレスを解決できるのは同じネットワークの中だけである。
ARPの応用
| 名前 | 内容 |
|---|---|
| GARP(Gratuitous ARP) | 自分のIPアドレスを宛先にしたARPを送る。IPアドレスの重複の検出や、周りの機器のARPテーブルの更新(冗長化構成の切り替え時など)に使う |
| プロキシARP | ルータが、別のネットワークにある機器の代わりに、自分のMACアドレスでARP応答を返す |
セキュリティ上の問題
ARPには認証の仕組みがなく、要求していないARP応答も受け入れてしまう機器が多い。この性質を悪用し、偽のARP応答を送って他人のIPアドレスに自分のMACアドレスを結び付けさせ、通信を横取りする攻撃をARPスプーフィング(ARPポイズニング)という。中間者攻撃の手段として使われる。
偽装の中心は、SPAへなりすます相手のIPアドレスを、SHAへ攻撃者のMACアドレスを入れることである。要求にも送信元の対応が含まれるため、偽の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にはブロードキャストがないため、近隣要請は要請ノードマルチキャストアドレスに送られ、関係のない機器の負荷を減らしている。
参考資料
実際の試験ではここに出る!全20問
ネットワークスペシャリスト
- 午後Ⅱ
- 午前Ⅱ
- 午後Ⅰ
テクニカルエンジニア(ネットワーク)
- 午前