RARPとは
RARP(Reverse Address Resolution Protocol:逆アドレス解決プロトコル)とは、MACアドレスからIPアドレスを取得するための通信プロトコルです。IPアドレスからMACアドレスを取得するARPとは逆の動作をします。
スポンサーリンク
RARPは、主にディスクレスパソコン(外部記憶装置を持たないデバイス)のようなIPアドレスを保存することができない端末が使用します。
ディスクレスパソコンは、IPアドレスを保存できるハードディスクがないので、ネットワークに参加する段階では、自分のMACアドレスしか分かりません。そこでRARPを利用して自身のIPアドレスを取得します。
RARPにより取得できるのはIPアドレスのみで「サブネットマスク」「デフォルトゲートウェイ」「DNSサーバ」などのアドレス情報は渡せません。また、データリンク層の技術なのでルータを越えて利用できない。そしてRARPサーバーには事前に要求機器のMACアドレスを登録しておく必要があり、柔軟性に欠けるというデメリットがあります。
そのため、近年では同機能でより高性能なDHCPなどが利用されており、RARPはほとんど使われていません。
ポイント
RARPとは、MACアドレスからIPアドレスを取得するためのプロトコル
RARP要求
RARPでMACアドレスに対応するIPアドレスを取得するためは、自身のMACアドレスを入れた「RARP要求」をネットワーク内にブロードキャストします。
上記例では「PC1」が自身のIPアドレスを取得するために、RARP要求を同じネットワーク内の全コンピュータに送信しています。
RARP要求とは「このMACアドレスに割り当てられているIPアドレスを教えて」という内容のパケットです。
RARP要求時のRARPパケットは以下のように設定されます。自身のMACアドレスに対するIPアドレスを取得したいので、目的のMACアドレスには自身のMACアドレス、目的のIPアドレスは未定義とします。
送信元MACアドレス | 送信元IPアドレス | 目的のMACアドレス | 目的のIPアドレス |
PC1のMACアドレス | 未定義 | PC1のMACアドレス | 未定義 |
RARP応答
RARP応答とは、RARP要求に対する応答です。上記例では、RARPサーバが「PC1」に対してRARP応答を返却しています。
RARP要求を受け取ったRARPサーバは、事前に登録してある対応表からMACアドレスに対応するIPアドレスを抽出し、要求元にRARP応答を返却します。
スポンサーリンク
RARP応答時のRARPパケットは以下のように設定されます。
送信元MACアドレス | 送信元IPアドレス | 目的のMACアドレス | 目的のIPアドレス |
RARPサーバのMACアドレス | RARPサーバのIPアドレス | PC1のMACアドレス | PC1のIPアドレス |
RARPパケット
RARPパケットの内容は次の通りです。
項目名 | ビット | 説明 |
ハードウェアタイプ (Hardware Type) | 16 bit | ハードウェアの種類。イーサネットの場合は「0x0001」が設定される。 |
プロトコルタイプ (Protocol Type) | 16 bit | プロトコルの種類。IPv4の場合「0x0800」以降の値が設定される |
ハードウェア長 (Hardware Length) | 8 bit | MACアドレスの長さを表す。イーサネットの場合は「6」が設定される |
プロトコル長 (Protocol Length) | 8 bit | IPアドレスの長さを表す。IPv4の場合は「4」が設定される |
オペレーション(Operation) | 16 bit | ARPの動作の種類を表すためのコード(3:RARP要求、4:RARP応答) |
送信元MACアドレス (Sender MAC address) | 48 bit | 送信元のMACアドレス |
送信元IPアドレス (Sender IP address) | 32 bit | 送信元のIPアドレス。RARP要求の場合は未定義とする。 |
目的のMACアドレス (Target MAC address) | 48 bit | 目的のMACアドレス |
目的のIPアドレス (Target IP address) | 32 bit | 送信先のIPアドレス。ARP要求の場合は未定義とする。 |