アドレス解決プロトコル(ARP)とその仕組みとは?

Address Resolution Protocol (ARP)

アドレス解決プロトコル(ARP)は、常に変化するIPアドレスを固定のMedia Access Control(MAC)アドレスに接続します。ディレクトリには、IPアドレスとMACアドレスの両方の詳細なマップが格納されます。

ARPは、紛らわしく聞こえるかもしれません。計算は複雑ですが、作業は迅速に行われます。変換が行われていることにすら気づかないかもしれません。

ARPとは?

ローカルエリアネットワーク(LAN)内のすべてのデバイスは2つのアドレスを持っています。1つは変更され(IPアドレス)、もう1つは固定されています(MACアドレス)。ARPはこの2つのシステムの接続を維持します。

ARPプロセスには変換が含まれます。例えば、IPアドレスはMACアドレスよりかなり短いかもしれません。また、同じ数字が同じ順序で並んでいることもありません。

しかし、システムが一方を他方に対して解決できなければ、デバイス間でのデータフローは不可能です。迅速な変換が重要です。

インターネットワーキンググループ(Internet Working Group)は、1982年にARPを開発し、今日のコネクティビティの基盤として機能しています。 

ARPの仕組み

あるデータがネットワークゲートウェイに到着すると、LAN内のマシンと接続する必要があります。ARPは、データが正しい場所に到着できるようにします。

ARPは次のような仕組みになっています:

  • MACアドレス:データリンク層としても知られるMACアドレスは、2つのデバイスを接続し、情報の転送を可能にします。
  • IPアドレス:新しいデバイスがLANに参加すると、システムはIPアドレスを割り当てます。ユーザーのプライバシーを保護するため、システムは定期的に新しいIPアドレスをランダム化して割り当てます。IPアドレスは、ルーターを介したパケット転送を容易にします。

ARPプロセスでは、次のステップが行われます。

  • Arrival(到着):データはLAN上のマシンに送られ、ネットワーク内のハードウェアに到着します。
  • Check(チェック):ゲートウェイマシンは、データパケットで指定されたIPアドレスと一致するMACアドレスを見つけるようARPプログラムに要求します。ARPはシンプルなメッセージ形式を使用しており、サイズは様々です。
  • Specification(指定):ルックアップが完了すると、ゲートウェイマシンは情報を解放し、データは先に進みます。

ARPメッセージ形式についてもっと深く掘り下げてみましょう。一般的なリクエストには、以下のようないくつかのフィールドが含まれます。

  • Hardware type(ハードウェアの種類)
  • Protocol type(プロトコルの種類)
  • Hardware address length(ハードウェアアドレスの長さ)
  • Protocol address length(プロトコルアドレスの長さ)
  • Sender hardware address(送信者のハードウェアアドレス)
  • Sender protocol address(送信者のプロトコルアドレス)
  • Target hardware address(受信者のハードウェアアドレス)
  • Target protocol address(受信者のプロトコルアドレス)

各メッセージには大量の情報が含まれていますが、全体のサイズは非常に小さいです。

ARPバリエーションの種類

簡単なARPメッセージとプロトコルについてご説明してきましたが、各社で独自の実装方法を実験し、開発することができます。

企業では、以下に挙げるARPの2つの異なるバージョンがよく使われています。

  • Inverse(逆):システムはMACアドレスで始まり、IPアドレスを要求します。
  • Proxy(プロキシ): ネットワーク上のデバイスが、LAN上にないIPアドレスからのARPリクエストを処理します。

企業によってはARPの使用を避け、Neighbor Discovery Protocol(NDP:近隣探索プロトコル)を使用するところもあります。ネットワーキンググループが2007年にリリースしたInternet Protocol Version 6(IPv6)では、このNDPがサポートされています。NDPを使用する企業では、ルックアップにアクティブなプロトコルを使用するのではなく、コンピュータが既知のアドレスの一覧を維持できるようにしています。

既知のARPの問題

ARPは高速で効率的ですが、ハッカーはシステムを操作することができます。

ARPスプーフィング(またはARPポイズニング)攻撃では、ハッカーが悪意のあるMACアドレスと正当なLAN IPアドレスをリンクさせた偽のARPメッセージを作成します。被害者のデバイスに向かうデータは、代わりにハッカーに送られます。この手法は、中間者攻撃につながります。

ARPスプーフィング攻撃は、IPスプーフィング攻撃とよく似ています。この脆弱性の仕組みと対処方法については、当社のブログで詳細をご確認ください。

参考文献

An Ethernet Address Resolution Protocol(1982年11月、Network Working Group)

ARP Message Format(TCP/IP Guide)

Neighbor Discovery for IP Version 6 (IPv6)(2007年9月、Network Working Group