ARPコマンドの実行の仕方4選|ARPでよく使うオプション9選なども紹介

ARPコマンドの実行の仕方4選|ARPでよく使うオプション9選なども紹介のアイキャッチイメージ

ARPとは


IPアドレスからMACアドレスを調べるために使われるアドレス解決プロトコルのことをARPといいます。正式名称をAddress Resolution Protocolといいます。

IPアドレス宛てに通信を行う場合、それを持つ機器に対応したMACアドレスを割り出す必要があります。その際、IPアドレスを元にMACアドレスを調べてくれるのがARPです。

さらに、毎回問い合わせずとも済むよう、一度取得したMACアドレスはIPアドレスと共にテーブルへ保存してくれます。

ARPの種類4選


ARPには通常のARPの他にも、Proxy-ARP、Reverse-ARP、Gratuitous-ARPといったものがあります。

ここでは、この4種類のARPについて詳しく紹介していきます。ARPについて知りたい方は、ぜひ参考にしてください。

ARPの種類:通常のARP

通常のARPは、IPアドレスを持つ機器が他のIPアドレスを持つ機器へ通信する際に、ARPリクエストをブロードキャストで送信します。

ARPリクエストとは簡単にいうと、このIPアドレスを持つ機器のMACアドレスを教えて、というような内容です。

そしてそのIPアドレスを持つ機器がARPリクエストに返信することで、MACアドレスを受け取り、通信をすることができるようになります。

ARPの種類:Proxy-ARP

Proxy-ARPは、他の機器宛てに送られたARPリクエストを受信した機器が、本来の問い合わせ先に代わって返信してくれる機能です。

昔はサブネットマスクを認識しない旧式のホストが通信を行う際にも使われていましたが、現在そういったホストはいません。

ですので、Proxy-ARPに関しては、単純にARPリクエストの代理を行ってくれる機能と思って問題ないでしょう。

ARPの種類:Reverse-ARP

Reverse-ARPは、TCP/IPネットワークでインターネット上のMACアドレスからIPアドレスの情報を求めるために使われるプロトコルです。

これは簡単にいうと、「MACアドレスはこれなのですが私のIPアドレスは何でしょうか?」といったリクエストをするものです。主にネットワーク接続をしたばかりの機器が、自身のIPアドレス設定を行うためのリクエスト機能となっています。

略称で、RARPと呼ばれています。

ARPの種類:Gratuitous-ARP

Gratuitous-ARPは、自分自身のIPアドレスに対してARPリクエストを行うという特殊なパケットです。

RARPとの違いは、他のアドレスを問い合わせているか、自分のIPアドレスを直接問い合わせているかです。自分のIPアドレスを問い合わせることで重複していないかを確認したり、ARPキャッシュをクリアして情報を更新するように知らせたりする意味合いで使われます。

略称で、GARPと呼ばれています。

ARPでよく使うオプション9選


続いて、ARPコマンドでよく使うオプション9つをご紹介します。

-d ホスト、-D、-s ホスト アドレス [pub]、-f ファイル名、-v、-n、-i インタフェース、-a [ホスト]、-H クラスについて詳しく説明していきます。

ARPコマンドのオプションについて、使い方やどういった挙動になるのかがわからない人は、こちらを参考にしてください。

ARPでよく使うオプション1:-d ホスト

-d ホストは、指定したホストを削除するオプションです。

arp -d ホスト名というコマンドを入力することで、指定したホスト名をエントリから削除することができます。また、長いオプションでいうと「–delete ホスト」で-d ホストと同じコマンドになります。

-dの使用頻度はかなり高いので、覚えておいて損のないオプションです。しっかりと頭に入れておきましょう。

ARPでよく使うオプション2:-D

-Dは、MACアドレスの代わりとして、インタフェース名を使うことができるようになるオプションです。

MACアドレスの代用としてインタフェース名を使って指定することによって、そのインタフェースのMACアドレスを使うことができるようになります。また、長いオプションでいうと「–use-device」で-Dと同じコマンドになります。

ARPでよく使うオプション3:-s ホスト アドレス [pub]

-s ホスト アドレス [pub]は、エントリを設定するためのオプションです。

イーサネットの場合だとIPアドレスからMACアドレスの順番で設定でき、そのエントリにはMフラグがつきます。それをpub指定することで公開エントリとなります。

また、長いオプションでいうと「–set ホスト アドレス[pub]」で-s ホスト アドレス [pub]と同じコマンドになります。-sもかなり使用頻度が高いため、覚えておくといいでしょう。

ARPでよく使うオプション4:-f ファイル名

-f ファイル名は、指定したファイル名のアドレス情報を利用するためのオプションです。

これにより、指定したファイルからアドレス情報を読み込むことができるようになります。その代わりに、-sオプションでエントリを指定しなければいけません。

また、長いオプションでいうと「–file ファイル名」で-f ファイル名と同じコマンドになります。

ARPでよく使うオプション5:-v

-vは、詳細情報を表示するためのオプションです。

この-vというオプションを使うことで、普段見えている内容以外にも、無効になっている情報といったような全ての情報が表示されるようになります。

