マスター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.