タイトル大津真=XはUNIXでサーバで》LAN内でDNSサーバを立ち上げる(3)カテゴリーネットワーク管理, ネットワーク, 大津真=XはUNIXでサーバで
作成日2001/11/27 10:57:15作成者新居雅行
【MDOnline読者様限定コンテンツ】

――――BINDを起動する
BINDの制御には、ndcコマンドを使用します。

ndc start   BINDを開始する
ndc stop   BINDを停止する
ndc restart  BINDをリスタートする

設定ファイルとデータベースファイルを作成したら、「システム環境設定 - ネットワーク」で「ドメインサーバ」に自分自身のIPアドレスを「192.168.1.27」のように指定し、次のようにしてBINDを起動してみましょう。

% sudo ndc start <return>
new pid is 516

これで、BIND本体(named)がデーモンとして起動します。psコマンドで確認しましょう。

% ps ax | grep named <return>
297 ?? Ss 0:00.14 /usr/sbin/named
22317 std R+ 0:00.00 grep named

残念ながら作成した設定ファイルもしくはデータベースファイルにエラーがあれば「ndc start」を実行した時点で/var/log/system.logにエラーが出力されるので

% tail -f /var/log/system.log <return>

で確認します(付録のUNIXの基礎知識参照)。エラーがあった場合には、設定ファイルを見直してBINDをリスタートさせます。

% sudo ndc restart <return>

問題がないようだったら、ホスト名からIPアドレスが引けるか、あるいはその逆ができるかどうかを確認しましょう。BIND9はこれまでのnslookupコマンドに代わってhostコマンド(あるいはdigコマンド)を使用します(Finder上で確認するには「Applications - Utilities」のNetwork Utilityの「Lookup」を使用するといいでしょう)。

$ host g3mac <return> ←正引き(LAN内のホスト)
g3mac.o2.dyndns.org. has address 192.168.1.27
$ host 192.168.1.27 <return> ←逆引き(LAN内のホスト)
27.1.168.192.in-addr.arpa. domain name pointer g3mac.o2.dyndns.org.
% host www.locus.co.jp <return>←正引き(インターネット上のホスト)
www.locus.co.jp. is an alias for mail.locus.co.jp.
mail.locus.co.jp. has address 164.46.155.84

――――BINDの自動起動
OS Xでは、システムのブート時にサービスを起動したい場合に、/System/Library/StartupItemsおよびLibrary/StartupItems/ディレクトリにサービス名のディレクトリを作成し、その下に起動スクリプトをおいて、/etc/hostconfigファイルで起動するかどうかを設定します。この機能を使用してBINDを自動起動するようにしてみましょう。

まず、/Library/StartupItems/BINDディレクトリを作成し、次のような起動スクリプトを「BIND」という名前で保存します。ここではBINDという変数が「-YES-」の場合に、「ndc start」でBINDを起動するという処理を行っています。

リスト: BIND
 ― ― ― ― ― ― ― ― ― ― ― ― ― ―
#!/bin/sh

##
# Start DNS server (BIND/named)
##

. /etc/rc.common

if [ "${BIND:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting domain name server"

ndc start
fi
 ― ― ― ― ― ― ― ― ― ― ― ― ― ―

保存したら次のようにして実行権を付けます。

% sudo chmod +x /Library/StartupItems/BIND/BIND <return>

次に、説明や依存関係、起動時に表示するメッセージなどを記述したStartupParameters.plist を、同じく/Library/StartupItems/BINDディレクトリに保存します(メッセージはResourcesディレクトリに対応するファイルを用意することにより国際化することが可能ですが今回は省略しています)。

リスト:StartupParameters.plist
 ― ― ― ― ― ― ― ― ― ― ― ― ― ―
{
Description = "BIND domain name server";
Provides = ("DNS");
Requires = ("Disks");
Uses = ("Network Time");
OrderPreference = "None";
Messages =
{
start = "Starting DNS server";
stop = "Stopping DNS server";
};
}
 ― ― ― ― ― ― ― ― ― ― ― ― ― ―

最後に、/etc/hostconfigに次の行を加えます。

BIND=-YES-

以上で、システムを再起動すればBINDが自動起動するようになります。なお、自動起動させたくない場合には、/etc/hostconfigの追加した行を

BIND=-NO-

にしてください。

――――付録
■■ログファイルについて
カーネルおよび、いろいろなサービスは、「起動したとき」「アクセスされたとき」「エラーが起こったとき」などに、さまざまなログを出力するが、それらのログを統括して管理するのがsyslogdというデーモンだ。設定ファイルは/etc/syslog.confになる。
実際に/etc/syslog.confを覗いてみるとわかるが、ログはコンソールデバイス(/dev/console)および、/var/log以下のファイルに保存される。
コンソールに出力されるログを監視したい場合には、Finder上で「Applications→Utilities」フォルダのConsoleを立ち上げればよい。
なお、Consoleでは、「ファイル」メニューから「ログを開く」を選択し「アドレス」に「/var/log」を指定することによりログファイルを選択することが可能だ。
Terminal上で、ログを監視したい場合には、

tail -f ログファイルのパス

を実行するとよい。tailコマンドはファイルの最後の部分を表示するコマンド。「-f」オプションを付けると「control + C」を押すまでコマンドを終了せず、ファイルになにかが追加された時点で表示が更新される。

■■シングルユーザモード
UNIXの起動モードにはマルチユーザモードとシングルユーザモードがある。マルチユーザモードは通常のモードで、シングルユーザモードはバックグラウンドプロセスが動作していないモードだ。シングルユーザモードでは、ファイル共有やSSHなどのネットワークサービスはもちろん、GUI(OS XではAqua)も動作しないためコンソール画面によるログインになる。このモードは、主にシステムのバックアップを取ったり、マルチユーザモードで立ち上がらなくなった場合の復旧といった目的で使用される。Mac OS Xの場合「Command + S」を押しながら起動するとシングルユーザモードとなる。シングルユーザモードで、システムを終了するには

shutdown -h now <return>

再起動するには

shutdown -r now <return>

とする。
なお、「Command + V」で起動するとVerboseモードとなり周辺機器が認識されていく過程などを表示できる。

(この項、以上)
[大津真/makotoo2@mac.com]
関連リンクhttp://www.o2-m.com/