Linux

【おすすめ】ARPコマンドの基本から使い方まで実例付きで解説

(最終更新月: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プロセスは、次の手順で行われます。

  1. ARPリクエストのブロードキャスト
  2. 自身のIPアドレスを確認
  3. レスポンスを返す
  4. 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のオプション一覧表

オプションを一覧にまとめました。

オプションは上記以外にもあるからです。

オプション名説明実例
-aARPキャッシュ内のすべてのエントリを表示するarp -a
-dARPキャッシュから指定したエントリを削除するarp -d 192.168.1.1
-sARPキャッシュに新しいエントリを追加する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
-HARPハードウェアタイプを指定する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コマンドを含むさまざまなネットワーク管理ツールの使い方や応用が学べます。

created by Rinker
¥2,970 (2024/12/26 08:15:40時点 楽天市場調べ-詳細)

オンラインフォーラムやコミュニティ

ネットワーク管理に関するオンラインフォーラムやコミュニティでは、ARPコマンドに関する質問や疑問を他のユーザーと共有できます。

まとめ

ARPコマンドは、ネットワーク上のデバイス間の通信を効率化するために重要な役割を果たします。

ARPキャッシュの管理やネットワークのトラブルシューティング、セキュリティ対策においても役立ちます。

ARPコマンドを理解し、適切に使用することで、ネットワーク管理が容易になるでしょう。