超!簡単にARPを理解

この記事は約3分で読めます。

ネットワークが通信する基礎中の基礎!ARP

ARPとは、IPアドレスからMACアドレスを解決するためのプロトコルです。

ネットワークが通信するための基礎情報でありながらも、意外と抜けていて説明できないことがあったり
仕組みを忘れてしまうことがあるので、サクッとおさらいします。

ARP の仕組み

ARPでは、2種類のパケットを使用して、LAN通信する仕組みを確立します。

ARPで用いるパケット
  • ARPリクエスト
  • ARPリプライ

ARPの一連の処理として、基本的には、以下の3行程が繰り返し行われます。

  1. ARPリクエスト
  2. ARPリプライ
  3. ARPテーブルの更新
  4. ( ARPキャッシュクリア )

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

 

 種類役割備考         
1ARPIP→MAC変換基本的なARP
2

RARP

MAC→IP変換廃止
3GARP

自身のIP・MAC通知

自身が使うIPが重複していないか検知する

フェールオーバによるMACアドレスの変更を通知する

→GARPを受け取った端末は自身のARPテーブルを更新

4

Proxy ARP

ARPの代理応答ほかの機器に成り代わって、代理でARP応答する
5ARP Spoofing攻撃

ARPテーブルを、偽情報に書き換える攻撃

 


いかがでしたでしょうか。

最後まで、お読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました