3分で分かるARP/RARP/GARPの使い分け

ARPは聞いたことあるけど、RARPとGARPが出てきた瞬間に「あれ、どっちがどっち?」ってなるやつです。

しかもGARPは文脈によって意味が変わるので、調べるほど混乱しがち。

この記事では、“何を・どっち向きに・何のために” を軸に、ARP/RARP/GARPの違いをスッキリ整理します。




ARPを30秒で理解

ARPが解く課題(IP→MAC)

ARPの仕組みと「ARPテーブル」の意味

ARP(アープ)は、ざっくり言うと 「IPアドレスからMACアドレスを調べる仕組み」 です。

IPアドレスはネットワーク上の“住所”みたいなもので、PCやスマホは通信する時にまず相手のIPアドレスを見ます。

ところが、同じ家(同じLAN)の中でデータを実際に運ぶ時は、IPだけではなく MACアドレス(機械の名札みたいな番号) が必要になります。

そこでARPの出番です。

ARPの目的は「IPのようなプロトコルアドレスを、Ethernetのようなローカルネットワークアドレスに変換する事」と説明されています。

動き方はシンプルです。

例えば、あなたのPCが「192.168.1.50(相手のIP)に送りたい」と思った時、相手のMACアドレスが分からなければ送れません。

そこでPCは、同じLAN内に向けて ブロードキャスト(みんなに聞こえる放送) で「192.168.1.50って誰? MACアドレス教えて」と問い合わせます。

該当する機器が「私だよ。MACはこれ」と返事を返します。

この対応関係(IP ↔ MAC)を、機器はしばらく覚えておきます。

そのメモ帳が ARPテーブル(ARPキャッシュ) です。

この「覚えておく」が凄く大事です。

毎回ブロードキャストしたらネットワークがうるさくなるので、機器は一度学んだMACをしばらく使い回します。

Ciscoの資料でも、送る前にARPキャッシュを見て、無ければブロードキャストして調べる流れが説明されています。

ただし、ARPテーブルが古くなるとトラブルが起きます。

例えば、同じIPを別の機器が使ってしまったり、機器が入れ替わってMACが変わったりすると、古い情報を信じたまま送ってしまって届かない事があります。

なので、ARPは「仕組みを知る」だけでなく、「テーブルを疑う」視点も持つと強いです。

RARPを30秒で理解

RARPが解く課題(MAC→IP)

RARPは“昔の自動IP取得”で、今はほぼ出番なし

RARP(ラープ)は、ARPの逆で 「MACアドレスからIPアドレスを教えてもらう仕組み」 です。

昔は、ハードディスクが無い端末(ディスクレス端末)の様に、自分のIPアドレスを保存出来ない機械がありました。

そういう機械は起動しても「自分のIPが分からない」ので、ネットワークに出られません。

そこでRARPでは、端末が自分のMACアドレスを手がかりにして「このMACのIPって何?」とネットワークに問い合わせ、RARPサーバがIPアドレスを返す、という考え方でした。

RFC 903でも「ハードウェアアドレスしか分からない端末が、自分のプロトコルアドレス(例:インターネットアドレス)を動的に見つける方法」と説明されています。

でも、RARPには弱点がありました。

  • サーバ側が MAC→IPの対応表 を管理しないといけない(運用が大変)
  • 基本的に IPアドレスしか配れない(DNSやゲートウェイなどの設定が渡せない)

そのため、もっと便利に色々設定を配れる BOOTPやDHCP が広まり、RARPは「今の主役」ではなくなりました。

RARPがobsolete(ほぼ使われない)で、DHCPなどに置き換えられた事も説明されています。

結論としては、RARPはテストや用語として出る事はあるけど、現場で触る機会は少ない、という立ち位置です。

GARP(Gratuitous ARP)を理解

なぜ“自分宛てARP”を投げるのか

GARPは「調べる」より「知らせる」ためのARP

ここでのGARPは、多くのネットワークの会話で出る Gratuitous ARP(グラチュイタスARP) の事です。

意味はざっくり 「頼まれてないのに勝手にARPを投げる」 です。

特に多いのは、機器が 自分のIPアドレスについて ARPをブロードキャストで投げるパターンです。

Juniperの説明でも、gratuitous ARPは「ルータ自身のIPに対するブロードキャスト要求」で、重複IPの検知に役立つ、と書かれています。

