【ARPについて】

             このHPはARPについてまとめたものです。


1-1 ARPとは

「ARP」とは、IPアドレスを基にMACアドレスを検知するプロトコル。
LANに接続されているホスト同士が通信をするには、「IPパケット」は、イーサネットフレームにカプセル化されて運ばれるため、お互いの「MACアドレス」が必要になる。

IPネットワークでは、「ARP」を使用してMACアドレスを求める。
「ARP」では、知りたいIPアドレスをパケットに設定して、MACブロードキャストを行う。これを「ARPリクエスト」と呼ぶ。

パケットは、同一サブネット上にあるすべてのホストが受信する。
知りたいIPアドレスを持つホストは、自分のMACアドレスを書き込んで、送信元のホストに、回答を返す。これを「ARPリプライ」と呼ぶ。




1-2 ARPの動作

以下の図で、「ホストA」から「ホストC」への通信する場合の動きを見てみる。









【1】:まず、ネットワーク上の全てのホストに対し、「ARP要求(リクエスト)パケット」を送信する。これは、「ARP要求(リクエスト)パケット」をブロードキャストで送信し、宛先MACアドレスは「FF-FF-FF-FF-FF-FF」。



【2】:ARP要求(リクエスト)パケットを受け取った「ホストB」、「ホストD」は、宛先IPアドレスを参照し、このIPアドレスが、自分宛でないので、そのパケットを破棄する。「ホストC」は、宛先IPアドレスが自分宛であるため、そのパケットを受け取って、「ARP応答(リプライ)パケット」を作成する。このとき、「ホストC」は「ARP応答(リプライ)パケット」に、「自分のMACアドレス」をセットする。



【3】:そして、「ARP応答(リプライ)パケット」を送信してきた相手「ホストA」に対して返送する。「ARP応答(リプライ)パケット」は、ユニキャストで送信される。



【4】:「ARP応答(リプライ)パケット」によって、宛先MACアドレスを入手した「ホストA」は、データをイーサネットフレームを含めてLAN上に送信する。




1-3 ARPテーブル

ARP応答パケットを受信したホストは、相手ホストのIPアドレスとMACアドレスの対応関係の情報をメモリ上に保持し、保持した内容を「ARPキャッシュ」と呼ぶ。また、アドレスの対応表を「ARPテーブル」と呼ぶ。
そして、同様にARP要求パケットを受信した「ホストC」も相手ホストのIPアドレスとMACアドレスとの対応関係の情報を、「ARPキャッシュ」に保存する。


IPパケットを送るごとに、MACアドレスを調査していては、手間がかかり転送の効率も落ちてしまう。
そこで、得られたIPアドレスとMACアドレスの対応表をキャッシュし、通常は、まずそのキャッシュを参照するようにすることで、不要なデータ転送を押さえるようにする。


また、ARPキャッシュの情報は、一定時間利用されないと、自動的に破棄される。格納時間は「OS」によって異なる。WindowsPC上の「ARPテーブル」を見るには、コマンドプロンプトで「arp -a」というコマンドを使用する。
以下に、「ARPテーブルの出力結果」を示す。






Ciscoルータ及びCatalystスイッチで、「ARPテーブル」を表示するには、「show arp(またはshow ip arp)コマンド」を実行する。