「ARP(Address Resolution Protocol)」とは、LAN(ローカルネットワーク)に接続したデバイスでWebサイトを開いたり、動画配信サービスにアクセスしたり、ファイル送信などを行う際に、通信データが正しいデバイスに確実に届くよう裏で動作する「アドレス解決プロトコル」です。
アドレス解決プロトコル(ARP)はローカルネットワークで動作するプロトコルで、デバイスのIPアドレスを元にMACアドレス(ハードウェアアドレス)を特定することで、特定のデータがどのデバイスへ送られるべきかを判断します。ARPがなければ、ネットワークに接続されているデバイス同士での通信のやり取りが出来なくなってしまいます。この記事では、ARPの仕組み、ネットワークにおけるARPの役割、そしてARPを標的とするサイバー攻撃について解説します。
ARPとは?ARPの仕組み

ARPとは、ローカルネットワークに接続されている機器同士がお互いを特定できるようにするためのプロトコルです。ARPは、デバイスのIPアドレスから(そのデバイスの物理的なハードウェアを識別する一意の番号である)MAC(メディアアクセス制御)アドレスを取得する役割を持ちます。
ローカルネットワークに接続されている全デバイスは、データリンク層でMACアドレスを使用して互いに通信を行います。DHCP(Dynamic Host Configuration Protocol)を介してデバイスにIPアドレスが割り当てされると、同じローカルネットワーク内のデバイスは互いのIPアドレスは把握できますが、MACアドレス(ハードウェアアドレス)を知ることはできません。デバイス間でデータを伝送するためにはMACアドレスが必要となるため、ARPは不可欠な存在です。
例えば、ノートパソコンからプリンターへファイルを送信する場合を想像してみましょう。ノートパソコンはプリンターのIPアドレスは把握できます。しかし、それだけではプリンターのMACアドレスがわかりません。ARPを使ってプリンターのIPアドレスを元にMACアドレスを取得することで、ノートパソコンはファイルを送信すべきプリンター(デバイス)を特定することができるのです。
2つのネットワーク機器(デバイスAとデバイスB)間でのARPプロトコルの流れを、以下にまとめてみました。
- デバイスAは、デバイスBのMACアドレスについてARPキャッシュを確認します。ARPキャッシュは小さな内部リストで、デバイスBのIPアドレスに対応するMACアドレスが保存されているかをデバイスAに知らせることができます。MACアドレスが保存されている場合、両デバイスはそのまま通信を開始します。なお、ARPキャッシュは、ARPキャッシュの「タイムアウト」と呼ばれる短い期間を経過すると失効します。このタイムアウトは、デバイスがIPとMACの対応関係を保存する期間を制限するためのものです。
- ARPキャッシュにデバイスBのMACアドレスが存在しない場合、デバイスAはARPリクエストを作成します。ARPリクエストには、デバイスAのIPアドレスとMACアドレス、およびデバイスBのIPアドレス(MACアドレス欄は空白のまま)情報が含まれます。
- デバイスAはARPリクエストをブロードキャスト(一斉配信)します。LAN全体に一斉配信するため、ローカルネットワークに接続されているすべてのデバイスがリクエスト(メッセージ)を受け取ります。
- LAN上の各デバイスがARPリクエストの内容を確認します。デバイスBは自身のMACアドレスが要求されていることを検知して、ARPリクエストへの処理を開始します。それ以外のデバイスはリクエストを無視します。
- デバイスBはARP応答を作成します。デバイスB自身のIPアドレスとMACアドレスを含むメッセージを作成します。作成が完了するとデバイスAに送信されます。
- デバイスAはARPキャッシュを更新し、デバイスBのMACアドレスを追加します。これでデバイスAはデバイスBへのデータパケットの送信を開始できるようになります。
ARPメッセージに含まれる情報とは?
デバイスは、以下の情報を含めたARPメッセージを作成します。
| ARPメッセージの項目欄 | 内容 |
| ハードウェアの種類 | メッセージの送信に使用されるネットワークハードウェアの種類。ARPはさまざまな種類のネットワークで動作するため、デバイスは、自身がどの種類のネットワーク上にあるかを指定し、MACアドレスの形式を特定します。 |
| プロトコルタイプ | メッセージ内のアドレスに使用されるネットワークプロトコルの種類(例:IPv4)。 |
| アドレスの長さ | MACアドレスの長さ(バイト単位、デジタル情報の単位)。 |
| プロトコルの長さ | IPアドレスのサイズ(バイト単位)。 |
| 処理 | ARPメッセージで使用されるリクエストまたは応答コード。 |
| 送信側のハードウェアアドレス | メッセージを送信するデバイスのMACアドレス。 |
| 送信側のプロトコルアドレス | メッセージを送信するデバイスのIPアドレス。 |
| 宛先のハードウェアアドレス | ARPメッセージの宛先となるデバイスのMACアドレス。リクエストの場合、送信デバイスはこのアドレスを知らないため、空欄になります。 |
| 宛先のプロトコルアドレス | ARPメッセージの宛先となるデバイスのIPアドレス。 |
ネットワーク通信におけるARPの役割とは?
- デバイス間の通信を可能にする:デバイスのIPアドレスとMACアドレス情報を紐づけます。これにより、LAN内のデバイス同士は互いのMACアドレスを特定して通信データ(ファイル、Web通信、電子メールなど)をやり取りできるようになります。
- アドレスの競合を特定する:ARPキャッシュを使って、複数のデバイスが同じIPアドレスまたはMACアドレスを使用していないかどうかを確認できます。競合(重複)がある場合、データが正しいデバイスに届かなくなる可能性があります。
- 不要なトラフィックを削減する:デバイスのIPとMACアドレスの対応関係をARPキャッシュに保存します。これにより、デバイスはIPアドレスとMACアドレスの情報を毎回ブロードキャスト(一斉配信)する必要がなくなるため、LANでの動作が効率化されます。
- ネットワーク問題のトラブルシューティングを支援:IT管理者は、ARPトラフィックを監視することで接続の問題を特定できます。例えば、ARP応答の欠落、IPとMACアドレスの割り当て重複(競合)、または大量のARPリクエストの有無を確認できます。
- セキュリティ監視をサポート:ネットワーク管理者は、ツールを使用してARPトラフィックを監視し、サイバー攻撃の兆候となる不審なパターン(ARPスプーフィングなど)を検出できます。
ARPにはどのような種類があるのか?

