ARPテーブル

 宛先のMACアドレスが分からない場合、ARPのプロセスを開始することによって、宛先MACアドレスを調べます。そして、次からの通信に備えて、自分の持つARPテーブルに、学習した宛先IPアドレスとMACアドレスの対応情報を追加します。

 次の通信から、このARPテーブルを参照することで、MACアドレスを知ることができるので、ARPのプロセスを行わなくて済むようになっているのです。

それでは、

Windowsパソコンを使ってARPテーブルを確認します。

コマンドプロンプトを起動します。

c:\>arp -a

と入力します。

そうすると今現在の自分のパソコンのARPテーブルが表示されます。

ちなみに、ARPコマンドのオプションは以下のようになっています。

オプション説明
-a (IP address)ARPキャッシュテーブルからエントリを表示する。
-d [IP address] (Interface)ARPエントリを削除する。
-g-aと同じ
-N [Interface]指定したインターフェイス番号のARPエントリを表示する。
-s [IP address] [Mac Address] (Interface)ARPテーブルに追加する。

このARPエントリー上にない同じネットワークに所属する他の端末と通信を行います。

 共有フォルダへのアクセスでも何でもかまいません。場合によっては、ウイルス対策ソフトのファイアウォール機能を解除しておきます。

 また、OS側のファイアウォールの設定も外しておきます。デフォルトでは、ICMPのECHO要求がブロックされるようになっているからです。

ローカルエリア接続に鍵が表示されていたら、ファイアウォールが設定されています。

ファイアウォールの設定を外したら、他の端末にPingを打ってみます。

例えば、

ping 192.168.1.1

と入力します。

再度、ARPテーブルを表示させます。

c:\>arp -a

と入力します。

すると、新しいエントリーが表示されています。

「192.168.1.1」に対応するMACアドレスが追加されています。

しばらく、待ちます。10分程度待ちます。その間、「192.168.1.1」とは、一切、通信を行わないで下さい。

※Windowsパソコンでは、エントリとの通信が通常10分間、発生しなかったら、そのエントリはテーブルから削除されます。

再び、ARPテーブルを表示します。

c:\>arp -a

と入力します。

「192.168.1.100」対するエントリーが消えました。

 ARPテーブルは、定期的にリフレッシュされるので、しばらく通信がない場合は、ARPテーブル上からエントリーが削除されるようになっています。

このような仕組みになっているのには、理由があります。

なぜ、このような仕組みになっているのかを説明して行きます。

 例えば、下のネットワーク構成を見て下さい。このネットワークは、DHCPサーバによって各コンピュータにIPアドレスを割り当てています。

コンピュータAは、各コンピュータとの次のARPテーブルを持っています。

IPアドレスMACアドレス
192.168.1.200:17:42:5B:33:02
192.168.1.300:17:42:5B:33:03
192.168.1.400:17:42:5B:33:04
192.168.1.500:17:42:5B:33:05
192.168.1.1000:17:42:5B:33:0A

一度学習したARPテーブルが、もしも更新されないとしたらどうでしょうか?

例えば、コンピュータDとコンピュータEが再起動して、新しいIPアドレスが割り当てられました。

その結果、

コンピュータDのIPアドレスが、「192.168.1.4」から、「192.168.1.5」に
コンピュータEのIPアドレスが、「192.168.1.5」から、「192.168.1.4」に

変わった場合を考えてみます。

 ARPテーブルが更新されない場合、IPアドレスとMACアドレスの組み合わせにに矛盾が生じてきます。つまり、整合性が保てなくなるのです。

 コンピュータAは、コンピュータDとコンピュータEとの通信で、正しいIPアドレスとMACアドレスの組み合わせを指定して、通信することができないので、通信が失敗してしまいます。

ARPテーブルは、下のように変更されなければ、なりません。

IPアドレスMACアドレス
192.168.1.200:17:42:5B:33:02
192.168.1.300:17:42:5B:33:03
192.168.1.400:17:42:5B:33:05
192.168.1.500:17:42:5B:33:04
192.168.1.1000:17:42:5B:33:0A

 そのために、ARPテーブルは、定期的にリフレッシュ(テーブル上からクリア)されることで、整合性を保つようにしているのです。