じゃあ、何のためにやるの?目的は主に2つです。

1)重複IP(同じIPを2人が使っちゃう事故)の気づき
自分のIPで「このIP使ってる人いる?」みたいにARPを投げて、もし返事が来たら「誰かが同じIPを使ってるかも」と疑えます。

ただし、これで必ず100%見つけられるわけではありません。

IETFのRFC 5227でも、gratuitous ARPは重複検知として完全ではない、という趣旨の説明があります。

なので「ヒントにはなるけど万能ではない」と覚えるのが安全です。

2)周りの機械に“最新情報”を配る(テーブル更新)
もう1つが超重要で、現場でよく出るのがこっちです。

たとえば冗長構成(予備機がいて、切り替えで担当が入れ替わる仕組み)だと、同じIPを別の機器が引き継ぐ事があります。

この時周りの機器が古いARPテーブルを持っていると、切り替え直後に通信が迷子になります。

そこでGARPを投げて 「このIPは今このMACだよ!」 と周りに知らせ、ARPテーブルの更新を促します。

GARPがARPテーブルやMACアドレステーブルの更新などに使われる、という整理もあります。

つまりGARPは、普通のARPみたいに「相手を探す」より、「周りに通知して整える」 役目が強い、というのがポイントです。

ARP/RARP/GARPの違い早見表

目的・方向・登場シーンで比較

3つの違いは「向き」「目的」「今使うか」で決まる

混乱しやすい理由は、全部「IPとMACが出てくる」からです。

なので、見分けはこの3つだけでOKです。

  • 向き(どっちからどっちへ?)
    • ARP:IP → MAC(相手のMACを知りたい)
    • RARP:MAC → IP(自分のIPを知りたい)
    • GARP(Gratuitous):自分のIPの情報を周りに“知らせる/更新させる”
  • 目的(何を解決する?)
    • ARP:LAN内で通信するための基本の変換
    • RARP:昔の「起動時にIPをもらう」
    • GARP:重複IPの気づき、切替時のテーブル更新
  • 今もよく使う?
    • ARP:現役(IPv4では必須)
    • RARP:ほぼ過去(DHCPに置き換え)
    • GARP:現役(運用・冗長構成で重要)

ここまでを押さえると、「単語を暗記しなくても」見分けられます。

【最重要】GARPは2種類ある(混同ポイント)

Gratuitous ARP と Generic Attribute Registration Protocol

IPの話ならGratuitous、VLANの話なら別のGARP

GARPがややこしい最大の理由は、GARPという略語が“別の意味”でも使われる事です。

1つ目は今まで説明してきた Gratuitous ARP(ARPの話)
2つ目はスイッチの世界で出る Generic Attribute Registration Protocol(こちらも略してGARP) です。

見分け方はめちゃくちゃ簡単で、会話の中に何が出てくるかで判断出来ます。

  • IP、重複IP、ARPキャッシュ、冗長切替 が話題 → ほぼ「Gratuitous ARP」のGARP
  • VLAN、スイッチ、GVRP/MVRP、登録(registration) が話題 → 「Generic Attribute…」のGARP

Ciscoの資料では、VLAN情報をやりとりするGVRPは GARP(Generic Attribute Registration Protocol)に基づく と説明されています。
さらにIEEEの説明では、GARPをMRPに置き換える(改善する)流れが示されています。

なので「GARPって何?」と聞かれたら、まずは一言、
「ARPのGARP? それともVLANのGARP?」
と確認出来ると、かなり仕事が出来る人になります。

現場で役立つ確認コマンド&対処

ARPテーブル確認・重複IP・切替時

トラブルは「誰がどのMACを覚えてるか」を見る

現場で役に立つのは、難しい理論よりも 「今、どの機械が何を覚えてるか」 を見る事です。

通信が急におかしくなった時、原因が「ルーティング」じゃなくて「ARPテーブルの古さ」だった、というのは普通にあります。

Ciscoの資料でも、ARPキャッシュ(ARPテーブル)に情報が無ければブロードキャストで探す、という前提で話が進みます。

まずは端末でARPテーブルを確認します(例)。

# Windows
arp -a

# Linux(代表例)
ip neigh

ここで見るポイントは「相手のIPに対して、どのMACが入っているか」です。

もしここが間違っていると、正しい相手に届きません。

