要約
アドレス解決プロトコル(ARP)は、ローカルエリアネットワーク(LAN)内で動的なIPアドレスと固定のMACアドレスの間のギャップを埋める、ネットワーキングの基本的なメカニズムです。ARPは、ほとんどの場合バックグラウンドで動作し、ある種類のアドレスを別の種類のアドレスに変換することで、データが正しいデバイスに到達できるようにします。ARPは高速で効率的ですが、なりすまし攻撃に対して脆弱です。また、IPv6環境向けにはNeighbor Discovery Protocol(NDP)のような代替手段も存在します。
アドレス解決の基本
アドレス解決プロトコル(ARP)は、常に変化するIPアドレスを固定メディアアクセス制御(MAC)アドレスに接続します。ディレクトリには、IPアドレスとMACアドレスの両方の詳細なマップが格納されます。
ARPプロトコルは、紛らわしく聞こえるかもしれません。計算は複雑ですが、作業は迅速に行われます。変換が行われていることにすら気づかないかもしれません。
ARPとは?
ローカルエリアネットワーク(LAN)内のすべてのデバイスは2つのアドレスを持っています。一方(IP(インターネットプロトコル)アドレス)は変更され、もう一方(MACアドレス)は固定されています。ARPはこの2つのシステムの接続を維持します。
ARPプロセスには変換が含まれます。例えば、IPアドレスはMACアドレスよりかなり短いかもしれません。また、同じ数字が同じ順序で並んでいることもありません。
しかし、システムが一方を他方に対して解決できなければ、デバイス間でのデータフローは不可能です。迅速な変換が重要です。
インターネットワーキンググループ(Internet Working Group)は、1982年にARPプロトコルを開発し、今日のコネクティビティの基盤として機能しています。
ARPの仕組み
あるデータがネットワークゲートウェイに到着すると、LAN内のマシンと接続する必要があります。ARPは、データが正しい場所に到着できるようにします。
ARPプロトコルは次のような仕組みになっています:
MACアドレス。データリンク層としても知られるMACアドレスは、2つのデバイスを接続し、情報の転送を可能にします。
IPアドレス。新しいデバイスがLANに参加すると、システムはIPアドレスを割り当てます。ユーザーのプライバシーを保護するため、システムは定期的に新しいIPアドレスをランダム化して割り当てます。IPアドレスは、ルーターを介したパケット転送を容易にします。
ARPプロセスでは、次のステップが行われます。
到着。データはLAN上のマシンに送られ、ネットワーク内のハードウェアに着地します。
チェック。ゲートウェイマシンは、データパケットで指定されたIPアドレスと一致するMACアドレスを見つけるようARPプログラムに要求します。ARPはシンプルなメッセージ形式を使用しており、サイズは様々です。
仕様。ルックアップが完了すると、ゲートウェイマシンは情報を解放し、データは先に進みます。
クライアントからのリクエストの図: https://cdn.ttgtmedia.com/rms/onlineimages/whatis-arp_desktop.png
ARPメッセージ形式についてもっと深く掘り下げてみましょう。一般的なリクエストには、以下のようないくつかのフィールドが含まれます。
ハードウェアの種類
プロトコルの種類
ハードウェアアドレスの長さ
プロトコルアドレスの長さ
送信者のハードウェアアドレス
送信者のプロトコルアドレス
ターゲットハードウェアアドレス
ターゲットプロトコルアドレス
各メッセージには大量の情報が含まれていますが、全体のサイズは非常に小さいです。
ARPにはどのような種類がありますか?
簡単なARPメッセージとプロトコルについてご説明してきましたが、各社で独自の実装方法を実験し、開発することができます。
企業では、以下に挙げるARPの2つの異なるバージョンがよく使われています。
| バリエーション | Description |
|---|---|
| 逆ARP | システムはMACアドレスで始まり、IPアドレスを要求します。 |
| プロキシARP | ネットワーク上のデバイスが、LAN上にないIPアドレスからのARPリクエストを処理します。 |
| 近隣探索プロトコル(NDP) | アクティブなプロトコルをルックアップに使用するのではなく、コンピューターが既知のアドレスのリストを維持できるようにします。IPv6で使用されます。 |
企業によってはARPの使用を避け、Neighbor Discovery Protocol(NDP:近隣探索プロトコル)を使用するところもあります。ネットワーキンググループが2007年にリリースしたInternet Protocol Version 6(IPv6)では、このNDPがサポートされています。NDPを使用する企業では、ルックアップにアクティブなプロトコルを使用するのではなく、コンピュータが既知のアドレスの一覧を維持できるようにしています。
ARPの既知の問題点について教えてください。
ARPは高速で効率的ですが、ハッカーはシステムを操作することができます。
ARPスプーフィング(ARPポイズニング)とは何ですか?
ARPスプーフィング(またはARPポイズニング)攻撃では、ハッカーが悪意のあるMACアドレスと正当なLAN IPアドレスをリンクさせた偽のARPメッセージを作成します。被害者のデバイスに向かうデータは、代わりにハッカーに送られます。この手法は、中間者攻撃につながる可能性があります。
ARPスプーフィング攻撃は、IPスプーフィング攻撃とよく似ています。この脆弱性の仕組みと対処方法については、当社のブログで詳細をご覧ください。
よくある質問(FAQ)
ARPがIPアドレスとMACアドレスを変換する必要があるのはなぜですか?
ローカルエリアネットワーク上のデバイスは、時間とともに変化する動的IPアドレスと、ハードウェアに紐付けられた固定MACアドレスという2種類の異なるアドレスタイプに依存しています。この2つのアドレス形式は異なり、同じ数字が同じ順序で並ぶことはないため、デバイス間でデータが正しく流れるよう、一方を他方にマッピングするARPが必要です。
ARPルックアップではどのような処理が行われますか?
LAN上のマシン宛のデータがネットワークゲートウェイに到着すると、ゲートウェイはARPプログラムに、宛先IPアドレスに一致するMACアドレスを検索するように要求します。ルックアップが完了すると、ゲートウェイはデータの解放を行い、正しいデバイスへデータが移動します。
Inverse ARPとProxy ARPの違いは何ですか?
逆ARPは、標準のARPとは逆の方向に動作します。システムは既知のMACアドレスから開始し、それを使用して対応するIPアドレスを要求します。一方、プロキシARPは、ローカルLAN上にないIPアドレスに代わってARP要求を処理するネットワークデバイスが関与します。
ARPのなりすましとは何ですか?なぜ危険なのですか?
ARPスプーフィング(ARPポイズニングとも呼ばれる)は、ハッカーが偽のARPメッセージを送信し、LAN上の正規のIPアドレスに悪意のあるMACアドレスを関連付ける攻撃です。これにより、被害者のデバイス宛てのデータが攻撃者にリダイレクトされ、中間者攻撃が可能になる場合があります。
近隣探索プロトコル(NDP)とは何ですか?また、ARPとはどのように異なるのですか?
近隣探索プロトコル(NDP)は、IPv6環境で使用されるARPの代替プロトコルです。NDPでは、ルックアップ要求をアクティブにブロードキャストするのではなく、コンピューターが既知のアドレスのリストを独自に維持できるため、リアルタイムのプロトコルベースの解決の必要性が低減します。
ARPプロトコルはいつから使われており、現在でも有効ですか?
ARPは1982年にInternet Working Groupによって開発され、今日でもネットワーク接続の基本要素であり続けています。ローカルエリアネットワーク内のデバイスが相互に通信する方法を支えています。
参考文献
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)