はじめに
こんにちは。アメリカに住みながら、独学でエンジニアを目指しているTairaです。
今回は、コンピュータネットワークの基礎として欠かせない「ARP(Address Resolution Protocol)」について解説します。
ARPとは?
ARPとは、「IPアドレスからMACアドレスを取得するためのプロトコル」です。
通信相手のIPアドレスは分かっていても、実際にイーサネットなどのデータリンク層で通信を行うには、MACアドレスが必要です。
そのため、ARPを使って「このIPアドレスを持っている機器のMACアドレスは何か?」を調べます。
ARPの仕組み
1. ARPリクエストの送信
送信元の機器が「このIPアドレスのMACアドレスを教えてください」とネットワーク上にブロードキャスト(LAN内の全員に)を送信します。
2. ARPリプライの受信
該当するIPアドレスを持つ機器が、自分のMACアドレスを送信元に返します(ユニキャスト)。
3. ARPキャッシュへの保存
得られたIPとMACの対応情報はARPテーブル(キャッシュ)に一時保存され、次回以降の通信ではARPリクエストなしで通信できます。
ARPが使用される範囲:LAN内
ARPは主に同じLAN(ローカルエリアネットワーク)内で使用されます。
なぜなら、MACアドレスはLAN内でのみ意味を持つ情報だからです。
● 同じLAN内の通信例
- PC(192.168.1.2) → プリンタ(192.168.1.10)
- スマホ → NAS(ネットワークストレージ)
● LAN外との通信では?
LAN外の機器に通信する場合(例:インターネット)は、まずルーターのMACアドレスをARPで取得し、そのルーターにデータを中継してもらいます。宛先が外部でも、**ARPの対象は“次の機器(ルーター)”**です。
ARPで使われるのはプライベートIPアドレス
ARPでやり取りされるIPアドレスは、プライベートIPアドレスです。
家庭やオフィスのLAN内では、以下のようなプライベートIPが使われます。
- 192.168.0.0 ~ 192.168.255.255
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
これらのアドレス空間でMACアドレスを解決するためにARPが使われます。
ARPの使用例:Linux/macOSでの確認
ターミナルで以下のコマンドを実行すると、現在のARPテーブルを確認できます。
arp -a
補足:ARPと他のプロトコルとの関係
- DHCP:IPアドレスを自動で割り振る仕組み(ARPとは役割が異なる)
- NAPT:複数の機器のプライベートIPを1つのグローバルIPに変換(ARPはLAN内の通信の準備)
- mDNS:LAN内で名前(host.localなど)をIPアドレスに解決する仕組み(ARPはIP→MAC)
まとめ
- ARPは「IPアドレスからMACアドレスを取得する」ためのプロトコル。
- 主にLAN内で使用され、プライベートIPに対してMACアドレスを解決する。
- 実際の通信はMACアドレスを使って行われるため、ARPによる事前解決が必須。
- LAN外との通信でも、ルーターのMACアドレスを調べるためにARPは使われる。