ARPパケットフォーマット

ARPのパケットを見ると、ARPやGARPの仕組みがより詳しく理解出来ます。

本項では、ARPパケットフォーマットについて説明します。

フレーム形式

 ARPは、「フレーム形式」で説明したEthernetII形式を利用しています。

EthernetII形式

 タイプ値は806です。

 データ部分に、ARPのフォーマットに従った情報が入ります。

ARPのフォーマット

 以下に、ARPのフォーマットを示します。

【ARPのフォーマット】
項目 英語 バイト 説明
ハードウェアタイプ Hardware type 2 イーサネットでは1です。
プロトコル Protocol type 2 IPv4では800です。
ハードウェアアドレス長 Hardware size 1 イーサネットの場合はMACアドレスの長さで6(byte)です。
プロトコルアドレス長 Protocol size 1 IPv4の場合はIPアドレスの長さで4(byte)です。
オペレーションコード opcode 2 ARPリクエストでは1、リプライでは2です。
送信元MACアドレス Sender MAC address 6 送信元MACアドレスです。
送信元IPアドレス Sender IP address 4 送信元IPアドレスです。Proxy ARPのリプライ時はリクエストがあったIPアドレスです。
送信先MACアドレス Target MAC address 6 送信先MACアドレスです。ARPリクエストでは、一般的に00:00:00:00:00となります。
送信先IPアドレス Target IP address 4 送信先IPアドレスです。GARPでは、自身のIPアドレスをセットします。

一般的なARPリクエストとリプライ

 ARPリクエストでは、オペレーションコードを1、送信元を自身のMACアドレスとIPアドレス、送信先はMACアドレスが00:00:00:00:00でIPアドレスをARP解決したいIPアドレスにして送信します。

 ARPリプライでは、オペレーションコードを2、送信元を自身のMACアドレスとIPアドレス、送信先をリクエストを送信したMACアドレスとIPアドレスにして送信します。

【ARPリクエストとリプライでの組み合わせ】
通信種別 opcode Sender Target
MAC address IP address MAC address IP address
ARPリクエスト 1 自分 自分 00:00:00:00:00:00 解決したいIPアドレス
ARPリプライ 2 自分 自分 リクエスト送信元 リクエスト送信元

 ARPリクエストは、フレーム上の送信先がff:ff:ff:ff:ff:ff:となりブロードキャストされます。アドレス解決のため、全ての機器で受信して欲しいためです。

 ARPリプライでは、リクエスト送信元のMACアドレス宛てに送信されます。

 又、ARPテーブル保持等の目的で、ARPリクエストを定期的に送信する事があります。この場合、Target MAC addressは00:00:00:00:00:00ではなく、ARPテーブルで保持しているMACアドレスが使われます。この時は、ブロードキャストではなく送信先MACアドレスも指定されます。

 尚、動作や仕組みで不明な点があれば、「ARP」をご参照下さい。

ARPプローブ、GARP、Proxy ARP

 ARPプローブは、ARPリクエストと殆ど同じですが、送信元IPアドレスを0.0.0.0にして自分が使う予定のIPアドレスが使われていないか確認する時に使われます。

 GARP(ARPアナウンスメント)もARPリクエストと殆ど同じですが、送信先IPアドレスを自身のIPアドレスにしてIPアドレス利用や自身のMACアドレス通知として使います。

 Proxy ARPは、リプライ時に送信元IPアドレスを自身のIPアドレスではなく、リクエストがあったIPアドレスにして送信します。

【ARPプローブ、GARP、Proxy ARPでの組み合わせ】
通信種別 opcode Sender Target
MAC address IP address MAC address IP address
ARPプローブ 1 自分 0.0.0.0 00:00:00:00:00:00 自分が使うIPアドレス
GARP 1 自分 自分 00:00:00:00:00:00 自分
Proxy ARPリプライ 2 自分 リクエストのIPアドレス リクエスト送信元 リクエスト送信元

 フレーム上の送信先MACアドレスは、通常のARPリクエストやリプライと同じです。つまり、ARPプローブとGARPはブロードキャスト、Proxy ARPのリプライは宛先指定です。

 尚、動作や仕組みで不明な点があれば、「Proxy ARP」や「GARP」をご参照下さい。

  • このエントリーをはてなブックマークに追加