アドレス解決プロトコル(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