ARPキャッシュ(エーアールピーキャッシュ)とは | 意味や読み方など丁寧でわかりやすい用語解説
ARPキャッシュ(エーアールピーキャッシュ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ARPキャッシュ (エーアールピーキャッシュ)
英語表記
ARP cache (エーアールピーキャッシュ)
用語解説
ARPキャッシュは、ネットワーク上でデータ通信を行う際に、IPアドレスとMACアドレスの対応関係を一時的に保存しておく仕組みである。コンピューターが同じローカルネットワーク(LAN)内の別のデバイスと通信しようとする際、宛先のIPアドレスはわかるが、実際にデータを送るためにはそのデバイスのMACアドレスが必要となる。通常、このMACアドレスを知るためにARP(Address Resolution Protocol)というプロトコルを使って問い合わせを行うが、毎回問い合わせを行うと通信効率が低下する。そこで、一度解決したIPアドレスとMACアドレスの組み合わせをARPキャッシュとして記憶し、次回以降の通信時にその情報を再利用することで、通信を高速化し、ネットワークへの負荷を軽減する役割を担う。このキャッシュ情報は一定時間が経過すると自動的に削除されるか、新しい情報に更新される。
ネットワーク通信において、データは複数の層を経て送受信される。TCP/IPモデルにおけるネットワーク層(レイヤー3)ではIPアドレスが利用され、データリンク層(レイヤー2)ではMACアドレスが利用される。IPアドレスはネットワークを越えて一意にデバイスを識別する論理アドレスであるのに対し、MACアドレスは物理ネットワークインターフェースカード(NIC)に割り振られたグローバルに一意な物理アドレスである。同一LAN内のデバイス間でデータを直接送受信するためには、最終的な宛先のMACアドレスが必要不可欠となる。
ARPプロトコルは、あるIPアドレスに対応するMACアドレスを解決するためのメカニズムである。送信元デバイスは、宛先IPアドレスのMACアドレスを知りたい場合、LAN全体に「このIPアドレスを持つデバイスは誰ですか?あなたのMACアドレスを教えてください」というARPリクエスト(ブロードキャスト)を送信する。該当するIPアドレスを持つデバイスは、自身のMACアドレスを含んだARPリプライを送信元に返信する。このやり取りによって、送信元デバイスは宛先MACアドレスを取得し、データ送信が可能となる。
しかし、毎回の通信でこのARPリクエスト・リプライのプロセスを踏むのは非常に非効率である。特に頻繁に通信する相手に対しては、無駄なARPトラフィックが増大し、通信開始までの遅延も発生する。この問題を解決するために導入されたのがARPキャッシュである。
ARPキャッシュは、各デバイスのメモリ内に「ARPテーブル」として保持される。このテーブルには、解決済みのIPアドレスとMACアドレスのペア、およびその情報がいつまで有効かを示す有効期限(TTL: Time To Live)が含まれる。 具体的な動作は以下のようになる。
- あるデバイスが同一LAN内の別のデバイスへデータを送信しようとする際、まず自身のARPキャッシュを検索し、宛先IPアドレスに対応するMACアドレスが登録されているか確認する。
- もしキャッシュ内に有効なエントリが見つかれば、そのMACアドレスをすぐに利用してデータ送信を開始する。この状態を「キャッシュヒット」と呼ぶ。これにより、ARPリクエスト・リプライのプロセスをスキップでき、通信が高速化される。
- もしキャッシュ内にエントリがないか、あるいは有効期限が切れている場合は、「キャッシュミス」となる。この場合、デバイスはARPプロトコルを用いてARPリクエストをブロードキャストし、宛先MACアドレスを解決する。
- ARPリプライを受信しMACアドレスが判明すると、そのIPアドレスとMACアドレスのペアを新たなエントリとしてARPキャッシュに追加する。このとき、有効期限も設定される。
ARPキャッシュの有効期限は非常に重要である。ネットワーク構成の変更(例えば、あるデバイスのNICが交換されMACアドレスが変わった場合や、DHCPによってIPアドレスが変わった場合など)に適切に対応するため、キャッシュ情報は永久に保持されるのではなく、一定時間で自動的に破棄されるようになっている。この有効期限はOSやネットワークデバイスによって異なり、数分から数十分程度の値が設定されていることが多い。有効期限が切れたエントリは、次の通信時に改めてARPリクエストが発行され、最新の情報に更新される。手動でARPキャッシュの内容を確認するには、Windowsではarp -aコマンド、LinuxやmacOSではarp -nコマンドなどが用いられる。また、不要なエントリを削除したり、静的なエントリを追加したりすることも可能である。
ARPキャッシュの最大のメリットは、ネットワークトラフィックの削減と通信の高速化にある。不要なARPブロードキャストが減ることで、ネットワーク全体の負荷が軽減され、CPUがアドレス解決処理に費やすリソースも削減される。一方で、有効期限の問題やセキュリティ上の課題も存在する。特に、ARPスプーフィングと呼ばれる攻撃では、攻撃者が偽のARPリプライを送信し、正規のデバイスのMACアドレスであるかのように見せかけてARPキャッシュに誤った情報を登録させることがある。これにより、攻撃者は通信経路を乗っ取ったり、データを盗聴したりすることが可能になる。このようなリスクに対しては、静的ARPエントリの利用や、不正なARPパケットを検知するネットワークセキュリティ機能の導入などが対策として考えられる。しかし、通常の運用においては、ARPキャッシュはネットワーク通信の効率性を高める上で不可欠な機能として利用されている。