Address Resolution Protocol
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Address Resolution Protocol (アドレス解決プロトコル、略称:ARP、アープ)は、イーサネット環境で、IPアドレスから対応するMACアドレスを動的に得るためのプロトコル。
概要
TCP/IPにおいて、IPパケットを送受信するためには、下位のデータリンク層のアドレスを取得する必要があり、MACアドレスが必要な場合に ARP が用いられる。 イーサネットの場合論理的なIPアドレスを物理的なハードウェア・アドレスであるMACアドレスに変換する必要がある。
IPv6ではARPではなく、ICMPv6の「近隣探索プロトコル」を用いる。
RFC 826で定義され、その後 RFC 5227, RFC 5494 により内容のエンハンスが行われている。
対義語にあたる、MACアドレスからIPアドレスに変換するプロトコルは、RARP(Reverse address resolution protocol、リバースARP)である。
動作
- 要求パケットに送信元の IPアドレス・MACアドレスと通信相手の IPアドレスの情報を格納したARPリクエストを、Ethernet ネットワークにブロードキャストする。
- 要求パケットを受け取った各ノードは、自分の IPアドレスと同一であれば、自分の MACアドレスを送信元にARPリプライを返信する。
こうして、IPアドレスから MACアドレスを取得する。
ARPヘッダ
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14~41 | |||||||||||||||||||||||||||
イーサネット宛先アドレス | イーサネット送信元アドレス | フレームタイプ | 下図参照 | ||||||||||||||||||||||||||||||||||||||
イーサネットヘッダ | ARPの要求と応答 |
Internet Protocol (IPv4) イーサネット ARP パケット | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
octet offset | 0 | 1 | ||||||||||||||
0 | ハードウェアタイプ (HTYPE) | |||||||||||||||
2 | プロトコルタイプ (PTYPE) | |||||||||||||||
4 | ハードウェアサイズ (HLEN) | プロトコルサイズ (PLEN) | ||||||||||||||
6 | オペレーション (OPER) | |||||||||||||||
8 | 送信元ハードウェアアドレス (SHA) | |||||||||||||||
10 | 〃 | |||||||||||||||
12 | 〃 | |||||||||||||||
14 | 送信元プロトコルアドレス (SPA) | |||||||||||||||
16 | 〃 | |||||||||||||||
18 | 送信先ハードウェアアドレス (THA) | |||||||||||||||
20 | 〃 | |||||||||||||||
22 | 〃 | |||||||||||||||
24 | 送信先プロトコルアドレス (TPA) | |||||||||||||||
26 | 〃 |
- ハードウェアタイプ (HTYPE)
- ネットワークプロトコルの種類。 例:イーサネットは「1」。
- プロトコルタイプ (PTYPE)
- ARPリクエスト要求が意図するインターネットプロトコル。IPv4の場合、0x0800以降の値。
- ハードウェア長 (HLEN)
- オクテットによるハードウェアアドレスの長さ。イーサネットアドレス(MACアドレス)のサイズは「6」。
- プロトコル長 (PLEN)
- 上位層のプロトコル(PTYPEに指定された上位層プロトコル)が使用するオクテットによるアドレス。IPv4のアドレスサイズは「4」。
- オペレーション
- 送信者が実行している動作:「1」は要求、「2」は返信。
- 送信元ハードウェアアドレス (SHA)
- 送信側のメディアアドレス(Media address、MACアドレス)。ARPリクエストでは、要求を送信するホストのアドレスを示す。ARP応答では、要求が探していたホストのアドレスを示す。(必ずしも、仮想メディアのように応答するホストのアドレスではない。)スイッチは、MACアドレスを学習するにが、このフィールドに注意を払っていないことに注意が必要である。ARP PDUは、イーサネットフレームにカプセル化され、データリンク層(第2層)のデバイスが調べる。
- 送信元プロトコルアドレス (SPA)
- 送信元のインターネットワークアドレス(internetwork address、IPアドレス)。
- 送信先ハードウェアアドレス (THA)
- 受信側のメディアアドレス(Media address、MACアドレス)。ARPリクエストでは、このフィールドは無視する。ARP応答では、このフィールドは、ARPリクエストを送信したホストのアドレスを示す。
- 送信先プロトコルアドレス (TPA)
- 送信先のインターネットワークアドレス(internetwork address、IPアドレス)。
ARPプロトコルのパラメータ値は Internet Assigned Numbers Authority (IANA) によって標準化され、維持されている。 [1]
ARPキャッシュ
効率を上げるため、多くの機器では一度取得したIPアドレスとMACアドレス間のマッピング情報をARPテーブルにARPキャッシュとして保持する。
Ciscoの機器ではタイムアウトのデフォルト値として14400秒(4時間)が採用されており、多くの機器では同様の値が設定されている事が多い。 キャッシュ情報はTCP/IPがサポートされたWindowsであればコマンドプロンプトから arp -a と入力すれば一覧が見られ、キャッシュ情報はハイフンで分割された6つの16進数で表示される。
代理ARP
他のネットワークにARP要求があった場合にルーターがホストに代わって回答する仕組みである。Proxy ARPなどと呼ばれており、NAT環境化において使用される例が多い。
脚注
- ^ “IANA ARP parameter assignments”. IANA (2009年4月24日). 2015年10月11日閲覧。
関連項目
- RARP (Reverse address resolution protocol、リバースARP) - MACアドレスからIPアドレスに変換するプロトコル
- Gratuitous ARP - ARPパケットの送信元ホスト自身のIPアドレスに対するARP
- ブリッジ
- レイヤ3スイッチ
- ARPスプーフィング
- プロキシARP - ルーターなどが代理でIPアドレスを回答する仕組み