次に、冗長切替(Active/Standby)やVMの移動などが絡む場面では、GARP(Gratuitous ARP)が飛んでいるかが大事になります。

GARPは「自分のIPに対するブロードキャスト要求」で、重複IP検知にも使える、とJuniperが説明しています。

また、周りの機器がGARPを受け取ってARPキャッシュを更新するかどうかは、機器や設定にもよります(ベンダのドキュメントで設定項目として扱われます)。

要するに、切替直後に一瞬つながらないときは「GARPで周りの記憶を更新出来ているか」を疑う、これだけで原因に近づき易いです。




今使う代替・関連技術まとめ

DHCP/BOOTP、IPv6のND、MRP(MVRP)

「今のネットワーク」では役割がこう分かれる

最後に「今の世界」での整理です。

  • RARPの代わり
    RARPは「MACしか分からない端末がIPを教えてもらう」仕組みでしたが、今はDHCPが一般的です。RARPはobsoleteで、BOOTP/DHCPに置き換えられたことが説明されています。
  • IPv6ではARPの代わりにND
    IPv6ではARPではなく、Neighbor Discovery(ND)という仕組みで「近くの相手の存在確認」や「リンク層アドレスの発見」をします。RFC 4861でも、同じリンク上のノードがNDで相手のリンク層アドレスを見付けると書かれています。
    Juniperの説明でも、IPv6ではNDがARPなどを置き換える、という整理がされています。
  • スイッチ側の“別のGARP”はMRPへ
    VLANの話で出るGARP(Generic Attribute…)は、より良い仕組みとしてMRPに置き換える流れがあり、IEEEのページでもその方向性が示されています。

ここまでで、「arp / rarp / garp の違い」は次の一文で言えるようになります。
ARP=IP→MACを調べる、RARP=昔のMAC→IP、GARP(Gratuitous)=周りに知らせて更新する(ただしGARPはVLANの別物もある)


まとめ

ARP/RARP/GARPの違いは、何を知りたいのか(向き)何のために使うのか(目的)で整理すると迷いません。

まず ARP は、同じLAN(同じ教室みたいな近いネットワーク)の中で通信する時に使う基本の仕組みです。

やりたい事は 「IPアドレス(住所)からMACアドレス(機械の名札)を調べる」 事。

IPだけ分かっても、実際にデータを届けるにはMACが必要なので、ARPで対応するMACを見付けます。

ARPの目的は「IPのようなプロトコルの住所を、Ethernetのような近くのネットワークの住所に変換する方法を示す事」と説明されています。

次に RARP はARPの逆で、「MACアドレスから自分のIPアドレスを教えてもらう」 ための仕組みでした。

昔、設定を保存出来ない端末などが、起動した直後に「自分のIPが分からない」問題を解決するために考えられたものです。

RFCでも「ハードウェアアドレス(MAC)しか分からない時に、プロトコルアドレス(IP)を動的に見つける方法」と説明されています。

ただ、RARPは配れる情報が少なく、今は DHCPなどの仕組みに置き換えられて、ほぼ使われない とされています。

そして多くの人が混乱する GARP は、普通(TCP/IPの会話では) Gratuitous ARP の意味で使われる事が多いです。

これは「相手を探すARP」というより、周りに知らせて更新するARP です。

例えば自分のIPについてARPをブロードキャストで投げて、

  • 同じIPを使っている人がいないか(重複IPのチェック)
  • 冗長構成の切り替え後に、周りの機器の覚え(ARPキャッシュ)を更新させる
    といった目的で使われます。Juniperの説明でも、gratuitous ARPは「自分のIPに対するブロードキャスト要求」で、重複IP検知に役立つと書かれています。

最後に超重要な注意点として、GARPは“別の意味”でも使われます

スイッチやVLANの文脈だと、GARPは Generic Attribute Registration Protocol の事があり、GVRP(VLAN情報を交換する仕組み)がその上で動く、とCiscoの資料に明記されています。

なので、会話に IP・ARPキャッシュ・冗長切替 が出たら「Gratuitous ARPのGARP」、VLAN・スイッチ・GVRP が出たら「別物のGARP」と判断すると安全です。

 




コメント

この記事へのコメントはありません。

CAPTCHA


カレンダー
2026年2月
 1
2345678
9101112131415
16171819202122
232425262728  
カテゴリー
月別アーカイブ
PAGE TOP

You cannot copy content of this page