2008年2月22日金曜日

udevでethXを固定する

coLinuxにtapを追加してから、ネットワークの設定が自動でされなくなったので原因を調べたんだけど、書き忘れたので別エントリで書いておく。

問題
コマンドラインから起動するときと、サービスとして起動するときで違うMACアドレスが振られることがあるらしい。
MACアドレスとethXの対応をudevが記憶しているから、MACアドレスが変わるとethXが変わってしまい、eth0用の設定(ubuntuだと/etc/network/interfacesに書いてあるやつ)が適用されなくなってしまう。
なので、コマンドラインから起動したときのMACアドレスと、サービスとして起動したときのMACアドレスを両方同じethXになるように登録すれば解決。

対応
udevが対応を記憶しているファイル(/etc/udev/rules.d/70-persistent-net.rules)を見て、新規に追加されたエントリを割り当てたいethXにすればok。
私の場合は、元々eth0, eth1があったところにeth2, eth3が追加されたので、eth2→eth0, eth3→eth1にした。
こんな感じ

# PCI device 0x1a55:0x0005 (conet)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="サービス時のアドレス", NAME="eth0"
# PCI device 0x1a55:0x0005 (conet)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="コマンドライン時のアドレス", NAME="eth0"

0 件のコメント:

コメントを投稿