ARPキャッシュへ静的エントリーを追加する方法

シェルのコマンドライン

何かしらの理由によりLinuxやWindows上でARPキャッシュへ静的なエントリーを追加したい場合があります。

そのときに静的に追加する方法を書いていきたいと思います。

Linuxの場合

個別に静的エントリーを追加

arpコマンドで -s オプションを指定して追加します。

arp -i eth0 -s 192.168.12.34 12:34:56:78:9A:BC

-i の後にインターフェース名を指定します。

192.168.12.34がIPアドレスで12:34:56:78:9A:BCが対応するMACアドレスになります。

ファイルから追加

下記のようにIPアドレスとMACアドレスの対応をスペースで区切り、各エントリーを改行して記述したファイルを用意します。

192.168.12.34 12:34:56:78:9A:BC 192.168.12.35 12:34:56:78:9A:BD ・ ・ ・

arpコマンドで -f の後に上記ファイルを指定するとそのファイルからエントリー情報を読み込んで静的に追加してくれます。

arp -f [上記のファイル]

-f の後ファイル名を指定しないで省略すると/etc/ethersから読み込まれます。

/etc/rc.local等に/usr/sbin/arp -fと記述しておくと起動時に/etc/ethersから読み込まれると思います。

追加した静的エントリーを削除

arpコマンドで -d オプションを指定して削除します。

arp -i eth0 -d 192.168.12.34

-i の後にインターフェース名を指定します。

192.168.12.34が削除したいエントリーのIPアドレスになります。

キャッシュしているエントリーの確認

何も指定せずにarpコマンドを実行すると現在キャッシュされているエントリーを確認することができます。

# arp Address HWtype HWaddress Flags Mask Iface 192.168.12.34 ether 12:34:56:78:9a:bc CM eth0

Windowsの場合

個別に静的エントリーを追加

arpコマンドで -s オプションを指定して追加します。

arp -s 192.168.12.34 12:34:56:78:9A:BC

インターフェースも指定することが可能だが省略可であり、その場合はIPアドレスから自動的に選択されます。

追加した静的エントリーを削除

arpコマンドで -d オプションを指定して削除します。

arp -i eth0 -d 192.168.12.34

キャッシュしているエントリーの確認

arpコマンドで -a オプションを指定して実行します。

arp -a