目的

この記事ではARPについて記載します。ARPはネットワークでは重要な役割を果たします。一言で言えば「IPアドレスからMACアドレスを問い合わせるプロトコル」なのですが、あまり実務では意識することはありません。

なかなか意識することはありませんが、こうした通信の裏側を理解しておくことは実務を行う上で、そしてインフラエンジニアとしてステップアップするために大切なことなので、まず概念をしっかり覚えておくことをお勧めします。

今回の内容は「OSI基本参照モデル第1、2層」「OSI基本参照モデル第3層」を理解しておいた方が内容がスムーズに理解できるので、この辺りについてよく分からない方は以下の記事を事前に読んでください。

ARPとは

「ARP」とは「IPアドレスからMACアドレスを調べるためのプロトコル」です。
例えば、同一ネットワークのPC1がPC2と通信を行うとします。PC1がPC2に何かデータを送るとするとPC1はPC2の「IPアドレス」を指定します。

しかし、同一ネットワークなので宛先の識別は「MACアドレス」を使用します。この時もし両者が初めて通信する場合PC1はPC2の「MACアドレス」を知りません。そこで「ARP」がPC2の「IPアドレス」から「MACアドレス」を検索して結果をPC1に返します。これによりPC1はPC2にデータを送れます。
*MACアドレスについてよく分からない方はこちら
→「https://lovelabengineer.com/2026/08/27/macアドレスについて/

通信の仕組み

同一ネットワークでの通信

例えば、PC1からPC3に通信するとします。

ARPリクエスト・・・通信したい相手のPアドレスからMACアドレスを問い合わせること
ARPリプライ・・・相手先が自分のMACアドレスを返答すること

ARPリプライ後、PC1では相手先のMACアドレスを一定時間保有します(ARPキャッシュ)。これにより再び通信するときは問い合わせを行う必要はありません。

異なるネットワークでの通信

例えば、PC1からPC3に通信するとします。異なるネットワーク同士なのでルータを経由します。

① PC1にゲートウェイとして、ルータのIPアドレス「192.168.1.5」を登録します。

② まず、PC3と通信するにはその外部ネットワークと接続できるルータを経由しなければなりません。そのため、最初にPC1が「ARPリクエスト」を送ってルータのIPアドレスからMACアドレスを問い合わせます。
「ARPリプライ」後に宛先MACアドレスにそのルータ(ゲートウェイ)を指定します。

③ データがルータに到着して相手ネットワークに入ります。ルータはPC3のIPアドレスは分かりますが、MACアドレスは分かりません。そこでルータは「ARPリクエスト」をブロードキャスト宛に送ります。PC3が自分のMACアドレスを返答します(ARPリプライ)。その後、イーサネットヘッダの送信元MACアドレスと宛先MACアドレスを書き換えます。ルータはPC3に向けてデータを送信します。

もちろん、ルータはPC3のMACアドレス情報を一定期間保持します(ARPキャッシュ)。

ここでのポイントはヘッダを書き換えるのは、「送信元MAC」「宛先MAC」のみということです。「送信元IP」「宛先IP」はそのままで書き換えません。

そして、ARPを行うのはPCやサーバ、ルータということです。
・PC、サーバ・・・ARPを使って、IPアドレスとMACアドレスの紐付け情報を調べる(同一ネットワークの場合)。
・ルータ、L3スイッチ・・・ARPを使って、次に送る相手のMACアドレスを調べる。
・スイッチ・・・基本的にARPで宛先MACを調べるのではなく、MACアドレステーブルを使用して送信先のインタフェースを判断する。

上記の図で言うと、ルータがデータを送信後に、それがスイッチに届きます。しかし、スイッチも宛先のMACアドレスがどのインタフェースに対応してるか分かりません。その時にMACアドレステーブルを参照します。

まとめ

以上になります。ARPの働きはネットワーク上で通信をする上で欠かせません。こうした仕組みで通信を行うということを覚えておいてください。

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Latest Comments

表示できるコメントはありません。