NIC の設定にMACアドレスを入れないと入れ替わってしまう。

  • 投稿日:
  • by
  • カテゴリ:

ハングしたり、IRQを共有しているNIC(LANカード)が反転したりして困ってたのですが、
一応再起動しても入れ替わることはなくなりました。
ifcfg-eth*にHWADDR=MACアドレスを書いて固定できました。

そのほかのやり方。(ただうまくいかない場合もあるみたい)
udevでやるのが正しいのかどうかよくわかりません。

/etc/udev/rules.d/60-net.rules (Vineの場合)

ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device"
SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug"
ACTION=="add", SUBSYSTEM=="net",DRIVER=="?*","eth*", ATTRS{address}=="MACアドレス", NAME="eth0"
SUBSYSTEM=="net",DRIVER=="?*","eth*", ATTRS{address}=="MACアドレス", NAME="eth1"
SUBSYSTEM=="net",DRIVER=="?*","eth*", ATTRS{address}=="MACアドレス", NAME="eth2"

/etc/modprobe.conf
alias eth0 e100
alias eth1 e100
alias eth2 r8168
alias bond0 bonding
options bond0 miimon=100 mode=1

cat /proc/net/bonding/bond0

ifconfig で見ると正常に動いているように見えます。
再起動数回しましたがやっと固定できたようです。

昔の modules.conf とかの書き方じゃうまくいかないみたいですね。

参考にしたページ
http://www.reactivated.net/writing_udev_rules.html
http://www.gentoo.gr.jp/transdocs/udevrules/udevrules.html
日本HP 異なる複数のNICドライバで bondingドライバを利用する例

KERNEL=="eth*", SYSFS{address}=="MACアドレス", NAME="eth0"
と書いてみてテストしたのですが、どうもエラーを吐いたり、デバイスが固定できなかった。
udevのマニュアルにはこう書いてあるが、どっかとバッティングしてるようです。

CentOS5.2 で同じような状態になりました。SUN x2100, HP DL360G5 でeth0,eth1,eth2 が
入れ替わる現象がでました。
ifcfg-eth* と modprobe.conf で設定して、kudzu の停止でリブートしても入れ替わらなくなりました。
(何回か再起動して入れ替わらなくなった。しかし /var/log/messagesにエラーが載ってる...)

ドライバの読み込み順で、NICカードが認識しているようです。

DL360G5 を 6台のインストール直後確認したら、5台が順番が入れ替わっていた。
後付→内蔵の順番で読み込む x5
内蔵→後付の順番で読み込む x1
同じハードウェアでも読み込み順序が違うってのも気持ち悪いです(´д`)