ARPには主に4つの種類があります。
- プロキシARP:プロキシ(ルーターなど)が、別のデバイスに代わってARPリクエストに代理応答する仕組みです。プロキシは自身のMACアドレスを返信し、送信者から受け取ったデータを宛先へ転送します。これにより、ネットワーク内のサブネット間でのデバイス通信が可能になります。
- GARP(Gratuitous ARP):他のデバイスからの要求(リクエスト)なしに、デバイス自身がネットワーク上でIPアドレスとMACアドレスのマッピング(ひも付け)を一斉配信する仕組みです。ITチームは、この種のARPを活用してIPアドレスの競合(重複)を検出したり、ネットワークデバイスにARPキャッシュの更新を指示することができます。
- InARP(Inverse ARP):あるデバイスが別のデバイスのMACアドレスは知っているが、IPアドレスは知らないというARPの逆の状況で使用されます。よって、ARPリクエストを一斉配信する際は、送信側は受信側のIPアドレスを要求します。
- RARP(Reverse ARP):これは古いプロトコルで、ディスクレスワークステーションなどのデバイスが自身のMACアドレスを元に自身のIPアドレスの割り当てを要求するものです。RARPは昔のネットワーク環境で使われていましたが、現代のネットワークではDHCPによってIPアドレスが自動で割り当てられるため、現在では廃止されています。
ARPスプーフィングとは?
ARPスプーフィング(ARPポイズニングとも呼ばれます)はサイバー攻撃の一種であり、攻撃者がARPリクエストに偽の応答の送信する、またはGARP(Gratuitous ARP)を悪用して偽のARP応答を送信します。その結果、デバイスのIPアドレスが攻撃者のMACアドレスに紐づけられてしまいます。これにより、本来受信すべきデバイスではなく、攻撃者のデバイスにデータが送信されてしまいます。
ARPスプーフィングは、悪意のある攻撃者がネットワークに接続した場合、セキュリティ対策が不十分なWi-Fiネットワークにデバイスを接続した場合、あるいはマルウェアがネットワークデバイスを侵害した場合に発生する可能性があります。
ARPスプーフィングが発生すると、以下のようなサイバー攻撃にも発展する恐れがあります。
- 中間者攻撃:中間者攻撃(MITM)攻撃は、サイバー犯罪者が通信機器間で通信し合うデータを傍受したり改ざんする攻撃です。
- セッションハイジャック:Webサイト・サービスにログイン中のユーザーのセッション識別子(セッションクッキーなど)を攻撃者が盗んで、ユーザーになりすます脅威です。最近のHTTPSサイトはセッションハイジャックのリスクを低減できますが、暗号化が施されていないサイトだとリスクは高くなります。
- DoS攻撃:DoS(サービス拒否)攻撃は、大量のトラフィックを送信してデバイスやネットワークの機能を妨害する攻撃です。攻撃者が大量の偽のARPリクエストを送信して、ローカルネットワークのリソースを過負荷状態に陥らせる可能性があります。
ARPスプーフィングを検出する方法
以下の手順で、デバイスのARPキャッシュを確認しましょう。
- Windowsでは「コマンドプロンプト」、macOSおよびLinuxでは「ターミナル」から、デバイスのコマンドラインインターフェース(CLI)を開きます。

