田舎者Yの日記

片田舎のバイク乗り・Linuxユーザ、つまり変わり者のブログ

Ubuntu 8.10 で固定IPを設定する。

 Ubuntu 8.10 Intrepid Ibex を自作デスクトップにインストールしたのだが、インストール直後から、固定IPを設定できず悩んでいた。私のデスクトップはNICが一枚だけであり、有線でルータを介してADSLへ接続している。ルータがDHCPサーバの機能を持っているのだが、固定IPを設定した後、再起動すると必ずDHCPによる自動設定に設定が戻ってしまった。/etc/network/interfaces を直接編集するとエラーが起こってしまった。

 今日、いろいろと設定をいじっているうちに固定IPを設定できるようになっていた。正直言って何が有効だったのか全然わからないw。


 結論から言えば、/etc/network/interfaces を削除して再起動し、'nm-connection-editor'で固定IPを設定してまた再起動し、その後 /etc/network/interfaces を再び元に戻した、ということだ。

 一応、私が行った主な変更手順などを書いておく。素人なので的を外しているかもしれない。また念のためお断りしておくが、もし私のシステム変更を真似される場合は自己責任で実施してほしい。設定のバックアップは極力保存しておいたほうが良いだろう。
 個人的には'nm-connection-editor'のバグ(あるいは複数のネットワークを設定するツールが存在する影響?)のような気がする。ひょっとしたらしばらくするとバグフィクスされるかもしれない。


(症状)
 マシン(NIC)に固定IPを振ろうとして、メニューの「システム」→「設定」→「Network Configuration」(nm-connection-editor)で "auto eth0" を編集し 「IPv4設定」で適切にIPアドレスなどを設定しても、直後はそのIPで通信するが、再起動すると必ずDHCPによる自動設定に戻ってしまった。

 そこで、/etc/network/interfacesを適切に書き換えて /etc/resolv.conf にDNSを追加して、"sudo /etc/init.d/networking restart" すると、その直後は/etc/network/interfacesで指定した固定IPで接続できるのだが、再起動するとネットに接続できなかった。

 再びメニューの「システム」→「設定」→「NetworkConfiguration」で見ると"ifupdown(eth0)"という設定したことのないプロファイルができていて、その中に先ほど指定した固定IPが設定されている。その"ifupdown(eth0)"をさらにもう一度設定して保存しようとすると、

接続のアップデートに失敗しました: nm-ifupdown-connection.c.82 - connection update not
supported (read-only).

というエラーが発生した。

(対策:私の場合)
 上記に述べたように、”/etc/network/interfaces" に設定したい固定IPやサブネット、ゲートウェイなどを記述しておいたのだが、下記のスレッドにあるように ”/etc/network/interfaces" を書き換えて再起動した。

 ubuntu 8.10 - Can't edit Wired Network Connections - nm-ifupdown-connection.c.82 (read only) - Ubuntu Forums


 URLがわからなくなってしまったのだが、”/etc/network/interfaces"を削除して再起動する、という話題があったので、私は "sudo mv /etc/network/interfaces /etc/network/interfaces.bak" とrenameして再起動した。


 その後、メニューの「システム」→「設定」→「NetworkConfiguration」で固定IPを設定したところ、以前のように再起動後に自動設定に変化するということがなくなった。
 Ubuntu 8.10 のデフォルトのGnomeデスクトップでは画面の右上にネットワーク接続アイコンが表示されるが、それをクリックして設定したプロファイル名をクリックすると設定した固定IPで接続するようになった。しばらくは、この状態で使っていた。


 後で述べるようにsambaの設定を変更する必要があり、 "sudo /etc/init.d/networking restart"
とすると、”/etc/network/interfaces" が無いという旨のエラーが表示されたので、設定を "sudo cp /etc/network/interfaces.bak /etc/network/interfaces" として戻した。

 その後、何とか正常に動作している。おそらくこの設定方法は好ましくないとは思うのだが、一応固定IPで動作している。

追記

 この記事へのアクセスがあるようなので追記。
 上記の設定よりも下記の設定方法のほうがマシかも。
  Ubuntu 8.10 で固定IPを設定する(再挑戦) - 山河に在りて

 これを追記している時点(2008年11月17日)でバグレポートが出ているのに気づいた。これと同じ現象と思われる。
  Bug #294085 in Ubuntu: “8.10 Networkmanager forgets static settings”