[linux-users: 108741] Re: MACアドレスの変更方法について教えてください

Takeshi Kusune kusune @ sfc.wide.ad.jp
2011年 3月 17日 (木) 13:11:02 JST


楠根です。

(2011/03/17 10:42), "鈴木孝征 (Suzuki Takamasa)" wrote:
> Yasuhara, Toshitaka 様から下記の情報をいただきました。
>> MAC Addrの変更方法ですが、ifcfg-*にMACADDR="MACアドレス”でIF起動時に
>> 変更可能です。

なるほど。ifconfig 関連だけ調べてましたが、
  ip link set dev ${DEVICE} address ${MACADDR}
というコマンドで設定してるんですね。

ないわけはないよなーと思いながら /etc/sysconfig/network-scripts 以下で
grep してたんですが、"MACADDR" による検索もしてなかったです。
grep 力がまだ足りなかったようです:) 勉強になりました。


あと、渡眞利さんの以下の記載ですが、

(2011/03/17 0:48), tomari_keicho wrote:
> ちなみにネットワーク以外で起動時何かを設定したい時は
> /etc/init.rc(だったかな?)にコマンドを追加していたと思います。

私の環境(CentOS 5.5)では
/etc/rc.d/rc.sysinit にあたるファイルのことでしょうか?

これに記載することで、確かに各種プロセスの起動前に設定は可能です。
ただ、他に問題のない方法がとれるならなるべく避けた方がいいかと思います。
理由は以下の三点です。


1. システムの起動時冒頭の一回しか起動しない

起動中に消えてしまうような設定の場合、再設定がなされません。
今回でいえば、eth0 に対応する module が unload された場合設定が消えます。
(管理された状況では意図しない形で起きることはほぼないと思いますが)


2. ロジックとデータは混在しない方がわかりやすい

/etc/sysconfig/network-scripts/ifcfg-* は network device ごとの設定、
/etc/modprobe.conf は module 起動時のパラメータ、がそれぞれコンパクトに
集まっていますが、rc.sysinit には各種システムの初期化動作が混在していて、
設定内容以外も色々記載されているので確認や修正の際にわかりにくいと思います。


3. rc.sysinit は更新される可能性がある

2 とも関連しますが、rc.sysinit には OS 自体で提供している初期化ロジックが
記載されているので、OS の更新時に内容が変更になることがあります。
この時に既に手が入っていると、そのファイルが更新されなかったり、
逆に手で行なった編集が消えてしまったり、ということになる可能性があります。
後者は最悪ですが、前者でも不具合解消の恩恵を受けられなかったりするので、
なるべく設定は設定ファイルでまとめた方がよいと思います。

なお、rc.sysinit ファイルは RPM 上は設定ファイル扱いなので、
手で変更を加えていた場合は RPM による更新時にも上書きされることはないはずで、
起きるとすれば前者の事象だと思います(CentOS 5.5 の場合)。
--
Takeshi Kusune <kusune @ sfc.wide.ad.jp>


linux-users メーリングリストの案内