ARP(IP と MAC の対応付け)
同じLAN内で、相手のIPアドレスから実際の宛先であるMACアドレスを調べる仕組みです。IP通信を物理的な配送につなぐ橋渡し役を担います。
- 1.ARP は 同一LAN内で IPアドレス から MACアドレス を解決するためのプロトコル。
- 2.「この IP は誰?」とブロードキャストで全体に問い合わせ、持ち主だけが MAC を返答する。
- 3.結果は ARPテーブル に一定時間キャッシュされ、毎回問い合わせなくて済む。
なぜ ARP が要るのか
通信の宛先はIPアドレスで指定しますが、同じLAN内で実際にフレームを届けるには**MACアドレス(機器固有の物理アドレス)**が必要です。IPは「住所」、MACは「その場の受け取り口」のような関係で、両者を結びつけないと配送できません。この対応付けを動的に行うのが ARP(Address Resolution Protocol)です。
| 項目 | IPアドレス | MACアドレス |
|---|---|---|
| 層 | ネットワーク層(L3) | データリンク層(L2) |
| 性質 | 論理アドレス(設定で変わる) | 物理アドレス(機器に固有) |
| 届く範囲 | ルータを越えて世界中 | 基本は同じLAN内 |
| 例 | 192.0.2.10 | 00:1a:2b:3c:4d:5e |
解決の流れ
端末Aが同じLANの 192.0.2.20 に送りたいが、そのMACを知らない場合の典型です。
- ARPリクエスト(A→ブロードキャスト): 「
192.0.2.20の人、MACを教えて」を全員に送る - 各端末は自分宛てか確認。該当する1台だけが反応する
- ARPリプライ(持ち主→A、ユニキャスト): 「それは私、MACは
…5eです」 - AはこのIP↔MACの対応をARPテーブルに記録し、以後はそれを使って送る
リクエストは「誰だか分からない」のでブロードキャストで全員に投げますが、リプライは持ち主が分かった後なのでユニキャストで当人にだけ返します。
ARPテーブルとキャッシュ
毎回問い合わせると無駄なので、解決済みの対応はARPテーブルに一定時間キャッシュされます。
- ヒットすれば即座に送信でき、ブロードキャストを減らせる
- エントリには有効期限があり、切れると再解決する(機器の入れ替わりに追従)
- 静的に固定登録することもできる(特定機器を確実に指したい場合)
LAN内とLAN外の宛先
ARPはあくまで同一LAN内の解決です。別ネットワーク宛ての通信では、相手そのもののMACではなくデフォルトゲートウェイのMACを解決し、まずルータへ渡します。
- 宛先が同一セグメント → 相手のMACを直接ARPで解決
- 宛先が別セグメント → ゲートウェイのMACを解決し、ルータに転送を任せる
つまずきポイントとセキュリティ
- ARPスプーフィング(ARP汚染): 偽のリプライでIP↔MACの対応を書き換え、通信を盗み見る攻撃。ARPは正当性を確認しないため成立しやすい
- 対策: スイッチの Dynamic ARP Inspection、静的ARP、暗号化(TLS)の併用で被害を抑える
- 重複IP: 同じIPを2台が使うとARPの返答が衝突し、通信が不安定になる
ARPはリプライの真偽を検証しません。最後に届いた返答でテーブルを上書きするため、同一LANに侵入されると中間者攻撃の足がかりになります。LAN内も無条件には信用しない設計が大切です。
# 現在の ARP テーブルを表示
arp -a
# ある IP に対応する MAC を確認(Linux)
ip neighbor show
ネットワーク Article
ARP(IP と MAC の対応付け)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ARP
比較で見る軸
難易度: basic / カテゴリ: ネットワーク / タグ数: 3
導入後に効く点
「この IP は誰?」とブロードキャストで全体に問い合わせ、持ち主だけが MAC を返答する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- basic
- カテゴリ
- ネットワーク
- タグ数
- 3
判断チェックリスト
- 自社の用途が「ARP / MACアドレス」に近いか確認する。
- 強みである「ARP は 同一LAN内で IPアドレス から MACアドレス を解決するためのプロトコル。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。