前回はnamed.confの設定を行いました。
今回は、「zoneファイル」の設定を学んでいきます。
digやnslookupなどでも参照していたレコード情報もこのzoneファイルに記述します。
まず前回設定したnamed.confで記述したzoneファイル名を作成します。
なお、zoneファイルは「/var/named/chroot/var/named/」のディレクトリに作成します。
> touch /var/named/chroot/var/named/dns-book.com.zone
それでは、zoneファイルにゾーン情報を記述していきます。
$TTL 10800 dns-book.com. 1D IN SOA ns.dns-book.com. root.dns-book.com. ( 2018120101 ; serial 43200 ; refresh 5400 ; retry 3600000 ; expiry 3600 ) ; minimum dns-book.com. 1D IN NS ns.dns-book.com. ns.dns-book.com. 1D IN A 192.168.3.1 www.dns-book.com. 1D IN A 192.168.0.1 ftp.dns-book.com. 1D IN CNAME www.dns-book.com.
上記内容の説明は以下となります。
- 1行目:TTLは秒単位で記述し、上記では3時間と設定
- 2行目:SOAレコードを記述(書式については1.レコードについてを参照)
- 3行目:シリアルナンバーを記述
- 4行目:更新間隔を記述
- 5行目:再試行時間を記述
- 6行目:有効期間を記述
- 7行目:ネガティブキャッシュを記述
- 9~14行目:レコードを記述
zoneファイル中の";"はコメントアウトとなります。
2行目のSOAレコードにおける「root.dns-book.com.」については、ゾーン管理者をメールアドレスを記載します。
本来のメールアドレスは「root@dns-book.com.」と"@"でホストとドメインを分けますが、上記では"."で記述されています。
これは、"@"はzoneファイル内では省略形の書き方を行うために用いられるため、"."に置き換える必要があります。
3行目のシリアルナンバーとは、zoneァイルを作成または更新した日付(年月日番号)を記述します。番号はその日のリビジョンとし、更新するたびにインクリメントします。
この番号を更新し忘れると、スレーブサーバが情報が更新されていないと判断し、ゾーン転送要求を出さないので注意しましょう。
4行目の更新間隔は、スレーブサーバが定期的にマスターサーバのSOAレコードを参照するまでの間隔を記述します。
よって、スレーブサーバがいない場合は意味を持ちません。
5行目の再試行時間は、前述したスレーブサーバが定期的にマスターサーバのSOAレコードを参照する際に、ネットワークや何らかのトラブルにより参照できなかった場合、再度確認を行うまでの待機時間を記述します。
6行目の有効期間は、前述の定期的な更新チェックで何度リトライしてもうまくいかなかった場合、ここで記述した有効期間が過ぎると、そのゾーンを無効とし、スレーブサーバはこのゾーン情報を問合せしなくなります。
7行目のネガティブキャッシュは、もし問い合わせたレコードが存在しなかった場合、その情報をキャッシュし、ここで記述した時間が経過するまでは問い合わせを行わないようにします。
ネガティブキャッシュをあまり長く持ちすぎると、新規レコードを追加したときになかなか情報が引けない事態が起こってしまいます。
zoneファイルの記述が完了したら、ファイルのパーミッションの設定とシンボリックリンクの作成を行います。
> chmod 640 /var/named/chroot/var/named/dns-book.com.zone > chown root:named /var/named/chroot/var/named/dns-book.com.zone > ln -s /var/named/chroot/var/named/dns-book.com.zone /var/named/
最後にzoneファイルが正しく記述できているか構文チェックを行います。
> /usr/sbin/named-checkzone dns-book.com /var/named/dns-book.com.zone zone dns-book.com/IN: loaded serial 2018120101 OK
named-checkzoneを行うにはドメイン名とファイル名を引数として渡してあげます。
何も問題がなければ"OK"が返ってきます。
以上でBINDの基本的な設定が完了しました。
次回はBINDの起動・停止・再起動について学んでいきます。