通常LINUXは、ハードウエアを変えても起動時に適切なドライバを読み込んでくれる。
NIC(Network_interface_controller。所謂LANカードである。)の場合も、見つかった順に eth0 からネットワークデバイス名を割り当てるので、既に eth0 が割り当てられている状態でMACアドレスの変更を認識すると、1回目は eth1 、次の変更時は eth2 となる。
便利といえば便利な機能だが、ネットワークデバイスを「eth0」で初期設定したアプリが走らなくなる。
アプリの設定を変更する手もあるが eth0 に戻す方が楽である。
/etc/udev/rules.d/70-persistent-net.rules をみると、
———————————————————————————————————————–
# PCI device 0x10ec:0x2890 (r2889)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}#==”00:11:22:33:44:55″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
———————————————————————————————————————–
等となっている。
変更に伴いSUBSYSTEM==の行が複数あり、自動でコメントアウト(#)されていたりするが、
現在有効(選択可能)なのは、当然コメントアウトされていないSUBSYSTEM==の行である。
(通常であれば、現在のNICのMACアドレスが記述されている行が有効になっている筈で、)
その有効行のATTR{address}#==”00:11:22:33:44:55″ がMACアドレスなので、
それが現在のNICのMACアドレスと一致していたら、その行のNAME=”eth*”を “eth0” に書き換えると
アプリにおけるデバイスとデバイス名の対応が取れる。
暫くはまってしまったので、覚え書きとした。
コメント