彷徨えるフジワラ

年がら年中さまよってます

固定アドレスでネットワーク設定

サーバ動作させるなら、いい加減 DHCP クライアント状態での稼動を解消する必要があるので、ネットワーク設定に手を染める。

IPv4 設定の手順に従い、/etc/hostname.interface ファイルにアドレス情報の記述などを。

/etc/resolve.conf や /etc/nsswitch.conf、/etc/inet/{hosts|netmask}(何時の間に /etc/inet 配下に移動になったんだろう?)の設定は何処に行っても同じ要領で済むのだけど、インタフェース毎設定に関しては、OS ごとに流儀が違うから、最初に情報を探し当てるのに一手間かかるのが困りモノ。
(1) /etc/hostname.interface ファイルの記述書式が ifconfig コマンドの引数そのものである=ifconfig コマンド起動の際に展開されるだろうことと、(2) ifconfig で DHCP 制御が可能なことから、DHCP クライアントモード(=インストール時のデフォルト設定)の場合、/etc/hostname.interface には"dhcp start"とでも書いてあるのだろう、などと推測しつつ、いざ設定と思ったら、/etc/hostname.interface ファイルの影も形も無い。

うーむ、UNIX 的な流儀に従うなら「設定ファイルが無い場合は設定しない」筈なのだが、今時は「無ければデフォルト設定=DHCP」という流儀なのかな?あまり納得が行かないながら、とりあえず設定を保存して再起動。そして相変わらず DHCP クライアントモードのまま orz.....

あー、やっぱり設定ファイルを書いただけでは駄目かぁ。

まぁ、そんなことだろうと思って、graphical login 後のデスクトップ画面で、Windows で言う所のステータスバーのあたりのネットワーク設定インジケータを適当にクリックしつつ、DHCP 構成を解除。すかさず /etc 配下で "hg status" で改変調査。/etc 配下を Mercurial 化しておいて良かった。

どうやら、/etc/nwam/llp とかいうファイルが変更されている。ファイル内容を見るとインタフェース名が書かれているので、このファイルが肝で間違い無さそう。

早速ファイル名を元に Google にお伺いを立ててみると、どうやら OpenSolaris の初期状態では、NetWork Auto Magic(nwam) というサービスが余計なお節介諸々の設定をよしなに運用してくれていて、このファイルは nwam デーモンの挙動設定用のものらしい。

nwam サービスが有効な状態でも、/etc/nwam/llp ファイルへの記述次第で固定アドレス運用も可能らしいのだけれど、精神衛生的な点から nwam は無効化する方向で。

$ svcadm disable svc:/network/physical:nwam
$ svcadm enable svc:/network/physical:default

nwam を無効化して手動設定で運用する場合、IPv6 設定に関しては /etc/hostname6.*ファイルの記述が必要になるので注意。個人的には、IPv6 に手を出すのは当分先だと思うけど、一応チェックということで。

/etc/nwam/llp ファイルにアタリが付いた後だと、先の SUN の wiki とか、さとうさんのページとか、瀧さんのページとか、幾らでも見つかるのに、それまではなかなかアタリに辿り着けないあたり、なかなかモドカシイ限り。修行が足りないんだろうなぁ。

っていうか、何時まで経っても、さとうさんと瀧さんの掌の上で踊っているなぁ > 自分。chototsu さん太陽系さんを加えると、ほぼ完全なお釈迦様の掌の出来上がりですよ。

ちなみに、色々設定が終わって一息付いた際に、以前 OpenSolaris 勉強会でもらってきた OpenSolaris 2008.11 の導入向け小冊子を見るでもなく見てみたら、そのものズバリな nwam の解説が掲載されていた orz

あれー?この冊子、結構目を通してたんだけどなぁ。

ちなみにこの冊子、恐らく以下のものを紙媒体向けに再構成したものと思われる。

※ 2010/10/11 追記

インストール直後の /etc/inet/hosts 記述において、一番最初に自ホスト名と合致する設定が 127.0.0.1 だったりするので、/etc/hostname.interface にはホスト名ではなくアドレスを直接記述するのが吉(マニュアル等には「ホスト名を書け」となっているけど)。