ネットワーク管理者として、あなたはおそらくすでにARPプロトコルに精通しているでしょう。
ARPは、相互に簡単に検出および通信するために、レイヤー2デバイスで一般的に使用されます。
小規模なオフィスネットワークを扱っている場合、ホストにpingを実行したくなるかもしれません。 それらが利用可能であることを確認するため。
ICMPプロトコルを使用している場合は、実際にARP要求を実行していることに気付くかもしれません。 ネットワーク上のデバイスをプローブするため。
ARPpingを作成するより簡単な方法をお探しの場合 、arpingコマンドに興味があるかもしれません。
このチュートリアルでは、arpingコマンドに焦点を当てます。 :インストール方法と効果的な使用方法。
前提条件
システムにarpingコマンドをインストールするには、明らかにサーバーでsudo権限が必要です。
sudoかどうかを確認するには、次のコマンドを実行するだけです
$ groups
user sudo
そうでない場合は、DebianまたはCentOSホストのsudo権限を取得するためのガイドを読むことができます。
Linuxへのarpingのインストール
サーバーにarpingコマンドをインストールするには、「 apt-get install」を実行します。 」コマンドを実行し、「arping」パッケージを指定します。
$ sudo apt-get install arping

コマンドがインストールされたので、「arping」コマンドを実行できます 使用されている現在のバージョンを確認するため。
$ arping -v
ARPing 2.19, by Thomas Habets <[email protected]>
すばらしい!
arpingコマンド これでサーバーにインストールされました。
デフォルトでは、arpingコマンドは毎秒ARP(またはICMP)要求を送信しますが、明らかに構成することができます。
arpingを使用してホストを検出する
まず、イーサネットを介して通信するデバイスと同様に、デバイスにはネットワークを介した通信に使用される内部ARPテーブルがあります。
現在のARPエントリを確認するには、すべてのデバイスに対して「-a」オプションを指定して「arp」コマンドを実行するだけです。
$ arp -a
ARPコマンドを使用すると、ホスト名のリストが表示され、その後にIPとMACアドレスが表示されます。

この場合、ARPテーブルの唯一のエントリ(192.168.178.1のIPアドレスを介してアクセス可能なルーター)が表示されます。
ただし、ローカルネットワーク上で他のホストを見つけることに興味があるかもしれません。それを実現するには、arpingコマンドを使用します。
IPアドレスを使用してホストにpingを実行する
ネットワーク経由でホストにpingを実行するには、「arping」コマンドを使用して、pingを実行するIPアドレスを指定するだけです。
さらに、「カウント」の「-c」オプションを使用して、送信するpingの数を指定できます。
$ arping -c 2 <ip_address>
注 :LinuxでIPアドレスを見つける方法がわからない場合は、このテーマに関する完全なガイドがあります。
たとえば、ローカルネットワーク上で「192.168.178.27」IPアドレスを使用して、次のコマンドを実行します

ご覧のとおり、応答pingを受信している場合は、対応するデバイスのMACアドレスが表示されます。
arpingコマンドを使用してもARPテーブルは自動的に更新されないことに注意してください。更新するには、pingなどのコマンドを使用する必要があります。
$ arp -a

すばらしいです。ネットワーク経由でARPリクエストを発行するためにarpingコマンドを正常に使用しました!
arpingを使用したARPタイムアウト
arpingコマンドが定義されたターゲットのIPアドレスを解決できない場合、ARPタイムアウトが発生します。
例として、不明なホストでARP要求を実行すると、次の出力が得られます
$ arping -c 5 <ip_address>

ご覧のとおり、ネットワークインターフェースを指定しないと、警告が表示される場合があります。
arpingコマンドはネットワークインターフェイスが指定されていることを想定しているため、これはごく普通のことです 。
ルーターを扱う場合、またはLinuxサーバーをルーターとしてインストールすることを選択した場合は、2つの異なるネットワークにルーティングするために2つのネットワークインターフェイスカードをインストールできます。
この場合、arpingは、ARPpingを送信するために使用する必要のあるネットワークインターフェイスを認識している必要があります。
ご覧のとおり、arpingコマンドは「推測」を試みます。 」ネットワークインターフェイスが提供されていない場合は、ネットワークインターフェイス。
ネットワークインターフェースの指定
サーバーに複数のネットワークインターフェースがある場合、arpingは使用するネットワークインターフェースカードを「推測」できません。
その結果、arpingが正しいものを推測できなかったことを示すエラーメッセージが表示される場合があります。

使用するネットワークインターフェースを指定するには、「-I」オプションを使用する必要があります その後にネットワークインターフェイスの名前が続きます。
ネットワークインターフェイスを列挙する方法についてヘルプが必要な場合は、このガイドを使用してLinuxでIPアドレスを見つけることができます。
$ arping -I <interface_name> <ip_address>
インターフェイスの名前が「enp0s3」の場合、コマンドは次のようになります:
$ arping -I enp0s3 192.168.178.22

すごい、離れたサーバーにpingを実行し、使用するネットワークインターフェースを指定しました!
ソースMACからのARPpingの送信
場合によっては、パケットの送信元の送信元MACアドレスを指定することもできます。
これを実現するには、「source」の「-s」オプションに続けてpingするMACアドレスを指定して「arping」コマンドを実行する必要があります。
$ arping -c 2 -s 00:60:70:12:34:56 <ip_address>
この場合、2つの可能性があります:
- あなたはMACアドレスの所有者です 「-s」オプションを使用するだけです。
- あなたはMACアドレスの所有者ではありません そして、MACアドレスをスプーフィングしようとしています。この場合、無差別モードを使用する必要があります。簡単に言うと、プロミスキャスモードは、NICが受信するはずのフレームではなく、NICが受信したすべてのフレームを送信するように設定されています。
プロミスキャスモードを有効にするため 「arping 」コマンドの場合、「-p」オプションを使用する必要があります。
以前に使用したオプションを使用すると、次のコマンドが表示されます。
$ arping -c 2 -s 00:60:70:12:34:56 -p <ip_address>
結論
このチュートリアルでは、ローカルネットワーク上のIPアドレスにpingを実行するためにarpingを簡単に使用する方法を学びました。
arpingを使用すると、ローカルARPキャッシュに一致するMACアドレスを入力できます。
また、プロミスキャスモードを使用してMACアドレスを「スプーフィング」できることも学びました。
Linuxシステム管理に興味がある場合は、Webサイトに専用のセクションがありますので、ぜひチェックしてください!