ARPとは(アドレス解決の概要と通信の仕組み)

ARPとは(アドレス解決の概要と通信の仕組み)

ARPの基礎について説明します。

目次

ARP(Address Resolution Protocol)とは

概要

ARP(アープ)とは、「Address Resolution Protocol」の略で、IPアドレスからMACアドレスを解決(学習/取得)するためのプロトコルです。TCP/IP通信において、最終的に目的地(宛先ホスト)に辿り着くためには、その機器が持っているMACアドレスが必要です。

特定のIPアドレス(宛先ホスト)のMACアドレスを知りたい機器は、ARP要求(ARPリクエスト)をネットワーク全体に送信し、そのIPアドレスを持っている機器は、ARP応答(ARPリプライ)を返信します。ARP応答を受け取った機器は、自身のARPテーブルにその情報を記載し、以降はその情報を利用して通信を行います。

TCP/IP通信の詳細については、下記を参照してください。

ネットワーク例

下記ネットワークにおける、ホストAからホストBへの通信を例とします。

ネットワーク構成

ARP要求(ARPリクエスト)

ホストAはホストBのIPアドレスは知っていますが、MACアドレスは知らないため、ARP要求(ARPリクエスト)をネットワーク全体に送信します。※ブロードキャスト通信

ARP要求送信

ARP応答(ARPリプライ)

ホストB(192.168.1.2)は、自身のIPアドレスのARP要求であることを認識し、ARP応答(ARPリプライ)を送信します。※ユニキャスト通信

ARP応答送信

無事にホストBのMACアドレスを取得したホストAは、実際の通信を開始できます。

ARPの種類

上述の説明は、一般的なARPの概要ですが、実はARPには様々な種類があります。

スクロールできます
名前略称読み方説明
ARPアープ一般的なARP。IPアドレスからMACアドレスを解決するためのプロトコル。
Reverse ARPRARPリバースアープMACアドレスを元にIPアドレスを割り当てるためのプロトコル。
IPアドレス割り当ては、DHCPの利用が一般的なため、あまり利用されていない。
Gratuitous ARPGARPグラチューイタスアープIPアドレスの利用有無の確認や周辺機器のARPキャッシュをクリアするために利用されるプロトコル。
Cisco機器では、HSRPの冗長切り替わりの際に利用される。
Proxy ARPプロキシアープ自身が保持していないIPアドレスに対するARP要求に対して、代理で応答する機能。
ARPの種類ではなく、正確には「ARPの特殊な使われ方」にあたるが、あまり利用されていない。

通常のARP以外の説明は、下記を参照してください。

ARP通信のパケット詳細

ARP要求(ARPリクエスト)とARP応答(ARPリプライ)の詳細について説明します。

ARP要求(ARPリクエスト)の詳細

ARP要求のパケットの中身を確認します。

ARP要求のパケットキャプチャ
1   52:54:00:00:36:67 → ff:ff:ff:ff:ff:ff ARP 42 Who has 192.168.1.2? Tell 192.168.1.1

Frame 1: 42 bytes on wire (336 bits), 42 bytes captured (336 bits)
Ethernet II, Src: 52:54:00:00:36:67, Dst: ff:ff:ff:ff:ff:ff
    Destination: ff:ff:ff:ff:ff:ff
    Source: 52:54:00:00:36:67
    Type: ARP (0x0806)
Address Resolution Protocol (request)
    Hardware type: Ethernet (1)
    Protocol type: IPv4 (0x0800)
    Hardware size: 6
    Protocol size: 4
    Opcode: request (1)
    Sender MAC address: 52:54:00:00:36:67
    Sender IP address: 192.168.1.1
    Target MAC address: 00:00:00:00:00:00
    Target IP address: 192.168.1.2
イーサネットヘッダ
スクロールできます
項目表記説明
送信先MACアドレスDestinationARP要求はブロードキャストのため、送信先は「ff:ff:ff:ff:ff:ff」
送信元MACアドレスSourceARP要求を送信しているホストのMACアドレス
イーサネットタイプTypeARPのイーサネットタイプは「0806」
ARP要求のフォーマット
スクロールできます
項目表記説明
ハードウェアタイプHardware typeイーサネットの場合は「1」
プロトコルタイプProtocol typeIPv4の場合は「0800」
ハードウェアサイズHardware sizeイーサネットの場合はMACアドレスのサイズ「6Byte」
プロトコルサイズProtocol sizeIPv4の場合はIPアドレスのサイズ「4Byte」
オペレーションコードOpcodeARP要求の場合は「1」
送信者MACアドレスSender MAC addressARP要求を送信しているホストのMACアドレス
送信者IPアドレスSender IP addressARP要求を送信しているホストのIPアドレス
送信先MACアドレスTarget MAC addressARP要求の場合は、解決したいMACアドレスのため「00:00:00:00:00:00」
送信先IPアドレスTarget IP addressARP解決したい対象のIPアドレス

ARP応答(ARPリプライ)の詳細

ARP応答のパケットの中身を確認します。

ARP応答のパケットキャプチャ
2   52:54:00:09:8c:cf → 52:54:00:00:36:67 ARP 60 192.168.1.2 is at 52:54:00:09:8c:cf

Frame 2: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: 52:54:00:09:8c:cf, Dst: 52:54:00:00:36:67
    Destination: 52:54:00:00:36:67
    Source: 52:54:00:09:8c:cf
    Type: ARP (0x0806)
    Padding: 000000000000000000000000000000000000
Address Resolution Protocol (reply)
    Hardware type: Ethernet (1)
    Protocol type: IPv4 (0x0800)
    Hardware size: 6
    Protocol size: 4
    Opcode: reply (2)
    Sender MAC address: 52:54:00:09:8c:cf
    Sender IP address: 192.168.1.2
    Target MAC address: 52:54:00:00:36:67
    Target IP address: 192.168.1.1
イーサネットヘッダ
スクロールできます
項目表記説明
送信先MACアドレスDestinationARP要求を送信したホストのMACアドレス
送信元MACアドレスSourceARP応答を送信しているホストのMACアドレス
イーサネットタイプTypeARPのイーサネットタイプは「0806」
ARP応答のフォーマット
スクロールできます
項目表記説明
ハードウェアタイプHardware typeイーサネットの場合は「1」
プロトコルタイプProtocol typeIPv4の場合は「0800」
ハードウェアサイズHardware sizeイーサネットの場合はMACアドレスのサイズ「6Byte」
プロトコルサイズProtocol sizeIPv4の場合はIPアドレスのサイズ「4Byte」
オペレーションコードOpcodeARP応答の場合は「2」
送信元MACアドレスSender MAC addressARP応答を送信しているホストのMACアドレス
送信元IPアドレスSender IP addressARP応答を送信しているホストのIPアドレス
送信先MACアドレスTarget MAC addressARP要求を送信したホストのMACアドレス
送信先IPアドレスTarget IP addressARP要求を送信したホストのIPアドレス

以上で、ARPとは(アドレス解決の概要と通信の仕組み)の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次