HWADDRを書かずにethを固定する方法

運用上、サーバーの筐体交換等を想定していると、

  • network-scriptsにHWADDRを記述した場合、交換後インターフェイスが上がってこないので、随時正しいHWADDRに書き換えてやらないといけない

という問題がある。

それは面倒だが、NICが複数枚ある場合は、Linuxの仕様上Kernelがドライバに合うデバイスを見つけた順にethを割り当てていくので、ethが入れ替わったりする場合がある。

その対処方として、

  • HWADDRをethの設定に書いておくことで固定できる

のだが、上記の運用上の問題でそれは難しい。

インターネット上でもほとんどがHWADDRを記述する方法でethの固定を行っている。

そこで、ドライバーの読み込み順序をsysconfig/networtkに記述してやる方法がある。

例えば、NIC1・NIC2がe1000eドライバで、NIC3・NIC4がigbだったとする。

ここでNIC1をeth1、NIC2をeth2、NIC3をeth3、NIC4をeth4と固定したい場合、以下のようにsysconfig/networtkに記述する。

modprobe e1000e
modprobe igb
これで、起動時にKernelはe1000eドライバーに合うデバイスを先に探しに行き、あったらそのデバイスに若いethを割り当てていく。
次にigbを使うデバイスをさがすので、結果的にNIC1をeth1、NIC2をeth2、NIC3をeth3、NIC4をeth4と固定できる。