(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「arpの詳しい使い方が知りたい」
「arpコマンドって何ができるの?」
「arpを使ったいろいろな実例が見てみたい」
✔当記事を通じてお伝えすること
- arpコマンドの基本・使い方
- arpキャッシュの管理方法
- arpコマンドの実例
当記事では、arpコマンドの基本的な使い方はもちろん、arpコマンドを実際に使う場面や実例についても詳しく解説しています。
ぜひ最後までご覧ください。
arpコマンドについての基礎知識
arpコマンドについて知っておくべきことをご紹介します。
使いこなせるようになるには、まず基本から。
- ARPコマンドとは何か
- ARPの役割と目的
- ARPの仕組みとプロセス
ARPコマンドとは何か
ARPコマンドは、Address Resolution Protocol(ARP)を使用して、IPアドレスと対応するMACアドレスを管理するためのコマンド。
ARPとは、IPアドレスをMACアドレスに変換するためのプロトコルで、ネットワーク上のデバイス間の通信に不可欠です。
IPアドレスとは、192.168.11.1など住所のようなもの。
Macアドレスは、コンピューターを識別する番号です。
IPアドレスについて詳しく知りたい方はこちら。
ARPの役割と目的
ARPの主な役割は、IPアドレスを物理的なMACアドレスに変換すること。
同じネットワーク上のデバイス間でデータを正確に送受信できるようになるのです。
ARPは、デバイスがネットワーク上で通信するために必要な情報を提供します。
ARPの仕組みとプロセス
ARPプロセスは、次の手順で行われます。
- ARPリクエストのブロードキャスト
- 自身のIPアドレスを確認
- レスポンスを返す
- MacアドレスをARPキャッシュへ保存
ARPリクエストのブロードキャスト
送信元デバイスが宛先IPアドレスを持っているが、対応するMACアドレスが不明な場合、ARPリクエストをブロードキャストします。
ブロードキャストとは、複数のデバイスへ通信を一斉送信すること。
自身のIPアドレスを確認
ネットワーク上のすべてのデバイスがARPリクエストを受信します。
受信したリクエストに含まれている宛先IPアドレスが、自分のIPアドレスと一致するかどうかを確認します。
レスポンスを返す
IPアドレスが一致するデバイスが見つかった場合、そのデバイスはARPレスポンスを送信元デバイスにユニキャストで返します。
ユニキャストとは、単一のデバイスとのデータ通信のこと。
MacアドレスをARPキャッシュへ保存
送信元デバイスは、受信したARPレスポンスから宛先デバイスのMACアドレスを取得し、ARPキャッシュに保存します。
ARPコマンドの基本的な使い方
ARPコマンドの使い方を見ていきます。
概要がわかったら早速使ってみましょう。
- コマンドプロンプト/ターミナルの開き方
- ARPコマンドの基本構文
- よく使われるオプション
- 実際の使用例
コマンドプロンプト/ターミナルの開き方
各OSでの使用環境は以下のように立ち上げます。
- Windows:[スタート] メニュー > [コマンドプロンプト]
- MacおよびLinux:[アプリケーション] または [システム] メニュー > [ターミナル]
ARPコマンドの基本構文
ARPコマンドの基本構文は以下の通りです。
arp [オプション] [パラメータ]
オプションとパラメータは、実行したい操作に応じて選択します。
よく使われるオプション
よく使われるオプションを3つご紹介します。
- arp -a
- arp -d
- arp -s
arp -a
このオプションは、ARPキャッシュ内のすべてのエントリを表示します。
コマンドは以下の通りです。
arp -a
arp -d
このオプションは、ARPキャッシュから指定したエントリを削除します。
コマンドはこちら。
arp -d IPアドレス
arp -s
このオプションは、ARPキャッシュに新しいエントリを追加します。
コマンドは以下の通り。
arp -s IPアドレス MACアドレス
実際の使用例
ARPキャッシュ内のエントリを表示するには、以下のコマンドを実行します。
arp -a
IPアドレスの指定などはありません。
指定したIPアドレスのエントリを削除するには、以下のコマンドを実行します(例: 192.168.1.1)。
arp -d 192.168.1.1
指定したIPアドレスとMACアドレスのエントリを追加するには、以下のコマンドを実行します。
例: IPアドレス 192.168.1.1、MACアドレス 00-11-22-33-44-55
arp -s 192.168.1.1 00-11-22-33-44-55
ARPのオプション一覧表
オプションを一覧にまとめました。
オプションは上記以外にもあるからです。
オプション名 | 説明 | 実例 |
---|---|---|
-a | ARPキャッシュ内のすべてのエントリを表示する | arp -a |
-d | ARPキャッシュから指定したエントリを削除する | arp -d 192.168.1.1 |
-s | ARPキャッシュに新しいエントリを追加する | arp -s 192.168.1.1 00-11-22-33-44-55 |
-g | -a オプションと同じ(すべてのエントリを表示) | arp -g |
-N | 指定したインターフェイスに関連するエントリのみを表示する | arp -N eth0 |
-t | ターゲットとのARPリクエストを送信する | arp -t 192.168.1.2 |
-i | 指定したインターフェースを使用してARPコマンドを実行する | arp -i eth1 -s 192.168.1.1 00-11-22-33-44-55 |
-n | アドレスの解決をせずに表示する | arp -an |
-v | 詳細な情報を表示する | arp -v -a |
-e | 一部のLinuxディストリビューションで -a と同じ(すべてのエントリを表示) | arp -e |
-H | ARPハードウェアタイプを指定する | arp -H ether |
-p | 指定したプロトコルアドレスに関連するエントリのみを表示する | arp -p 192.168.1.1 |
ARPキャッシュの管理方法
ARPキャッシュの管理方法を見ていきます。
ARPコマンドを使いこなすには、ARPキャッシュについて理解を深めなければなりません。
- ARPキャッシュとは何か
- ARPキャッシュの表示方法
- ARPキャッシュの削除と追加方法
- ARPキャッシュの更新と有効期限
ARPキャッシュとは何か
ARPキャッシュは、一時的にIPアドレスと対応するMACアドレスの情報を保存するためのテーブル。
同じデバイスとの通信が繰り返し行われる場合に、ARPプロセスを毎回実行しなくても済むようになっているのです。
ARPコマンドを実施すると、まずはARPキャッシュの情報を探します。
見つからなかった場合のみ、すべてのデバイスへリクエストをブロードキャストするという仕組みです。
ARPキャッシュの表示方法
ARPキャッシュのエントリを表示するには、次のコマンドを実行します。
arp -a
ARPキャッシュの削除と追加方法
ARPキャッシュからエントリを削除するには、「arp -d」オプションを使用し、新しいエントリを追加するには、「arp -s」オプションを使用します。
オプションを使うことで、デフォルトとは違う指示を与えられます。
ARPキャッシュの更新と有効期限
ARPキャッシュのエントリは、一定期間経過すると自動的に削除されます。
知っておくべきことは以下のとおり。
- 削除期間:各オペレーティングシステムによって異なる
- エントリが期限切れになる前に通信をすると、エントリの有効期限は更新される
ARPキャッシュは動的に更新されるため、常に最新の情報が保持されます。
ARPコマンドの応用
ARPコマンドの応用した使い方を見ていきます。
ここまで理解できた方であれば、問題なく理解できるはず。
- ネットワークのトラブルシューティング
- ネットワークデバイスの監視
- セキュリティ対策
ネットワークのトラブルシューティング
ARPコマンドは、ネットワーク上のデバイスとの通信が正常におこなわれているかを確認するために使用できます。
ARPキャッシュを表示して、IPアドレスとMACアドレスの対応が正しいか確認することで、ネットワーク上の問題を特定できるのです。
$ arp -a
Interface: 192.168.1.100 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-11-22-33-44-55 dynamic
192.168.1.102 00-aa-bb-cc-dd-ee dynamic
192.168.1.103 00-ff-aa-00-bb-cc dynamic
もし不審なMACアドレスが見つかった場合や、正しいはずのデバイスが表示されない場合は、ネットワーク上の問題が存在する可能性があります。
ネットワークデバイスの監視
ARPコマンドを定期的に実行して、ARPキャッシュの内容を監視します。
ネットワーク上に新しく接続されたデバイスや不審な通信を検出するためです。
もし不審なデバイスや通信が検出された場合、ネットワーク上のセキュリティ対策を見直すことが必要です。
- ネットワークアクセス制御(NAC)を導入し、特定のデバイスのみがネットワークにアクセスできるようにする
- 侵入検出システム(IDS)や侵入防止システム(IPS)を使用し、不正なアクセスや攻撃を検出・防御する
セキュリティ対策
ARPコマンドを使用して、不正なMACアドレスを持つデバイスがネットワークに接続されていないか確認できます。
ARPスプーフィング攻撃を検出し、対策を講じることも可能です。
例えば、正しいはずのゲートウェイのIPアドレスに対して、異なるMACアドレスが割り当てられている場合、ARPスプーフィング攻撃の可能性を疑いましょう。
できる対策としては以下のとおり。
- ARPスプーフィング攻撃を検出・防御するための専用ツール(例:Arpwatch、XArp)を導入
- ネットワークスイッチに対して、動的ARPインスペクション(DAI)を有効にしh、不正なARPパケットをフィルタリングする
- スタティックARPエントリを設定し、信頼できるデバイスのIPアドレスとMACアドレスの関係を固定化する
ARPスプーフィング攻撃と対策
ARPスプーフィング攻撃への対策を理解しましょう。
ARPを使いこなすのであれば、必須の知識です。
- ARPスプーフィング攻撃とは何か
- ARPスプーフィング攻撃の典型的な手法
- ARPスプーフィング攻撃を防ぐための対策
ARPスプーフィング攻撃とは何か
ARPスプーフィング攻撃は、攻撃者が不正なARPレスポンスを送信して、正当なデバイスのIPアドレスとMACアドレスの対応関係を書き換えること。
通信を傍受したり、通信を遮断したりするのが目的です。
ARPスプーフィング攻撃の典型的な手法
ARPスプーフィング攻撃の典型的な手法は、攻撃者がネットワーク上のデバイスに対して偽のARPレスポンスを送信し、そのデバイスのARPキャッシュを書き換えることです。
手順例を以下に示します。
- 攻撃者はネットワーク上のデバイス(例:ターゲットPC)とゲートウェイ(例:ルータ)のIPアドレスとMACアドレスを調べる
- 攻撃者はターゲットPCに対して、偽のARPレスポンスを送信(ゲートウェイのIPアドレスと、攻撃者のデバイスのMACアドレスが含む)し、、通信が攻撃者のデバイスを経由する
- 攻撃者はゲートウェイに対しても偽のARPレスポンスを送信(ターゲットPCのIPアドレスと、攻撃者のデバイスのMACアドレスを含む)し、攻撃者のデバイスを経由
- 攻撃者はターゲットPCとゲートウェイ間の通信を傍受・改ざんし、ネットワーク全体を傍受・制御する
ARPスプーフィング攻撃を防ぐための対策
ARPスプーフィング攻撃に対する対策は以下の通りです。
- スタティックARP: 信頼できるデバイスのIPアドレスとMACアドレスの対応関係を手動で設定
- ネットワークセグメンテーション: ネットワークを複数のセグメントに分割
- 仮想LAN(VLAN)の使用: VLANを使用して、ネットワーク上のデバイスを論理的に分離し、ARPスプーフィング攻撃の影響範囲を制限
- セキュリティ対策を施したスイッチの使用: 力を持つスイッチを使用して、ARPスプーフィング攻撃を検出し、不正な通信をブロック
よくある質問と回答
ARPコマンドについて、よくある質問をまとめました。
理解しておけば、トラブル時にも解決が早まるでしょう。
- ARPとRARPの違いは何ですか?
- ARPテーブルとARPキャッシュの違いは何ですか?
- ARPリクエストが多いと何が起こるのですか?
ARPとRARPの違いは何ですか?
RARP(Reverse Address Resolution Protocol)は、MACアドレスからIPアドレスを取得するためのプロトコルです。
ただし現在では、RARPの機能はDHCPやBOOTPに取って代わられており、あまり使用されません。
なぜならRARPは基本的なIPアドレス割り当ての機能しか提供しておらず、DHCPやBOOTPは、RARPよりも機能が豊富であり、以下のようなメリットがあるからです。
- IPアドレスの自動割り当て: DHCPは、自動的にIPアドレスを割り当てられる
- その他のネットワーク設定の配布: DHCPやBOOTPは、IPアドレスだけでなく、サブネットマスク、デフォルトゲートウェイ、DNSサーバーアドレスなど、その他のネットワーク設定もデバイスに配布できる
- IPアドレスのリース管理: DHCPは、IPアドレスのリース期間を管理でき、IPアドレスの再利用ができる
ARPテーブルとARPキャッシュの違いは何ですか?
ARPテーブルとARPキャッシュは、どちらもIPアドレスとMACアドレスの対応関係を保存するためのテーブルのこと。
一般的には以下のように説明されます。
- ARPキャッシュ:一時的なエントリを保存
- ARPテーブル:永続的なエントリを保存
ARPリクエストが多いと何が起こるのですか?
ARPリクエストが多いと、ネットワーク上のトラフィックが増加し、通信が遅延する可能性があります。
大量のARPリクエストが送信されることは、ARPスプーフィング攻撃の兆候とも考えれるでしょう。
ARPリクエストの数を適切に管理し、ネットワークのセキュリティ対策を講じることが重要です。
今後の学習のためのリソース
この記事では、ARPコマンドの基本的な概念や使い方を紹介しましたが、さらに詳しく学びたい場合は、以下のリソースを参照してください。
オペレーティングシステムの公式ドキュメント
各オペレーティングシステムの公式ドキュメントでは、ARPコマンドに関する詳細な情報や最新の機能が提供されています。
ネットワーク管理に関する書籍やオンラインコース
ネットワーク管理の専門書やオンラインコースでは、ARPコマンドを含むさまざまなネットワーク管理ツールの使い方や応用が学べます。
オンラインフォーラムやコミュニティ
ネットワーク管理に関するオンラインフォーラムやコミュニティでは、ARPコマンドに関する質問や疑問を他のユーザーと共有できます。
まとめ
ARPコマンドは、ネットワーク上のデバイス間の通信を効率化するために重要な役割を果たします。
ARPキャッシュの管理やネットワークのトラブルシューティング、セキュリティ対策においても役立ちます。
ARPコマンドを理解し、適切に使用することで、ネットワーク管理が容易になるでしょう。