ARPとRARPの違いと覚え方|IPアドレスとMACアドレスの関係をわかりやすく解説

情報処理試験

ARPとRARPは名前が似ているため、情報処理試験やネットワークの勉強をしていると混同しやすいプロトコルです。

最初に結論を書くと、ARPはIPアドレスからMACアドレスを調べるための仕組みです。

一方、RARPはその逆で、MACアドレスからIPアドレスを取得するために作られた仕組みです。ただしRARPは古い方式で、現在では一般的なIPアドレス設定にDHCPなどが使われています。

この記事では、ARPとRARPの違い、覚え方、ARP Request/Replyの動き、Windows・Linuxでの確認方法まで解説します。

ARPとRARPの違いとIPアドレス・MACアドレスの関係
ARPとRARPの違い、ARP RequestとReply、WindowsとLinuxでの確認方法を図解

ARPとRARPの違い

項目 ARP RARP
正式名称 Address Resolution Protocol Reverse Address Resolution Protocol
変換 IPアドレス → MACアドレス MACアドレス → IPアドレス
主な目的 IPv4ネットワークで宛先MACアドレスを調べる 機器が自分のIPアドレスを取得する
現在の利用 現在も利用される 一般的な用途ではほぼ使われない

まずは、

ARP   :IP → MAC
RARP  :MAC → IP

と覚えておけば、試験問題でも区別しやすくなります。

ARPとは?

ARPはAddress Resolution Protocolの略です。

IPv4ネットワークで、IPアドレスに対応するMACアドレスを調べるために使用されます。

例えばPCから同一LAN上にあるサーバーへ通信するとします。

PC
IPアドレス:192.168.1.10

サーバー
IPアドレス:192.168.1.20

PCは「192.168.1.20へ通信したい」と分かっていても、同一LAN上でEthernetフレームを送信するには、宛先となるMACアドレスが必要になります。

そこでARPを利用します。

なぜIPアドレスだけでは通信できないの?

IPアドレスとMACアドレスは役割が異なります。

簡単に考えるなら、

IPアドレス
  ↓
ネットワーク上の論理的な住所

MACアドレス
  ↓
LAN上でフレームを届けるために使う識別情報

というイメージです。

同じEthernet LAN内で実際にフレームを届けるためには宛先MACアドレスが必要になるため、ARPによってIPv4アドレスからMACアドレスを解決します。

ARP Requestの動き

PCが192.168.1.20のMACアドレスを知らない場合、ARP Requestを送信します。

192.168.1.20を持っている機器は誰ですか?
MACアドレスを教えてください。

ARP RequestはLAN内へブロードキャストされます。

そのため、同じブロードキャストドメイン内の機器がRequestを受信します。

ARP Replyの動き

192.168.1.20を持っている機器がRequestを受け取ると、自分のMACアドレスをARP Replyで通知します。

192.168.1.20は私です。
MACアドレスはBB:BB:BB:BB:BB:BBです。

これによって送信元PCは、

192.168.1.20
        ↓
BB:BB:BB:BB:BB:BB

という対応関係を知ることができます。

毎回ARPを実行するわけではない

通信するたびに毎回ARP Requestを送信すると非効率です。

そのためOSは、取得したIPアドレスとMACアドレスの対応を一定時間保持します。

これがARPキャッシュ、またはARPテーブルと呼ばれるものです。

WindowsでARPテーブルを確認する

WindowsではコマンドプロンプトやPowerShellから確認できます。

arp -a

例えば次のような情報が表示されます。

インターフェイス: 192.168.1.10

  インターネット アドレス   物理アドレス          種類
  192.168.1.1               aa-bb-cc-dd-ee-ff     動的
  192.168.1.20              11-22-33-44-55-66     動的

これを見ると、PCが現在認識しているIPv4アドレスとMACアドレスの対応を確認できます。

LinuxでARP情報を確認する

Linuxでは現在、次のコマンドを利用できます。

ip neigh

例えば、

192.168.1.20 dev ens33 lladdr 11:22:33:44:55:66 REACHABLE

のように表示されます。

従来の環境では、

arp -n

が利用される場合もあります。

ただし現在のLinuxでは、iproute2のip neighを覚えておくとよいでしょう。

別ネットワークへの通信ではどうなる?

ここはARPを理解するうえで重要です。

例えばPCが、インターネット上のサーバーへ通信するとします。

PC
192.168.1.10
   ↓
ルーター
192.168.1.1
   ↓
インターネット
   ↓
Webサーバー

この場合、PCがARPで調べるのは、インターネット上のWebサーバーのMACアドレスではありません。

