Tips記事
» 2002年12月11日 19時22分 UPDATE

セカンダリDNSを設定したい

[木田佳克,ITmedia]

 マスターDNSと並び、ドメインネームの参照を支えるセカンダリDNSサーバ。このセカンダリサーバの設定には、ちょっとした設定ポイントがある。ここでは、BINDを例に挙げ、具体的な設定手順を解説しよう。

 まず最初は、BINDの設定ファイル内にセカンダリのゾーン定義を行うことから始めよう。

# vi /etc/named.conf
〜中略〜
        zone "imafxxx.jp" {
                type slave;
                file "slave/ex.imafxxx.jp.zone";
               masters {
                61.205.xxx.175;
                       };
        };

 上記設定は、zoneに続く「"」間にドメイン名を記述し、次の「type slave」でセカンダリを明示、「file」に続くファイル名がマスターDNSから参照されたゾーンファイルが書き込まれる名称になる(任意名称で可)。

 そして、最後には「master」に続く囲いでマスターDNSサーバのIPアドレスを指定する。

 「file」に続くゾーンファイルの保存先は、optionの「directory」行で指定されている。RPMパッケージの場合には標準で/var/named/ディレクトリに指定されているはずだ。

# less /etc/named.conf
〜中略〜
options {
        directory "/var/named";
〜以下略〜

 なお、注意点としてはBINDがデーモン実行されている実行ユーザー権と、セカンダリDNSのゾーンファイル書き込みが行われるディレクトリオーナーが一致している必要性があることだ。新たにセカンダリ用のディレクトリを作成した際には「chown」コマンドでオーナーを指定しておこう(ここではユーザー「named」の場合)。

# mkdir /var/named/slave
# chown named /var/named/slave

 namedの実行ユーザーが何であるかを確認するためには、現在実行されているnamedのプロセスを見ればよい。「-u named」などとオプションが見つかれば、ユーザー「named」であることが分かる。また、実行ユーザー設定は、以下のように起動スクリプト内に記述されている(ここではRPMパッケージの例)。

# ps ax|grep named
 543 ?    S   0:12 named -u named

---------

# cat /etc/rc.d/init.d/named

〜中略〜

start() {
# Start daemons.
if [ -n "`/sbin/pidof named`" ]; then
echo -n $"$prog: already running"
return 1
fi
echo -n $"Starting $prog: "
if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
OPTIONS="${OPTIONS} -t ${ROOTDIR}"
fi
# Since named doesn't return proper exit codes at the moment
# (won't be fixed before 9.2), we can't use daemon here - emulate
# its functionality
base=$prog
named -u named ${OPTIONS}

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