ネットワークが通信する基礎中の基礎!ARP
ARPとは、IPアドレスからMACアドレスを解決するためのプロトコルです。
ネットワークが通信するための基礎情報でありながらも、意外と抜けていて説明できないことがあったり
仕組みを忘れてしまうことがあるので、サクッとおさらいします。
ARP の仕組み
ARPでは、2種類のパケットを使用して、LAN通信する仕組みを確立します。
ARPの一連の処理として、基本的には、以下の3行程が繰り返し行われます。
- ARPリクエスト
- ARPリプライ
- ARPテーブルの更新
- ( ARPキャッシュクリア )

- SW-Aは、ARPリクエストとして、該当のIPアドレス情報を含んだパケットを、ブロードキャストで投げます。
→ここで同一セグメントのすべての機器に対して、ARPリクエストが行き渡ります。 - ARPパケットを受信した機器(SW-B,SW-C)は、該当のIPアドレス情報が自装置であった場合、
自身のMACアドレスの情報を載せて、ユニキャストで、ARPリプライとして返信します。

- ARPレスポンスを受け取った機器は、自身のARPテーブルに、該当のIPアドレスと取得したMACアドレスの情報をマッピングさせ、一定期間テーブルに情報を保持します。
→ARPテーブルの保持期間(エージングタイム)は、数秒〜数時間と幅広く設定することができ、これは機器やOSによってデフォルトのエージングタイムが異なります。

以上がARPの一連の仕組みです。
なぜ、通信するのにMACアドレスが必要となるのでしょうか
まず結論として、イーサーネットフレーム(L2)の内容に沿ってデータは届けられます。
IPアドレスは、L3通信に依存(ネットワーク間の移動に使うため論理的な住所として扱う)
MACアドレスは、L2通信に依存(同一セグメント内の配送に使うため物理的な機器識別を行う)
実際にデータを届ける際、送信側はイーサネットフレームにカプセル化したものを送り出します。
そのイーサネットフレームの内容には、宛先・送信元のMACアドレス情報を載せておく必要があるので、
宛先MACアドレスが何なのかわからなければ、ARPパケットでMACアドレス情報を取得しておく必要があります。
理解を深める場合は、イーサネットフレームの構造や、ARPフレームの構造を知っておくとより理解が深まると思います。
MACアドレスの変換には、注意しておく必要がある
ここで注意しておきたいのが、機器をリプレイスしたり、DHCPで端末のアドレスがころころ変わったりする場合です。
そもそもMACアドレスは、IPアドレスとは違い、機器に固有で割り当てられた一意のアドレスとなります。
機器をリプレイスする際、同じIPアドレスを流用したり、DHCPで、IPアドレスをランダムに払い出ししている場合、当然のごとくIPアドレスは変わらないもののMACアドレスは変わってしまいます。ですが、これらによってARPテーブルが自動で更新されることはありません。
ARPテーブルの情報が古いままだと、新しいMACアドレスが見つけられず、通信相手を見失ってしまう状態(疎通不可)になってしまいます。
ARPテーブルの内容も、きちんと新しい情報に書き換わっている事に注意しておく必要があるのですが、基本的には、場面に応じてスイッチのエージングタイムを短くしておいたり、ARPキャッシュクリアを実行したりして、対応することもできます。
ARP パケット一覧
| 種類 | 役割 | 備考 | |
| 1 | ARP | IP→MAC変換 | 基本的なARP |
| 2 | RARP | MAC→IP変換 | 廃止 |
| 3 | GARP | 自身のIP・MAC通知 | 自身が使うIPが重複していないか検知する フェールオーバによるMACアドレスの変更を通知する →GARPを受け取った端末は自身のARPテーブルを更新 |
| 4 | Proxy ARP | ARPの代理応答 | ほかの機器に成り代わって、代理でARP応答する |
| 5 | ARP Spoofing | 攻撃 | ARPテーブルを、偽情報に書き換える攻撃 |
いかがでしたでしょうか。
最後まで、お読みいただきありがとうございました。
コメント