- コマンドラインアプリに「arp -a」と入力し、Enterキーを押します。Windows、macOS、Linuxはいずれもarp -aコマンドをサポートしているため、どのシステムでも同じように動作します。

- IPアドレスとMACアドレスの対応関係(マッピング)が表示されるはずです。1つのMACアドレスに対して複数のIPアドレスが割り当てられている場合は、ARPスプーフィングやポイズニングである可能性があります。

但し、大規模または複雑なネットワークでは、プロキシサーバー、複数のIPアドレスを持つルーター、ロードバランサーなど、一つのMACアドレスに複数のIPアドレスが割り当てられるのが一般的です。この構成は、ネットワークトラフィックをより効率的に管理するためです。このような場合、ARPキャッシュを手動で確認するだけでは不十分であるため、企業などでは、Wiresharkなどの専用のネットワーク分析ツールを使用してARPスプーフィングを検出しています。
ARPスプーフィングの防止対策
- 静的ARPエントリを使用する:IPアドレスとMACアドレスの対応関係を手動で設定することで、ARPスプーフィングのリスクを低減します。静的ARPエントリでは対応関係が固定されるため、攻撃者はこの関係をそう簡単には変更できません。ただし、手動設定なので大規模なネットワークではこの方法は現実的ではありません(更に、変更があるたびにエントリを手動で更新する必要があります)。
- ARPキャッシュのタイムアウト時間を短縮する:デバイスがIPとMACアドレスの対応関係を保持する期間を短縮することで、ARPポイズニングのリスクを低減できます。ただし、これによりARPトラフィックが増加し、ネットワークの効率が低下する可能性があります。
- ネットワークをセグメント化する:ルーターやファイアウォールを使用して、ネットワークを小さなセクションに分割します。ARPスプーフィングを完全に防ぐことはできませんが、拡散範囲を狭めることは可能です。
- ネットワークトラフィックの監視:Wiresharkなどのツールを使用して、ネットワークトラフィックをスキャンし、異常なARPリクエストや応答、ARPキャッシュへの不正な変更といった不審な動きを検出できます。
- スイッチポートへのアクセス制限:各ネットワークスイッチのポートに接続できるデバイスの数などを制限することで、不正ユーザーによるネットワークアクセスの防止対策となります。
- DAI(ダイナミックARPインスペクション)を有効にする:これはセキュリティ機能の一つで、ARPスプーフィングやポイズニングから防御します。企業向けに設計されたほとんどのネットワークスイッチはこの機能を搭載していますが、有効化および設定を行う必要があります。
- 不正なネットワークアクセスの防止対策:ネットワークの暗号化の有効化、ファイアウォールやウイルス対策ソフトの使用、未使用のネットワークポートやサービスの無効化、強固なログイン要件の設定、ソフトウェアの最新状態の維持などで、LANに不正アクセスされるリスクを低減します。
公共Wi-Fi利用時にARPスプーフィングが心配な場合は、VPNがおすすめです。VPNを使うとインターネット通信が暗号化されるので、たとえあなたのデバイスがARPスプーフィング攻撃の標的になったとしても、通信データが読み取られることはありません。VPNはマルウェアの注入やその他の種類の攻撃を阻止することはできませんが、セキュリティ対策が不十分なネットワーク上でデータが漏洩するのを防ぐことはできます。CyberGhost VPNは、100か国に展開する高速サーバーや高度なセキュリティ機能を提供しているほか、長期契約の場合は45日間の返金保証も付いています。
ARP、DHCP、DNSの違いとは
| プロトコル | 正式名称 | ネットワークの種類 | 機能 | 必要な理由 |
| ARP | Address Resolution Protocol(アドレス解決プロトコル) | ローカルネットワーク(LAN) | デバイスのIPアドレスとMACアドレスを紐付ける | 同じネットワーク内のデバイス同士がデータをやり取りできるようにする |
| DHCP | Dynamic Host Configuration Protocol(動的ホスト構成プロトコル) | ローカルネットワーク(LAN) | IPアドレスやDNSサーバー情報などの設定情報をデバイスに割り当てる | 手動設定なしでデバイスがネットワークに簡単に参加できるようにする |
| DNS | Domain Name System(ドメインネームシステム) | ローカルネットワークおよび広域ネットワーク(LAN/WAN) | ウェブサイトやサーバー名をIPアドレスに変換する | デバイスやアプリがWebサイトやサービス(例:netflix.com)に接続できるようにする |
【ARPのまとめ】シンプルだが不可欠なネットワークプロトコル
一見すると、ARPプロトコルは「デバイスのIPアドレスとMACアドレス情報を紐づける」という基本的な役割しかないように見えます。しかし、このプロセスはデバイス同士が通信してデータをやり取りするのに不可欠であるため、ネットワークチェーンにおいて極めて重要な存在です。ARPは、この特性ゆえにサイバー犯罪者の標的にもなりやすいです。ネットワークの安全を確保するためにも、ARPの仕組みをよく理解して、潜在的な脆弱性を常に監視するようにしましょう。
よくある質問
ARPとは何ですか?また、ネットワークにおける重要性とは?
ARP(アドレス解決プロトコル)はネットワークプロトコルで、LAN内のデバイスのIPアドレスとハードウェアアドレス情報を紐づける役割を担っています。ARPは、LAN内のデバイス同士が通信してデータをやり取りするための通信規約(プロトコル)であるため、ネットワークにおいて不可欠な存在です。
ローカルネットワークにおけるARPプロトコルの役割とは?
ARP(Address Resolution Protocol)は、同じローカルネットワーク内のデバイス同士でデータをやり取りできるようにします。ARPは、データを受信する側のデバイスのIPアドレスを元にMACアドレス(ハードウェアアドレス)を特定(解決)することで、送信デバイスが受信デバイスのMACアドレス情報を取得して、データを送信できるようにします。
コンピュータネットワークにおけるARPの意味は?
ARPは「Address Resolution Protocol(アドレス解決プロトコル)」の略で、ネットワークにおいて不可欠な存在です。デバイスのIPアドレス情報を元にそのMAC(Media Access Control)アドレスを特定(解決)するプロトコルで、ローカルネットワーク内のデバイス同士が互いにデータをやり取りできるようにします。
ARPプロトコルの主な機能とは?
ARP(Address Resolution Protocol)の主な機能は、ローカルネットワーク内のデバイス同士が互いにデータをやり取りできるようにすることです。ARPは、データを受信する側のデバイスのIPアドレス情報から「MACアドレス」と呼ばれるハードウェアアドレスを特定して、送信デバイスが受信デバイスにデータを送信できるようにします。また、ARPは不要なネットワークトラフィックを削減したり、IPチームが接続の問題をトラブルシューティングする際にも役立ちます。
ARPは、IPv4アドレスからどのようにMACアドレスを特定するのですか?
ARP(Address Resolution Protocol)は、ローカルネットワーク内のデバイスのIPv4アドレスとMACアドレスを紐づける役割を持ちます。ネットワーク内の通信デバイスは他のデバイスのIPアドレス(IPv4アドレス)は知っていても、そのMACアドレスを知らない場合があります。デバイス同士でデータをやり取りする必要がある場合、送信側のデバイスはARP(アドレス解決プロトコル)を使用して、受信デバイスのMACアドレスをIPv4アドレス情報をもとに特定(解決)します。その後、その情報を一時的に保存してデバイス同士での通信を開始します。
ARPは、データ伝送においてどのような役割がありますか?
ARPは、同じローカルネットワーク内のデバイス同士がデータをやり取りできるようにするものです。ARPは、デバイスのIPアドレスとMAC(メディアアクセス制御)アドレスを紐づけ(マッピング)する役割を担います。例えば、デバイスAがデバイスBにデータを送信したい場合、デバイスBのMACアドレスを知る必要があります。デバイスAはARPを使用してデバイスBのマッピングを確認し、MACアドレスを特定したらその情報を一時的に保存して、デバイスBへデータを送信することができます。
ARPは今でも使われていますか?
はい。ARPは今日のコンピュータネットワークにおいて一般的に使用されています。ARPはローカルネットワークに接続されている通信デバイス同士がお互いのハードウェアアドレス(MACアドレス)を特定できるようにする役割があるため、ネットワークに不可欠なプロトコルです。ARPがなければ、デバイスは通信相手のデバイスのハードウェアアドレスを特定できず、通信が出来なくなってしまいます。
コメントを残す