ARPキャッシュがクリアされる理由

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.2 00:17:42:5B:33:02
192.168.1.3 00:17:42:5B:33:03
192.168.1.4 00:17:42:5B:33:05
192.168.1.5 00:17:42:5B:33:04
192.168.1.10 00:17:42:5B:33:0A

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

 Ciscoルータの場合は、このARPキャッシュの時間は、デフォルトで、14,400 秒(4 時間)と長めに設定されています。ルータなので、接続する隣接機器のIPアドレスが頻繁に変わることはないので、妥当と言えるかもしれません。

 次の「ルータを超える機器とのARP」では、ルータを超える位置に存在する端末との通信におけるARPの動作について解説します。

関連コンテンツ