宛先IPアドレスが別ネットワークにあるため、PCはルーティングテーブルを確認してデフォルトゲートウェイへフレームを送ります。

そのため必要になるのは、基本的には次のホップとなるデフォルトゲートウェイのMACアドレスです。

別ネットワークへ通信
       ↓
デフォルトゲートウェイへ送る
       ↓
ARPでゲートウェイのMACアドレスを確認

この考え方を理解すると、ARPとルーティングの関係が分かりやすくなります。

RARPとは?

RARPはReverse Address Resolution Protocolの略です。

名前の「Reverse」のとおり、ARPとは逆方向の対応を求めます。

ARP
IPアドレス → MACアドレス

RARP
MACアドレス → IPアドレス

RARPでは、自分のMACアドレスは分かっているものの、自分が使用するIPアドレスが分からない機器がRARPサーバーへ問い合わせます。

RARPは現在ほとんど使われない

RARPは古い仕組みであり、現在の一般的なネットワークでIPアドレスを自動設定する場合にはDHCPが広く利用されています。

そのため実務でRARPを設定する機会はほとんどありません。

ただし情報処理試験やネットワークの基礎知識として、ARPとの違いを問われることがあります。

RARPとDHCPの違い

RARPとDHCPは「機器がIPアドレスを取得する」という点では似ていますが、同じものではありません。

項目 RARP DHCP
主な目的 MACアドレスを基にIPアドレスを取得 IP設定を自動取得
取得できる情報 基本的にIPアドレス IPアドレス、サブネットマスク、ゲートウェイ、DNSなど
現在の利用 ほぼ利用されない 広く利用されている

現在のPCをネットワークへ接続すると、自動的にIPアドレスだけでなくDNSやデフォルトゲートウェイまで設定されることがあります。

これは一般にDHCPによるものです。

ARPとRARPの覚え方

試験対策では難しく考えず、まずARPを覚えます。

ARP
Address Resolution Protocol

IP → MAC

そしてRARPのRをReverse(逆)と覚えます。

ARP
IP → MAC

RARP
MAC → IP

「Rが付いたらReverse」と覚えておけば混乱しにくくなります。

情報処理試験ではどう出る?

問題文に、

IPアドレスからMACアドレスを求める

とあればARPを考えます。

逆に、

MACアドレスからIPアドレスを求める

ならRARPです。

まず「どちらからどちらを調べているか」を見れば判断できます。

ARPは実際のネットワーク障害調査でも使う

ARPは試験だけの知識ではありません。

実際のネットワーク障害でも、

arp -a

や、Linuxの

ip neigh

を確認することがあります。

例えば、

  • 同一LANのサーバーへ通信できない
  • 想定したMACアドレスが登録されていない
  • IPアドレスの重複が疑われる
  • 機器交換後に通信がおかしい
  • ゲートウェイへ通信できない

といった場合です。

ARPテーブルに相手が表示されない場合

同一LAN上の相手と通信しようとしてもARP情報が取得できない場合は、単純に「ARPが壊れている」と考えるのではなく、

  • 相手機器が起動しているか
  • IPアドレスが正しいか
  • サブネットマスクが正しいか
  • 同じVLANに接続されているか
  • スイッチポートが正常か
  • NICが正常か

なども確認します。

ARPの問題に見えても、実際にはVLANや物理ネットワークが原因ということがあります。

ARPキャッシュを削除する場合

WindowsではARPキャッシュを削除して再学習させることもできます。

管理者権限で、例えば次の方法があります。

arp -d *

ただし、通信障害が起きたからといって最初からキャッシュを削除するのではなく、先に現在のARPテーブルを記録しておく方がトラブル調査には役立ちます。

arp -a

で状態を確認してから対応するのがおすすめです。

IPv6ではARPを使う?

ARPはIPv4で利用される仕組みです。

IPv6ではARPではなく、ICMPv6を利用したNeighbor Discovery Protocol(NDP)が同様の役割を担います。

そのため、

IPv4 → ARP
IPv6 → NDP

という違いも覚えておくと、ネットワークの理解がさらに進みます。

まとめ

ARPとRARPで最も重要なのは、変換する方向です。

ARP
IPアドレス → MACアドレス

RARP
MACアドレス → IPアドレス

ARPはIPv4ネットワークで現在も利用される重要な仕組みですが、RARPは古い方式で、現在のIPアドレス自動設定ではDHCPなどが利用されています。

試験では「RARPのRはReverse」と覚えると区別しやすくなります。

またARPは試験対策だけでなく、arp -aやip neighを利用した実際のネットワーク障害調査でも役立つため、パケットがどのように相手へ届くのかまで理解しておくと実務にもつながります。

コメント

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