タイトル【Darwinシリーズ】ネームサーバとDHCPの設定カテゴリーDarwin, Darwin 1.0
作成日2000/8/17 16:18:10作成者新居雅行
Darwinに関する質問集を集めた「The Unofficial Darwin FAQ 日本語版」というサイトが公開されている。もとは、Rob Braun氏によるもので、小西高之氏が日本語に翻訳して公開している。NetInfoにコマンドを与えてユーザ登録する方法などかなり有益な情報がたくさんあるので、Darwinに興味がある人には必読のページと言えるだろう。
◇The Unofficial Darwin FAQ 日本語版
 http://www.coara.or.jp/~konishi/html/faq.html

このページを参照していると、以前にこの連載コーナーでお伝えしたことで分からなかったことや違う方法のあるものもあったので、このページの情報をもとに再度同じテーマを取り扱う。

まず、DNSサーバの設定は、以前には、/etc/resolv.confに行うという方法を紹介したが、NetInfoのエントリーに入れるという方法でもできるようだ。Mac OS Xでの動作を考えると、こちらの方法でシステム自体が動くようになることが十分に考えられる。ネームサーバを「192.168.0.1」、デフォルトのドメイン名を「msyk.dyndns.org」とすると、次のようにコマンドを入れればよい。

niutil -create . /locations/resolver
niutil -createprop . /locations/resolver nameserver 192.168.0.1
niutil -createprop . /locations/resolver domain msyk.dyndns.org

こうして入力し、netinfod、lookupdの2つのプロセスを再起動する。再起動には「ps aux」ですべてのプロセス一覧をだし、たとえばCommandがnetinfodのもののPIDつまりプロセスIDをたとえば138と読み取る。そして「kill -HUP 138」とコマンド入力を行う。同じ処置をlookupdに対しても行えばよい。
こうしておくと、確かに「ping www.locus.co.jp」のようなコマンドがきちんと動くが「nslookup www.locus.co.jp」についてはエラーが出る。いくつかコマンドを確かめてみたが、機能しないのは、nslookupだけのようで、telnetやftpなどのコマンドを利用できた。
niutilは、manでマニュアルすら出てこないが、ディレクトリサービスのNetInfoのユーティリティだ。2つ目の引数でエントリーの作成やプロパティの作成などを行う。NetInfoの記録イメージについては、Mac OS X ServerでNetInfoManagerを参照するのがとりあえずは早道だろう。ピリオドだけの引数は、ドメインの指定を行いますが、現在のマシンなのでピリオドだけを指定する。その後はエントリー、プロパティ名ないしは名前、設定値が続く。マニュアルのページは以下のアドレスに見つけたが、単に「niutil」とだけ入力すると出てくるヘルプメッセージの方がより多くのオプション設定が出てくる。
◇niutil - NetInfo utility
 http://www.vorlesungen.uni-osnabrueck.de/informatik/shellscript/Html/Man/_Man_NeXT_html/html8/niutil.8.html

NetInfoに記録したものはそのまま基本的には永続されるので、上記のniutilコマンドを起動するたびに行うとか、起動スクリプトに書いておくという必要はない。

次に、DHCPクライアントになる方法を説明しよう。DarwinだけでDHCPクライアントになる方法があるようで、次のように設定を行う。まず、/etc/iftabファイルに、en0、つまりEthernetアダプタの設定項目があるが、この設定行を、

en0 inet -DHCP-

だけにする。ここにIPアドレスなどを書いていたのを書かないように変更する。そして、/etc/hostconfigファイルの、HOSTNAME、ROUTERの設定を、以下のようにする。いわば、初期値と同じにするということになる。

HOSTNAME=-AUTOMATIC-
ROUTER=-AUTOMATIC-

こうして再起動すれば、DHCPサーバからIPアドレスなどの配給を受け、ネットワーク設定がなされる。現在のIPアドレス設定は「ifconfig -a」コマンドで確認できる。
だが、このDHCP機能によって、ネームサーバの設定はどうも自動的にできない。NetInfoの/locations/resolverのエントリーを空にして、DHCPを有効にして再起動したが、名前解決は行わないのである。DHCPによってネームサーバ情報までを記録する方法については分からないままとなってしまった。
関連リンク