NETWORK / IPv4 / LAN
ARPとは?Wi-Fiにつないだ端末がIPアドレスの重複を調べる仕組み
新しいスマホを家のWi-Fiにつなぐと、なぜ設定しなくてもネットが使えるのでしょうか。ルータからIPアドレスを受け取るだけでなく、「ほかの機器と番号が重なっていないか」を確認する仕組みもあります。
最初の結論
DHCPは「IPアドレスを配る」、ARPは「同じLANにいる機器のMACアドレスを調べる」。そしてARPの仕組みを利用して「IPアドレスの重複」を検出できます。
厳密には、IPv4の重複検出は ARP Probe、使用開始後の通知は ARP Announcement と区別すると理解しやすくなります。
1. 身近な例:家のWi-Fiにスマホを追加する
家庭のWi-Fiルータが 192.168.1.1、ノートPCが 192.168.1.10、テレビが 192.168.1.20 を使っているとします。そこへ新しいスマホが接続します。
家庭内LANの例(数字は説明用)
DHCPサーバも兼ねることが多い
ノートPC
192.168.1.10
テレビ
192.168.1.20
新しいスマホ
DHCPから192.168.1.30を提案された。使い始めても大丈夫?
本来はルータがアドレスを重ならないように管理します。しかし、別の機器に手動で同じIPアドレスが設定されていたり、古い設定が残っていたりすると、重複が起きる可能性があります。
2. IPアドレスとMACアドレスは何が違う?
IPアドレス=LAN内での届け先番号
例:192.168.1.30。ルータや手動設定で割り当てられ、ネットワークが変わると変わることがあります。
MACアドレス=ネットワーク機器の識別情報
例:02:11:22:33:44:55。イーサネットやWi-Fiのリンク層で、フレームの送り先を指定するときに使われます。端末のプライバシー機能などで変わる場合もあります。
同じLANでIP通信を届けるには、宛先IPだけでなく、次に送る相手のMACアドレスも必要です。IPv4のLANで、その対応を調べるのが ARP(Address Resolution Protocol) です。
ARPは何を質問する?
192.168.1.20 → 02:AA:BB:CC:DD:20ARPの問い合わせは一般に同じブロードキャストドメイン内で行われ、通常ルータを越えて別のLANまで広がりません。インターネット上の任意の機器のMACアドレスを直接調べる仕組みではない点も重要です。
3. DHCPはどうやってIPアドレスを配る?
DHCP(Dynamic Host Configuration Protocol)は、端末へIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバなどの設定を渡します。
DISCOVER
端末:使える設定はありますか?
OFFER
サーバ:192.168.1.30はいかが?
REQUEST
端末:そのアドレスを希望します
ACK
サーバ:利用を承認します
ここまでで「ルータが割り当てた」ことは分かりますが、実際に同じLANの別端末がそのIPを使っていないかは、端末側からも確認できます。
4. ARP Probeで「使おうとするIP」を確認する
IPv4 Address Conflict Detection(ACD)では、設定しようとしているIPアドレス宛ての ARP Probe を送ります。まだ自分のIPとして確定していないので、ARP要求の送信元IPは 0.0.0.0 とします。
ARP Probeの主なフィールド(概念図)
注:送信元・ターゲットのMACアドレス等、ほかのフィールドは省略しています。
もし 192.168.1.30 を既に使用中の機器がいれば、ARP Replyなどの競合を示す情報を受け取り、重複を検知できます。返事がない場合でも「誰も絶対に使っていない」という完全な証明にはなりません。端末が停止している場合やパケットを受信できない場合があるからです。
ARP Announcement(いわゆるGratuitous ARP)は何が違う?
重複が検出されず使用開始するとき、端末は「このIPアドレスは私が使います」と周囲へ通知できます。これが ARP Announcement です。RFC 5227では送信元IPとターゲットIPの両方を自分のアドレスにしてARP Requestを送ります。一般にこのような通知をGratuitous ARP(GARP)と呼ぶことがあります。
ARP Probe:使う前の確認
送信元IP:0.0.0.0
ターゲットIP:192.168.1.30
目的:重複の検出
ARP Announcement:使い始めた通知
送信元IP:192.168.1.30
ターゲットIP:192.168.1.30
目的:利用開始を通知、周囲のARPキャッシュ更新にも利用
古い説明では、これらをまとめて「GARPで重複チェック」と呼ぶことがあります。仕組みを正確に理解するときは、使用前のProbeと、使用開始後のAnnouncementを分けるのがポイントです。
5. 重複が起きると何が困る?
例えば社内プリンタのIPを 192.168.1.50 に手動設定していたのに、新しいPCも同じIPを使うとします。端末によって届く相手が変わったり、印刷や通信が不安定になったりします。
IPアドレス重複
2台が同じIPを名乗るため、通信先の特定が不安定になります。
ARPテーブルの変化
同じIPに違うMACアドレスが対応し、接続が途切れることがあります。
切り分けが難しい
Wi-Fiはつながっていてもプリンタや社内サーバだけ使えない、という状態になります。
6. 操作ラボ:スマホに渡されたIPは使える?
DHCPから提案されたIPアドレスを選び、同じLANの機器の使用状況を切り替えます。ARP Probeを送ると、競合がある場合は使用を中止し、競合が見つからなければAnnouncementまで進められます。
スマホのIPアドレス重複チェック
新しいスマホがWi-Fiにつながる設定を再現します。まず候補IPと、周囲の機器が使っているIPを変えてみましょう。
① DHCPからの候補IP
新しいスマホへ提案されたIPv4アドレス
② LAN内にいる機器
ノートPCは192.168.1.10を使用中(固定)
③ 流れを進める
DHCPサーバが新しいスマホに 192.168.1.30 を提案しました。これはまだ「LAN内の全端末と重複していない」という保証ではありません。
注:これは教育用のシミュレーションです。実ネットワークにARPを送信しません。実際のARP ProbeにはRFC 5227で規定される待機や再送、競合検出の手順があり、無応答は未使用の絶対的証明ではありません。
7. DNS・ICMP・RARPとはどう違う?
| 技術 | 主な役割 | 今回の重複検出との関係 |
|---|---|---|
| ARP | IPv4アドレスとMACアドレスの対応を調べる | ARP Probeを使って同じLANで競合を検出する |
| DHCP | IPアドレスなどの設定を配布する | 配布後の競合検出にARPが使われることがある |
| DNS | www.example.comなどの名前をIPアドレスへ変換 | IPアドレス重複の検出そのものは担当しない |
| ICMP | 到達性確認やエラー通知を扱う | pingが使われることはあるが、IPv4 ACDの標準的な確認はARP |
| RARP | MACアドレスからIPアドレスを得る旧方式 | 現在はDHCPなどが一般的で、重複検出の用途ではない |
8. IPv6でもARPを使う?
IPv6ではARPを使いません。 IPv6ではNDP(Neighbor Discovery Protocol)が、隣接機器の探索やアドレス重複検出(DAD)などを担当します。DADではNeighbor Solicitationを使用します。ここまで説明したARP ProbeはIPv4の話です。
9. セキュリティとの関係:ARP Spoofing
ARPはLAN内の機器を見つけるために便利ですが、標準のARPは応答内容を強く認証しません。悪意ある端末が偽の対応情報を広める ARP Spoofing(ARP Poisoning) に悪用される場合があります。IPアドレスの重複チェックと同じ仕組みが、別の場面では攻撃の足掛かりになり得るわけです。
企業LANでは、DHCP SnoopingやDynamic ARP Inspectionなどのスイッチ機能を、機器が対応している場合に組み合わせます。家庭では、不審な端末をWi-Fiに参加させないこと、ルータの管理画面を保護することなどが基本です。
覚え方
DHCP=住所を配る役所。ARP=同じ町内で「この住所を使っているのは誰?」と聞く係。ARP Probe=新しく住所を名乗る前の重複確認。ARP Announcement=「この住所を使い始めました」という町内へのお知らせ。