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