Windows/Linux arpコマンド:基本操作とオプション一覧 – 徹底解説
ARP (Address Resolution Protocol) コマンドは、ネットワーク管理において、IPアドレスとMACアドレスの対応付けを理解し、管理するために不可欠なツールです。本記事では、WindowsとLinuxにおける arp
コマンドの詳細な操作とオプションを網羅的に解説し、実際の使用例を交えながら、ネットワークのトラブルシューティングやセキュリティ対策に役立つ知識を提供します。
1. ARPとは? – ARPの基本概念
ARP (Address Resolution Protocol) は、ネットワーク層 (IP) のアドレスをデータリンク層 (MAC) のアドレスに解決するためのプロトコルです。簡単に言うと、あるIPアドレスを持つデバイスのMACアドレスを知りたいときに使用します。
1.1. ARPの役割
- IPアドレスからMACアドレスへの解決: LAN環境において、デバイスはIPアドレスを使って通信しますが、実際にデータを送信するためにはMACアドレスが必要です。ARPは、IPアドレスに対応するMACアドレスを見つけ出す役割を担います。
- 同一LAN内の通信: ARPは、同一LANセグメント内のデバイス間の通信に必要です。異なるネットワーク間との通信は、ルーターがルーティングテーブルに基づいて処理を行います。
- 動的なアドレス解決: ARPは、静的な設定だけでなく、動的にアドレスを解決します。これは、DHCPなどでIPアドレスが割り当てられる環境で特に重要になります。
1.2. ARPの動作原理
- ARPリクエスト (ARP Request): デバイスAがデバイスBのMACアドレスを知りたいとき、まず、ARPリクエストをブロードキャスト (LAN内の全てのデバイスに送信) します。このリクエストには、デバイスAのIPアドレスとMACアドレス、およびデバイスBのIPアドレスが含まれています。
- ARPリプライ (ARP Reply): ARPリクエストを受け取ったデバイスの中で、デバイスB (ターゲットIPアドレスと一致するデバイス) は、自身のMACアドレスを含むARPリプライをデバイスAにユニキャスト (デバイスAのみに送信) で返信します。
- ARPキャッシュへの保存: デバイスAは、受け取ったMACアドレスとIPアドレスの対応をARPキャッシュに保存します。以降、デバイスBへの通信の際には、ARPキャッシュを参照することで、ARPリクエストを送信する必要がなくなります。
1.3. ARPキャッシュとは
ARPキャッシュは、IPアドレスとMACアドレスの対応を一時的に保存する場所です。これにより、毎回ARPリクエストを送信する手間を省き、ネットワークの効率を向上させます。ARPキャッシュは一定時間保持され、古くなったエントリは削除されます。
2. Windows arpコマンド – 基本操作とオプション
Windowsの arp
コマンドは、ARPキャッシュの表示、追加、削除を行うためのコマンドラインツールです。
2.1. 基本構文
arp -a [インターフェース]
arp -g [インターフェース]
arp -d IPアドレス [インターフェース]
arp -s IPアドレス MACアドレス [インターフェース]
2.2. オプション一覧
オプション | 説明 |
---|---|
-a |
現在のARPエントリを表示します。インターフェースを指定しない場合は、すべてのインターフェースのARPエントリが表示されます。 |
-g |
-a と同じです。 |
-d IPアドレス |
指定されたIPアドレスのARPエントリを削除します。 |
-s IPアドレス MACアドレス |
指定されたIPアドレスとMACアドレスの対応をARPキャッシュに静的に追加します。 |
インターフェース |
ARPエントリを表示または操作するネットワークインターフェースのIPアドレスを指定します。省略すると、すべてのインターフェースが対象となります。 |
2.3. 使用例
- 現在のARPキャッシュを表示:
arp -a
このコマンドは、すべてのインターフェースのARPキャッシュを表示します。
出力例:
インターフェイス: 192.168.1.100 --- 0x2
インターネット アドレス 物理アドレス 種類
192.168.1.1 00-11-22-33-44-55 dynamic
192.168.1.10 aa-bb-cc-dd-ee-ff dynamic
インターフェイス:
は使用されているネットワークインターフェースのIPアドレスとインデックス番号を示します。-
インターネット アドレス
はIPアドレス、物理アドレス
は対応するMACアドレス、種類
はエントリが動的に学習されたものか、静的に設定されたものかを示します。dynamic
は動的に学習されたエントリ、static
は静的に設定されたエントリです。 -
特定のインターフェースのARPキャッシュを表示:
arp -a 192.168.1.100
このコマンドは、IPアドレスが192.168.1.100
のインターフェースのARPキャッシュを表示します。
- 特定のIPアドレスのARPエントリを削除:
arp -d 192.168.1.1
このコマンドは、IPアドレス192.168.1.1
のARPエントリを削除します。次にそのIPアドレスと通信する際には、再度ARPリクエストが送信されます。
- 静的なARPエントリを追加:
arp -s 192.168.1.2 00-11-22-33-44-66
このコマンドは、IPアドレス192.168.1.2
にMACアドレス00-11-22-33-44-66
を静的に関連付けます。静的なエントリは、システムが再起動されるまで有効です。セキュリティ上の理由から、静的なエントリの追加は慎重に行う必要があります。
2.4. 注意点
- Windowsでは、管理者権限でコマンドプロンプトを実行しないと、
-s
(静的なARPエントリの追加) オプションが正常に動作しない場合があります。 - 静的なARPエントリは、システムを再起動すると失われます。永続的に設定するには、ネットワークインターフェースの設定で静的なIPアドレスとMACアドレスを設定する必要があります。
3. Linux arpコマンド – 基本操作とオプション
Linuxの arp
コマンドも、ARPキャッシュの操作に使用されます。Windows版と基本的な機能は同じですが、オプションや出力形式に違いがあります。
3.1. 基本構文
arp -a
arp -n
arp -v
arp -i インターフェース
arp -d IPアドレス
arp -s IPアドレス HWアドレス
arp -Ds IPアドレス インターフェース
arp -f ファイル名
3.2. オプション一覧
オプション | 説明 |
---|---|
-a |
現在のARPエントリを表示します。 |
-n |
ホスト名をDNSで解決せずに、IPアドレスで表示します。 |
-v |
詳細な情報を表示します。 |
-i インターフェース |
指定されたインターフェースのARPエントリを表示または操作します。 |
-d IPアドレス |
指定されたIPアドレスのARPエントリを削除します。 |
-s IPアドレス HWアドレス |
指定されたIPアドレスにHWアドレス (MACアドレス) を静的に関連付けます。 |
-Ds IPアドレス インターフェース |
指定されたIPアドレスにHWアドレスをインターフェースに関連付け、それをpublishします。 |
-f ファイル名 |
ファイルからARPエントリを読み込み、追加します。 |
3.3. 使用例
- 現在のARPキャッシュを表示:
arp -a
出力例:
Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 00:11:22:33:44:55 C eth0
192.168.1.10 ether aa:bb:cc:dd:ee:ff C eth0
-
Address
はIPアドレス、HWtype
はハードウェアタイプ (通常はether)、HWaddress
は対応するMACアドレス、Flags
はフラグ (Cはキャッシュされたエントリ)、Mask
はマスク、Iface
はインターフェース名を示します。 -
ホスト名をIPアドレスで表示:
arp -an
DNSルックアップをスキップし、ホスト名をIPアドレスで表示します。ネットワークに問題がある場合、DNSが機能していない場合に有効です。
- 特定のインターフェースのARPキャッシュを表示:
arp -i eth0 -a
このコマンドは、eth0
インターフェースのARPキャッシュを表示します。
- 特定のIPアドレスのARPエントリを削除:
sudo arp -d 192.168.1.1
このコマンドは、IPアドレス192.168.1.1
のARPエントリを削除します。 Linuxでは通常、ARPエントリの削除には sudo
が必要です。
- 静的なARPエントリを追加:
sudo arp -s 192.168.1.2 00:11:22:33:44:66
このコマンドは、IPアドレス192.168.1.2
にMACアドレス00:11:22:33:44:66
を静的に関連付けます。 Linuxでは通常、静的なARPエントリの追加には sudo
が必要です。
- ファイルからARPエントリを追加:
sudo arp -f arp.conf
arp.conf
ファイルに記述されたARPエントリを追加します。ファイル形式は、IPアドレス HWアドレス
のように記述します。
例:
192.168.1.3 00:11:22:33:44:77
192.168.1.4 00:11:22:33:44:88
3.4. 注意点
- Linuxでは、
sudo
を使用して管理者権限でコマンドを実行する必要がある場合があります。特に、ARPエントリの削除や追加を行う場合は必須です。 - 静的なARPエントリは、システムの再起動後に失われます。永続的に設定するには、ネットワーク設定ファイル (例:
/etc/network/interfaces
) を編集する必要があります。具体的な方法は、使用しているLinuxディストリビューションによって異なります。
4. ARPコマンドの応用 – トラブルシューティングとセキュリティ対策
ARPコマンドは、ネットワークのトラブルシューティングやセキュリティ対策に役立ちます。
4.1. トラブルシューティング
- ネットワーク接続の問題: ARPキャッシュを確認することで、特定のデバイスのMACアドレスが正しく解決されているかを確認できます。IPアドレスとMACアドレスの対応が間違っている場合、ネットワーク接続が正常に行えません。
- IPアドレスの競合: 同じIPアドレスが複数のデバイスに割り当てられている場合、ARPキャッシュに複数のMACアドレスが表示されることがあります。これにより、ネットワークのパフォーマンスが低下したり、接続が不安定になったりします。
- ゲートウェイへの接続: デフォルトゲートウェイのMACアドレスが正しく解決されているかを確認することで、インターネットへの接続問題を切り分けることができます。
4.2. セキュリティ対策
- ARPスプーフィング対策: ARPスプーフィングは、悪意のあるユーザーが偽のARPリプライを送信し、ターゲットのトラフィックを傍受する攻撃です。静的なARPエントリを設定することで、ARPスプーフィングのリスクを軽減できますが、管理が煩雑になるため、他のセキュリティ対策 (例: ポートセキュリティ、ダイナミックARPインスペクション) と組み合わせることを推奨します。
- 不正なデバイスの検出: ARPキャッシュを定期的に監視することで、ネットワークに不正なデバイスが接続されていないかを確認できます。見慣れないMACアドレスのエントリがある場合、調査を行う必要があります。
5. ARP関連のセキュリティ対策 – ARPスプーフィングへの対策
ARPスプーフィングは、ローカルネットワーク上で中間者攻撃を可能にする攻撃手法であり、効果的な対策が必要です。
5.1. ARPスプーフィングの仕組み
攻撃者は、自身のMACアドレスをターゲットのIPアドレスに関連付ける偽のARPリプライをネットワーク上に送信します。これにより、ネットワーク内の他のデバイスは、ターゲットへのトラフィックを攻撃者に送信するようになります。攻撃者は、傍受したトラフィックを元の宛先へ転送することで、通信を盗聴したり、改ざんしたりすることができます。
5.2. 主な対策
- 静的ARPエントリ: 重要なデバイス (ゲートウェイ、サーバーなど) に対して、静的なARPエントリを設定することで、ARPスプーフィングによる改ざんを防ぐことができます。しかし、管理が煩雑になるため、大規模なネットワークには不向きです。
- ダイナミックARPインスペクション (DAI): スイッチの機能の一つで、DHCPスヌーピングデータベースに基づいて、不正なARPリプライを検出し、遮断します。DHCPを使用している環境で有効な対策です。
- ポートセキュリティ: スイッチポートに接続できるMACアドレスを制限することで、不正なデバイスの接続を防ぎます。
- 802.1X認証: ネットワークへのアクセスを認証に基づき制御することで、不正なデバイスの接続を防止します。
- ARP監視ツール: ARPキャッシュを監視し、不審なエントリを検出するツールを使用することで、ARPスプーフィングの早期発見に繋げることができます。
6. まとめ
本記事では、WindowsとLinuxにおける arp
コマンドの詳細な操作とオプションについて解説しました。ARPコマンドは、ネットワークのトラブルシューティングやセキュリティ対策に不可欠なツールです。基本的な操作を理解し、状況に応じて適切なオプションを使用することで、ネットワーク管理の効率化やセキュリティ強化に貢献できます。 特に、ARPスプーフィングのようなセキュリティリスクに対する理解を深め、適切な対策を講じることが重要です。静的なARPエントリ、ダイナミックARPインスペクション、ポートセキュリティなど、様々な対策を組み合わせて、ネットワークの安全性を高めるようにしましょう。