2011年12月16日金曜日

CentOS 6 系で NIC 交換すると eth0 と認識されない

サイオステクノロジー 金田です。

CentOS6 (RHEL6/Scientific Linux6) では、HW 不良等により NIC を交換すると、交換したNICが eth0 ではなく eth1 と認識されてしまいます。

MAC アドレスが異なる NIC が追加されるたびに /etc/udev/rules.d/70-persistenet-net.rules にエントリが追加されてしまうためにこのような現象になるのですが、交換した NIC を eth0 と認識させる方法について以下に紹介します。

(1) MAC アドレスの確認
/etc/sysconfig/network-scripts/ifcfg-eth1 がない場合、ifconfig eth1 を実行し HWaddr の内容を記録しておきます。

(2) ネットワーク関連サービスの停止

# service NetworkManager stop (*)
# service network stop
*:NetworkManager がインストールされている場合

(3) ネットワークモジュールのアンロード

# rmmod <ドライバ名>
※ドライバ名は /etc/udev/rules.d/70-persistent-net.rules ファイル内の NIC 設定行の1行上のコメント行の末尾に () で括られて記載されています。
  (下記例は vmnet3)
# PCI device 0x15ad:0x07b0 (vmxnet3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:79:22:65", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

(4) ifcfg-ethX ファイルのリネームまたは修正
/etc/sysconfig/network-scripts/ifcfg-eth1 がある場合は、ifcfg-eth0 ファイルと ifcfg-eth1 ファイルを次のように変更します。

# mv ifcfg-eth0 ifcfg-eth0.bak
# mv ifcfg-eth1 ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1 がない場合は、ifcfg-eth0 の HWADDR= の値を (1) で保存した値に書き換えます。

(5) /etc/udev/rules.d/70-persistent-net.rules のバックアップ

# mv /etc/udev/rules.d/70-persistent-net.rules \
     /etc/udev/rules.d/70-persistent-net.rules.bak

(6) ネットワークモジュールのロード

# modprobe <ドライバ名>

(7) ネットワーク関連サービスの起動

# service network start
# service NetworkManager start (*)
*:NetworkManager がインストールされている場合


上記は、eth1 として認識してしまった後の変更方法ですが、/etc/udev/rules.d/70-persistent-net.rules に NIC のエントリを作成されないようにする方法も併せて紹介します。

/lib/udev/rules.d/75-persistent-net-generator.rules にある下記の行をコメントアウトすることで、/etc/udev/rules.d/70-persistenet-net.rules に新しい NIC の情報は追加されなくなります。

(変更前)

DRIVERS=="?*", IMPORT{program}="write_net_rules"
(変更後)
# DRIVERS=="?*", IMPORT{program}="write_net_rules"

0 件のコメント:

コメントを投稿