【ネットワーク】ARP

概要

ここではARP(Address Resolution Protocol)について解説します。ARPは対象のIPアドレスが設定されている機器のMACアドレスを調べる際に利用されます。これはIPアドレスで異なるセグメントの端末に通信を行う際にデータリンク層の処理がルーターを超えることが出来ないため、都度次の宛先ルーターのMACアドレスを調べるために使用しています。

もしこれが無い場合はMACアドレスは階層構造になっていないため、全世界の端末のMACアドレスをすべてのルーターに保管させる必要が出てきてしまい、膨大な記録領域と処理能力が必要になり通信を実現できなくなるでしょう。

ARPの仕組み

ARPは下記のような仕組みで機能しており、ARP要求およびARP応答をやりとりした端末はそれに含まれていたIPアドレスとMACアドレスの関係を数分間キャッシュしておくことで毎回ARPを送信する必要が無いようにしています。また数分間後に破棄されることにより変更された場合にも対応が出来るようになっています。

  1. 送信端末が接続されたリンク内に向けて宛先IPアドレスを含んだARP要求をブロードキャストします。
  2. 自身のIPアドレスではない場合破棄します。
  3. 自身のIPアドレスの場合、MACアドレスを含んだARP応答を返します。
  4. MACアドレスを受け取った端末がそれを使用して通信を行う。

RARP(Reverse Address Resolution Protocol)

RARPはARPの逆動作をするプロトコルでMACアドレスからIPアドレスを調べるために使用されます。これはRARPサーバーを用意し、そこにMACアドレスとIPアドレスの関係を事前に設定しておくことで問い合わせがあった際に設定したIPアドレスを返すというものです。おもにIPアドレスを設定するインターフェースが存在しない機器やDHCPに未対応の機器を使用する場合に利用されます。

GARP(Gratuitous ARP)

GARPはIPアドレスの重複を調べる際に使用され、対象IPアドレスに自身のIPアドレスを設定してARPをブロードキャストします。通常であれば自身と同じIPアドレスの機器は存在しないので何も応答がありませんが、応答があることで重複を検知出来ます。また、途中のスイッチングハブなどに自身のIPアドレスとMACアドレスを学習させるために使用する場合もあります。

代理ARP(Proxy ARP)

通常ARPは同一セグメント内でしか使用できませんが、代理ARPでは異なるセグメントへARP要求を送ることが出来ます。処理としては代理ARP要求を送信した場合ルーターが自身のMACアドレスを含めて応答する事でホストはルーターに向けてパケットを送信します。その後、ルーターが宛先のIPアドレスの端末へパケットを転送する事で通信を実現します。これはサブネットマスクやルーティングテーブルを設定できない機器がある場合や、複数のサブネットを重ねて使用するVPN環境などで利用されます。

ARPのパケットフォーマット

コメント

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