Categories: linux

LinuxでARPテーブルを確認する方法!arpコマンドの使い方を解説

ネットワークトラブルの調査やIPアドレスとMACアドレスの対応関係を知りたいときに役立つのが「ARPテーブル」です。Linuxでは、この情報を簡単に確認できる「arp」コマンドがあります。本記事では、ARPテーブルの概要と「arp」コマンドの使い方、さらに関連するコマンドについてもわかりやすく解説します。ネットワーク初心者の方でも理解できるように丁寧に説明しますので、ぜひ参考にしてください。


ARPとは?仕組みを簡単に解説

ARP(Address Resolution Protocol)は、IPアドレスとMACアドレスを対応づけるための通信プロトコルです。ネットワーク機器がローカルネットワーク内で他の機器にデータを送信する際、宛先のMACアドレスが必要になります。IPアドレスからMACアドレスを割り出すために使用されるのがARPです。

具体的には、以下のような流れでARPが機能します。

  1. 送信元が宛先のIPアドレスを知っているがMACアドレスがわからない。
  2. ネットワーク上に「このIPアドレスのMACアドレスは誰ですか?」というARPリクエストをブロードキャスト。
  3. 対応するIPアドレスを持つ機器が自分のMACアドレスを返信(ARPリプライ)。
  4. 送信元はARPテーブルにこの情報を一時的に記録。

このようにして、同一ネットワーク内の通信がスムーズに行えるようになります。


LinuxでARPテーブルを表示するには?基本のarpコマンド

Linux環境でARPテーブルを表示したい場合、基本的には以下のコマンドを使用します。

arp -a

このコマンドを実行すると、現在のARPテーブルに記録されているIPアドレスと、それに対応するMACアドレスの一覧が表示されます。

出力例:

? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0
? (192.168.1.20) at 66:77:88:99:AA:BB [ether] on eth0

表示される内容は以下の通りです。

  • IPアドレス(192.168.1.1 など)
  • MACアドレス(00:11:22:33:44:55 など)
  • ネットワークインターフェース(eth0 など)

この情報をもとに、どのIPアドレスがどのMACアドレスと対応しているのか確認できます。


arpコマンドのオプション解説

arpコマンドにはいくつかのオプションがあり、目的に応じて使い分けが可能です。

オプション説明
-a全エントリを表示
-nホスト名の解決を行わずにIPアドレスをそのまま表示
-d <IP>特定のエントリを削除
-s <IP> <MAC>新しいARPエントリを手動で追加

例:エントリの削除

sudo arp -d 192.168.1.20

このコマンドで、指定したIPアドレスのエントリをARPテーブルから削除できます。

例:エントリの手動追加

sudo arp -s 192.168.1.30 00:aa:bb:cc:dd:ee

このように手動でエントリを追加することも可能です。ただし、再起動などで消えてしまう一時的な設定です。


ip neighborコマンドでもARPテーブルを確認できる

最近のLinuxディストリビューションでは、「ip neighbor」コマンド(ip nと省略可)が推奨されています。これはiproute2パッケージに含まれており、より詳細かつ柔軟な操作が可能です。

ip neighbor show

出力例:

192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
192.168.1.20 dev eth0 lladdr 66:77:88:99:AA:BB STALE

この出力では以下の情報が得られます:

  • IPアドレス
  • 使用しているインターフェース
  • MACアドレス(lladdr)
  • 状態(REACHABLE, STALE, DELAYなど)

ARPエントリの状態まで確認できる点が、arp -aよりも優れています。


ARPテーブルの活用シーンとは?

ARPテーブルは以下のような場面で役立ちます。

ネットワークトラブルの原因調査

例えば、ある機器がネットワークに接続できない場合、ARPテーブルを確認してMACアドレスが正しいかどうか調べることができます。また、ARPエントリが「INCOMPLETE」になっていれば通信が届いていない可能性があるとわかります。

不正アクセスやMACアドレスの確認

ネットワークに接続してきた不明な機器を特定する際、ARPテーブルに記録されたMACアドレスをもとに、機器の製造元や管理状況を確認できます。


よくあるトラブルと対処法

ARPテーブルにIPアドレスがない

原因としては、まだ通信が発生していないためARPリクエストが飛んでいないことが考えられます。この場合は、対象機器にpingを送ってみると良いです。

ping 192.168.1.20

通信が成功すればARPテーブルにエントリが追加されるはずです。

古いエントリが残っている

ARPテーブルの情報は一定時間で更新されますが、時には古い情報が残ってしまうこともあります。この場合は手動で削除するか、ネットワークインターフェースを再起動するとよいでしょう。


arpコマンドが使えない?代替方法と確認ポイント

最近のLinux環境では、arpコマンドがインストールされていないケースがあります。その場合は以下の方法で対応します。

ip neighborを使う

前述のように、ip neighbor showでほぼ同様の情報が得られます。

net-toolsパッケージのインストール

古い形式のarpコマンドを使いたい場合は、以下のようにパッケージをインストールします。

sudo apt install net-tools

またはRedHat系であれば、

sudo yum install net-tools

これでarpifconfigなどが使えるようになります。


まとめ:ARPテーブルを確認してネットワークの見える化をしよう

ARPテーブルは、ネットワーク上の機器同士が正しく通信できているかを確認する重要な情報源です。Linuxでは「arp」や「ip neighbor」コマンドを使うことで簡単に確認できます。

ネットワークトラブルが発生したときや、見慣れない端末が接続されていないかチェックしたいときに、ぜひ本記事で紹介した方法を役立ててください。コマンドラインの操作に慣れることで、トラブルシューティングの力がぐっと向上します。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。