RARP(Reverse-ARP/リバースアープ)について説明します。
通常のARPに関しての説明は、下記を参照してください。
RARP(Reverse-ARP/リバースアープ)とは
概要と利用場面
RARP(Reverse-ARP/リバースアープ)とは、MACアドレスをもとにIPアドレスを割り当てるためのプロトコルです。IPアドレスからMACアドレスを取得する「通常のARP」とは逆の動作となるため、「Reverse/リバース」という名前が付けられています。
RARPは、IPアドレスが必要にも関わらず、自身でIPアドレスの設定が行えなかったり、設定した情報が保持できない(再起動時に設定が消えてしまう)等の機器で利用されることがあります。
現在では、IPアドレスの割り当ては「DHCP」が利用されることが一般的なため、RARPはあまり利用されていません。
RARPの通信の仕組み
RARPを利用したIPアドレスの割り当ては下記の流れで行われます。
RARPでIPアドレスを割り当てられるホストを「RARPクライアント」と呼びます。RARPクライアントは、MACアドレスのみを保持しています。
RARPを利用するためには、MACアドレスとIPアドレスの対応表を持った「RARPサーバー」が必要です。RARPサーバーには、下記の2つのファイルを作成します。(rarpd等のRARPサービスも起動している必要があります。)
- /etc/ethers → MACアドレスとホスト名を記載します
- /etc/hosts → IPアドレスとホスト名を記載します。
RARPクライアントが、RARP要求(RARPリクエスト)をブロードキャストで送信します。
RARPサーバーが、RARP応答(RARPリプライ)をユニキャストで送信します。
RARP応答の情報を元に、RARPクライアントがIPアドレスを設定します。
RARP通信のパケット詳細
RARP要求(RARPリクエスト)とRARP応答(RARPリプライ)の詳細について説明します。
RARP要求(RARPリクエスト)の詳細
RARP要求のパケットの中身を確認します。
1 52:54:00:0a:91:bb → ff:ff:ff:ff:ff:ff RARP 60 Who is 52:54:00:0a:91:bb? Tell 52:54:00:0a:91:bb
Frame 1: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: 52:54:00:0a:91:bb, Dst: ff:ff:ff:ff:ff:ff
Destination: ff:ff:ff:ff:ff:ff
Source: 52:54:00:0a:91:bb
Type: RARP (0x8035)
Padding: 000000000000000000000000000000000000
Address Resolution Protocol (reverse request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: reverse request (3)
Sender MAC address: 52:54:00:0a:91:bb
Sender IP address: 0.0.0.0
Target MAC address: 52:54:00:0a:91:bb
Target IP address: 0.0.0.0
イーサネットヘッダ
項目 | 表記 | 説明 |
---|---|---|
送信先MACアドレス | Destination | RARP要求はブロードキャストのため、送信先は「ff:ff:ff:ff:ff:ff」 |
送信元MACアドレス | Source | RARP要求を送信しているホストのMACアドレス |
イーサネットタイプ | Type | RARPのイーサネットタイプは「8035」 |
RARP要求のフォーマット
項目 | 表記 | 説明 |
---|---|---|
ハードウェアタイプ | Hardware type | イーサネットの場合は「1」 |
プロトコルタイプ | Protocol type | IPv4の場合は「0800」 |
ハードウェアサイズ | Hardware size | イーサネットの場合はMACアドレスのサイズ「6Byte」 |
プロトコルサイズ | Protocol size | IPv4の場合はIPアドレスのサイズ「4Byte」 |
オペレーションコード | Opcode | RARP要求の場合は「3」 |
送信者MACアドレス | Sender MAC address | RARP要求を送信しているホストのMACアドレス |
送信者IPアドレス | Sender IP address | IPアドレスは未設定のため「0.0.0.0」 |
対象MACアドレス | Target MAC address | RARPで割り当てる対象のMACアドレス ※RARP要求を送信しているホストのMACアドレス |
対象IPアドレス | Target IP address | RARPで割り当てられるIPアドレス ※RARP要求では「0.0.0.0」 |
RARP応答(RARPリプライ)の詳細
RARP応答のパケットの中身を確認します。
2 52:54:00:1e:94:dc → 52:54:00:0a:91:bb RARP 42 52:54:00:0a:91:bb is at 192.168.1.100
Frame 2: 42 bytes on wire (336 bits), 42 bytes captured (336 bits)
Ethernet II, Src: 52:54:00:1e:94:dc, Dst: 52:54:00:0a:91:bb
Destination: 52:54:00:0a:91:bb
Source: 52:54:00:1e:94:dc
Type: RARP (0x8035)
Address Resolution Protocol (reverse reply)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: reverse reply (4)
Sender MAC address: 52:54:00:1e:94:dc
Sender IP address: 192.168.1.101
Target MAC address: 52:54:00:0a:91:bb
Target IP address: 192.168.1.100
イーサネットヘッダ
項目 | 表記 | 説明 |
---|---|---|
送信先MACアドレス | Destination | RARP要求を送信したホストのMACアドレス |
送信元MACアドレス | Source | RARP応答を送信しているホストのMACアドレス |
イーサネットタイプ | Type | RARPのイーサネットタイプは「8035」 |
RARP応答のフォーマット
項目 | 表記 | 説明 |
---|---|---|
ハードウェアタイプ | Hardware type | イーサネットの場合は「1」 |
プロトコルタイプ | Protocol type | IPv4の場合は「0800」 |
ハードウェアサイズ | Hardware size | イーサネットの場合はMACアドレスのサイズ「6Byte」 |
プロトコルサイズ | Protocol size | IPv4の場合はIPアドレスのサイズ「4Byte」 |
オペレーションコード | Opcode | RARP応答の場合は「4」 |
送信者MACアドレス | Sender MAC address | RARP応答を送信しているホストのMACアドレス |
送信者IPアドレス | Sender IP address | RARP応答を送信しているホストのIPアドレス |
対象MACアドレス | Target MAC address | RARPで割り当てる対象のMACアドレス ※RARP要求の送信者MACアドレス |
対象IPアドレス | Target IP address | RARPで割り当てるIPアドレス |
以上で、RARPとは(Reverse-ARP 通常ARPとの違いと利用場面)の説明は完了です!