検索
連載

MACアドレスを調査するには? arpコマンドネットワーク管理の基本Tips

IPアドレスとMACアドレスをひも付けるARPテーブルを操作するにはarpコマンドを用います。物理的なネットワーク機器を特定する際などに利用するコマンドです。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

バックナンバー

連載バックナンバー

 イーサネットで構成するネットワーク上での物理的な通信には、IPアドレスではなく「MACアドレス」と呼ばれるハードウェアアドレスが利用されます。その時、IPアドレスとMACアドレスの対応を調べる処理に利用されるのが、IPアドレスとMACアドレスの対応表「ARP(Address Resolution Protocol)テーブル」です。arpコマンドは、そのARPテーブルの内容を表示/管理する目的で利用されます。

arpコマンドの書式

arp [オプション] [ホスト名またはIPアドレス]

※[ ]は省略可能な引数を示しています



概要

 IPアドレスとMACアドレスの対応表「ARP(Address Resolution Protocol)テーブル」(ARPキャッシュ)の表示や設定に利用するコマンドです。通常ARPテーブルの維持/管理はシステムが自動的に行いますが、ホストの登録/削除を手動で行うことも可能です。なお、エントリを手動で追加/削除する場合は管理者権限が必要です。

 ARPキャッシュには、いちど通信したホストのIPアドレスとハードウェアアドレス(MACアドレス)が1対で保存されます。2回目以降の通信ではこのARPキャッシュが参照され、一致するIPアドレスがあれば対応するMACアドレスを用いて通信することで、無駄なトラフィックの発生を防いでいます。ARPキャッシュの情報は一定時間経つと自動更新され、つねに最新のIPアドレスとMACアドレスの対応表が保たれています。

主なオプション

オプション 意味
-a 指定したホストのARPテーブルを表示する
-d 指定したホストのARPテーブルを削除する
-f 指定したファイルにあるアドレス情報をもとにマッピングエントリを設定する
-i インターフェース(NIC)を指定する
-n ホストやユーザーの名前解決を行わず数字のまま出力する
-s ARPアドレスのマッピングエントリを手作業で設定する
-v 詳細な情報を表示する

現在のARPテーブルを表示するには?

 arpコマンドをオプションなしで実行すると、現在キャッシュされているARPテーブルの内容全てが表示されます。ARPテーブルの維持/管理はシステムが自動的に行うため、ここに表示されない同一ネットワーク上のホストも、新たに通信を行えば(ex. ping 192.168.X.X)自動的に追加されます。

$ arp
Address         HWtype  HWaddress           Flags Mask  Iface
192.168.12.6    ether   b8:e8:56:ff:ff:ff   C           eth0
192.168.12.2    ether   00:61:71:ff:ff:ff   C           eth0
router.setup    ether   00:0b:a2:ff:ff:ff   C           eth0

ARPテーブルにホストを追加するには?

 ARPリクエストに対する応答があったときには、ARPキャッシュは自動更新された上で一定時間保持されます。そのため、DHCPサーバーが設置されたネットワークなど、ノードに対するIPアドレスの割り当てが頻繁に入れ替わることがある環境では、古いARPエントリが残っていると期待どおりに通信できないことがあります。

 その場合は「-s」オプションを利用し、IPアドレスとMACアドレスを対にする形でarpコマンドを実行すると、ARPキャッシュに手動でエントリを追加できます(要管理者権限)。なお、/etc/ethersに同様のエントリを記述しておくと、システムブート時にARPエントリを自動登録できます。

$ sudo arp -s 192.168.12.25 0:d0:4b:ee:ee:ee
[sudo] password for XXXXX:   ←管理者のパスワードを入力(sudoの場合)
$ arp -a
? (192.168.12.6) at b8:e8:56:ff:ff:ff [ether] on eth0
? (192.168.12.2) at 00:61:71:ff:ff:ff [ether] on eth0
router.setup (192.168.12.1) at 00:0b:a2:ff:ff:ff [ether] on eth0
? (192.168.12.25) at 00:d0:4b:ee:ee:ee [ether] PERM on eth0

「ネットワーク管理の基本Tips」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る