情報を詳しく見たい場合には、-vオプションを上手く活用するといいでしょう。また、長いオプションでいうと「–verbose」で-vと同じコマンドになります。

ARPでよく使うオプション6:-n

-nは、ホスト名やポート番号、ユーザ名などを名前の解決をせずに、数字のまま表示するオプションです。

ホスト名やポート番号、ユーザ名などの名前を解決せず、IPアドレスやポート番号をそのまま数字として表示したいときに使うことになるオプションです。また、長いオプションでいうと「–numeric」で-nと同じコマンドになります。

ARPでよく使うオプション7:-i インタフェース

-i インタフェースは、対象としたいインタフェースを指定できるオプションです。

MACアドレスの代わりとしてインタフェース名を使って、インタフェースのMACアドレスを使う-Dとは違って、こちらは単純にインタフェースを指定するオプションとなっています。

また、長いオプションでいうと「–device インタフェース」で-i インタフェースと同じコマンドになります。

ARPでよく使うオプション8:-a [ホスト]

-a [ホスト]は、指定したホストの名前、あるいはIPアドレスのエントリを表示できるオプションです。

もしホストを指定せず、arp -aで実行した場合は、全てのホストのエントリが表示されます。-aを使う際は必要に応じてホスト名を入れるかどうか使い分けて、情報の取捨選択をすると作業が楽になります。

また、長いオプションでいうと「–display [ホスト]」で-a [ホスト]と同じコマンドになります。

ARPでよく使うオプション9:-H クラス

-H クラスは、対象とするクラスを指定するためのオプションです。

-Hのあとに、ether、arcnet、pronet、ax25、netromのいずれかを入力することで、対象とするクラスを指定することができます。指定できるものはイーサネット、ARCnet、PROnet、AX.25、NET/ROMです。

また、長いオプションでいうと「–hw-type クラス」で-H クラスと同じコマンドになります。

ARPコマンドの実行の仕方4選


続いて、ARPコマンドの実行の仕方4つについて、ご紹介します。

ここまで説明してきたようなオプションも含めて、コマンドプロンプトでARPコマンドを使ってみたい、そう思ってはみたものの、実際に使うとなると結局どうしたらいいのかわからない、という方もいらっしゃるのではないでしょうか。

そういった方は、ぜひこちらを参考にしてください。

ARPコマンドの実行の仕方1:まず「arp -a」を覚えておく

arp -aをコマンドプロンプト上で実行すると、ネットワークインタフェースごとの現在のARPテーブルが表示されます。

ARPコマンドを使う場合、何をするにしても現在のARPテーブル上の確認することが多いので、arp -aでエントリが表示されることは覚えておくと楽になります。

ARPコマンドの実行の仕方2:「arp -a」を実行する

コマンドプロンプトでarp -aを実行すると結果(ARPテーブル)が表示されます。

種類に動的と書かれている場合は、二つのアドレスの関連付けが一時的な値(キャッシュ)であることを表しています。

キャッシュを使わないと通信するたびに関連付けしてしまうため、基本的に一度調べたアドレスの関連付けは一定期間キャッシュされます。

ただし例外として、静的と書かれている場合は二つのアドレスの関連付けを固定値としています。

ARPコマンドの実行の仕方3:「arp」で現在のエントリを表示する

arp -aでエントリの表示じゃないのか、と思った方もいるのではないでしょうか。実はarp -aで現在のエントリを表示するのは、Windows系でのARPコマンドになります。

では、arpで現在のエントリを表示するのはなんなのかというと、こちらはUNIX系(LinuxやMAC)のARPコマンドになります。

Windows系でarpを実行しても、全オプションのヘルプが表示されるだけなので、ご注意ください。

ARPコマンドの実行の仕方4:arpテーブルにエントリの追加と削除をする

ARPテーブルが確認できたら、いよいよエントリの追加と削除を行っていきましょう。

エントリを追加したい場合は「arp -s [IPアドレス] [MACアドレス]」、エントリを削除したい場合は「arp -d」で実行してみましょう。

Windows系かUNIX系(LinuxやMAC)かで、同じようなことをしたくてもコマンドが違う場合があります。ですが、追加・削除は同じなので、安心して追加・削除をしてください。

ARPでトラブルが起きた際の対処法


ARP関連でありがちなトラブルとして、機器の入れ替えで通信ができなくなったというトラブルがあります。ここではその際の対処法をご紹介します。

端的にいうと、機器の入れ替えで通信ができなくなった場合、ARPのキャッシュをクリア(削除)するべきです。

機器を入れ替えることで、同じIPアドレスでもMACアドレスが違うために正常に通信を行えなくなります。そのため、キャッシュをクリアして情報を更新しなければならないのです。

ARPコマンドを覚えて活用しましょう


ARPコマンドにはたくさんの便利なオプションがありました。ARPは通信系の基本なので、これを覚えることで通信系に強くなれます。

今回ご紹介したよく使うARPコマンドのオプションを覚えて、より一層ARPテーブルを活用してみてはいかがでしょうか。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。