Gratuitous ARP

Gratuitous ARP (GARP)はARPの一つで、ARPパケットの送信元ホスト自身のIPアドレスに対するARP（IPアドレスに対応するMACアドレスの取得）である。

主に、ホストにIPアドレスを割り当てる際に、他のホストがすでに同じIPアドレスを使用していないか確認したり、相手の通信機器のARPテーブルに送信元ホストのIPアドレスとMACアドレスを追加させるために使用する。（DHCPによりIPアドレスを配布された後、当該IPアドレスが既に利用されていないかを確認する場合に用いる）ARP本来の目的である相手の接続機器のIPアドレスに対するMACアドレスの取得のために使用するわけではない。

通常のARPパケットと異なっている点は Target Protocol AddressフィールドがARPパケットを送出したホストに割り当てられたもの、もしくは割り当てられようとしているものが設定されている点である。
Sender Protocol Addressフィールドは Target Protocol Addressフィールドと同じIPアドレスが設定されていることが多いが、必ずこのようになっているわけではない。

もし、IPアドレスを設定する際に他のホストが既に同じIPアドレスを持っていると、そのホストがARP Operation がARP RequestであるGratuitous ARPを受信した際にGratuitous ARPを送信したホストに対してARP Replyを返送する。そのため、この Gratuitous ARPに対する返信の有無でIPアドレスの重複を確認することができる。

また、VRRPやMobile IPでもGratuitous ARPが使用されるが、これはIPアドレスの重複確認ではなく同一セグメント上のネットワーク機器上のARPキャッシュやL3テーブルを更新することでIPアドレスと機器の対応関係の更新を強制的におこなわせることを目的としている。

なお、Gratuitous ARPではARPパケットのOperation フィールドにARP RequestとARP Replyのいずれも用いることができるが、アドレス重複確認を目的としてGratuitous ARPを使用する際にはARP Requestが用いられることが多い。

関連項目 
 ARP(Address Resolution Protocol) - IPアドレスからMACアドレスに変換するプロトコル
 Mobile IP
 VRRP

外部リンク 
 RFC5227 "IPv4 Address Conflict Detection" (日本語訳)

リンク層プロトコル