ETHERS ファイルの書き方

CLIENT


ETHERS ファイルとは

ETHERS ファイルとは、IP ネットワークで、IP アドレスがどのハードウェアに割り当てられているかを管理するファイルです。

このような "IP アドレス" と "MAC アドレス(ハードウェアアドレス)" との対を自動管理する仕組みとして ARP (Address Resolution Protocol) という仕組みがあるのですけど、ETHERS ファイルというのは、Linux で、その ARP に任意の情報を登録するためのデータファイルになります。

普段はそうそう出番はなさそうですけど、たとえば iPhone 5 の Wi-Fi 通信が頻繁に途切れる みたいな特殊な場面で、自分は使ったことがありました。

 

ETHERS ファイルの書き方

この ETHERS ファイルはテキストファイルなので、テキストエディタで簡単に書き換えられます。

HOSTS ファイルは、普通は次の場所に用意されています。

Linux /etc/ethers

 書き方は単純で、MAC アドレスと IP アドレスとの対を、1 行毎に書きます。

[MAC アドレス]  [IP アドレス]

 

たとえば IP アドレス "192.168.1.1" が MAC アドレス "F4:1B:A1:00:00:00" を持つインターフェイスに割り当てられている場合、これを ETHERS ファイルに登録するには、次のように記します。

F4:1B:A1:00:00:00  192.168.1.1

このように "IP アドレス" と "MAC アドレスを" 空白文字やタブ文字で区切って記載します。

このようにして変更した ETHERS ファイルは、HOSTS ファイル のときとは違って、書き換えても直ぐには有効にならないので注意が必要です。

 

ETHERS ファイルをシステムに読み込ませる

Linux の arp コマンドを使う場合

ETHERS ファイルに記した内容をシステムに反映させるには、Linux では次のコマンドを実行します。

arp -f

この "-f" オプションは、ファイルから ARP エントリを登録するというもので、ファイル名を省略した場合は既定のファイル (/etc/ethers) が使用されるようになっています。

このとき、これまで手動で登録した ARP エントリはそのまま残り、そこにファイルに書かれた内容が追加されるところに注意します。

 

CentOS の場合

Linux でも CentOS の場合は、次のコマンドを使うことで ETHERS ファイルの内容をシステムに反映することができます。

service network restart

これで、手動で登録してあった ARP エントリが全てリセットされた上で、新たに ETHERS ファイルの内容がシステムに取り込まれます。

 

この時、ネットワーク周りの設定は全てリセットされることに注意が必要です。

インターフェイスもいったんダウンしてからアップします。SSH によるリモート接続は少し待って継続できる場合がほとんどですけど、何らかの事情でネットワークが動かなくなる可能性もあるため、リモート接続の場合は特に慎重に実行する必要がありそうです。

  

登録されている ARP エントリを確認する

登録されている ARP エントリを確認する方法については、ARP エントリを手動で設定する方法 の方に記してますので、そちらを参考にしてください。

こちらに記した ARP コマンドによる登録であれば Windows でも ARP エントリを手動で登録できます。