運用上、サーバーの筐体交換等を想定していると、
- 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 e1000emodprobe igb
これで、起動時にKernelはe1000eドライバーに合うデバイスを先に探しに行き、あったらそのデバイスに若いethを割り当てていく。
次にigbを使うデバイスをさがすので、結果的にNIC1をeth1、NIC2をeth2、NIC3をeth3、NIC4をeth4と固定できる。