Fedora 10で固定IPアドレスが設定できない

先に書いたようにやっとのことで、MacBookのVMware Fusion 2にFedora 10がインストールできたわけですが、この後にも難関がありました。

実は、別の実マシンで、ネットワークの設定がうまくいかなかったので、その検証をやってみたかったというのが、今回のインストールのきっかけ。固定IPアドレスでの設定ができなかったのです。簡単に設定できると思っていたのに・・・。

やっとのことでできあがったVMWare Fusionの仮想マシンでも、うまく問題が再現できたと言うべきか、固定IPでの設定ができませんでした。

悩んだあげくわかったことは、

・各設定ファイルを手で編集すれば、設定できる

・GNOMEのGUIのネットワークの管理ツール(システム>管理>ネットワーク)で編集すると、/etc/sysconfig/network-scripts/ifcfg-eth0には画面上で設定した値とは違う値が書き込まれてしまう(バグ?)

・ネットワークの管理ツールをアップデートすれば、ちゃんと設定できるようになる

ということ。

まだ、びしっと理解できていないので、時系列で体験したことを書き連ねておきます。

(1)アヤシイのはNetworkManager?

Fedora 10では、インストール時にネットワークの設定をするような場面がありません。DHCPで自動的に接続できるように、NetworkManagerというサービスがネットワークカードを管理しているようです。

Fedora で自宅サーバ・・・的なサイトをあちこちみていると、NetworkManegerをオフにしてnetworkでの管理に変更する手順を紹介しているところがいくつかあります。例えば、

Fedora 10インストール - Fedoraで自宅サーバー構築

の「■Fedoraネットワーク設定」のあたり。このような設定方法だと、きちんと設定できます。設定ファイルを直接書き換えた場合も、当然のようにうまくいきます。

この時点では、オフにしてる人も多いNetworkManageが設定がうまくいかなかった原因だと疑う気持ちもありました。しかし、「NetworkManageは使えない」という風な記述は見つからないので、原因は別にあるはずという思いあり、すっきりしない気持ちで設定を変えてみる作業が続きました。

(2)NetworkManegerだとeth0が起動しない

/etc/sysconfig/network-scripts/ifcfg-eth0 を手動で編集して、固定IPに設定を変えた状態で、netoworkをオフにしNetworkManegerを使うようにすると、eth0が自動では有効にならなくなりました。

これは、

Fedora 10 でIPaddress固定にしたいとき - zzz_1980の日記

* NM_CONTROLLED

yesにしておくと、Network manager とうまくやっていける。

ということらしく、確かにNM_CONTROLLEDをyesにすると、NetworkManegerのstartに連携してeth0が起動するようになりました。

(3)NetworkManegerだとDHCPになってしまう

eth0が起動してほっとしたところに次に気づいたことは、/etc/sysconfig/network-scripts/ifcfg-eth0には固定IPアドレスで書いてあるのに、DHCPで動いているということ。

そういえば、/etc/resolv.confはNetworkManagerによって編集されるらしく、ときどき、

# Generated by NetworkManager

# No nameservers found; try putting DNS servers into your

# ifcfg files in /etc/sysconfig/network-scripts like so:

#

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

# DOMAIN=lab.foo.com bar.foo.com

というような記述になっていることあります。

この記述に従って、DNSをifcfgファイルで指定すれば、NetworkManegerでも固定IPアドレスでの設定が期待通りに動作するということが確認できました。

DOMAINはホスト名のことでしょうか。もっと調べることはありそうですが、NetworkManegerへの疑いは、ここまでのあたりで消えています。

でも、なにかおかしい・・・。

■ネットマスクがおかしい!!

GNOMEのGUIのネットワークの管理ツールで、

□NetworkManagerで管理する

□コンピュータの起動時にデバイスを起動

のあたりをチェックしたり外したりしているとき、あることに気がつきました。

ifconfigで表示されるMaskの値が変です。

間違えて入力したのかなあ・・・と、/etc/sysconfig/network-scripts/ifcfg-eth0を手で編集したり、GUIのネットワークの管理ツールで何度か入力しなおしているうちに気がつきました。

ネットマスクの値が、ゲートウェイの値と同じものになってしまう!

どうも、GUIのネットワークの管理ツールで/etc/sysconfig/network-scripts/ifcfg-eth0の更新が発生するようなことをすると、ネットマスクの部分にゲートウェイの値が書き込まれてしまうようなのです。

例えば、GUIツールで、ネットマスクが255.255.255.0、デフォルトゲートウェイアドレスが192.168.1.1と記入しても、/etc/sysconfig/network-scripts/ifcfg-eth0では、NETMASKもGATEWAYも192.168.1.1となります。

/etc/sysconfig/network-scripts/ifcfg-eth0にて、手動で正しく編集済みのネットマスクも、例えば、GUIのツールで「コンピュータの起動時にデバイスを起動」のチェックの変更などで更新されると、ネットマスクがデフォルトゲートウェイの値に変わってしまいます。

(4)管理ツールのアップデートでOK!

GUIのネットワークの管理ツールのバージョンを調べてみると、sysytem-confging-networkのバージョンは1.5.93とのこと。

1.5.95があったので、アップデートしてみると、ネットマスク書き換え事件は起きなくなりました。

修正済みのバグだったんでしょうか・・・。ここまですごく悩まされてしまいました(笑)。

OSインストール後は早々にアップデートしてしまうのがよさそうですね。今回は、そんなちょっとした要領みたいなところで勉強になりました・・・。

NetworkManagerとnetworkの機能の違いや、NetworkManagerの使いこなしについては、また後日の課題です・・・。