BIND へのゾーンファイル設定方法

カテゴリー:Linux OS, Linux VPS, Linux 専用サーバー タグ:, ,
 

本記事では、CentOS/RedHat Enterprise Linux 環境において、インストールされたBIND DNSサーバーにお客様がお持ちのドメインを運用するために必要なゾーンファイル設定方法を解説します。
ゾーンファイルとは、そのドメインのホスト情報を表記するものでこの設定無しにドメイン運用は行なえないものです。


※本記事では
参考記事: BIND(DNSサーバー)インストールについて CentOS4.x
BIND(DNSサーバー)インストールについて RHEL ES 4.x
BIND(DNSサーバー)インストールについて CentOS5.x/RHEL5.x
を参考に構築されたBIND コンテンツサーバー環境を対象としています。
上記参考記事と異なる方法で構築された環境には本記事内容が適用できない場合があります、ご了承くださいませ。

1. 本記事作成に利用した環境

参考記事をもとにBIND コンテンツサーバーが構築されている CentOS 5.2

2. 作業のまえに

※ご利用サーバーに ssh を利用してログインし、管理者権限(root)となります。
コマンドプロンプトが $ から # に変更されている事を確認してください。

参考記事: root 権限取得方法

3. 設定ドメイン情報の整理

このBIND コンテンツサーバーで運用したいドメインのゾーンファイルを作成します。
本記事では例として以下のドメイン設定を目標とします。

ドメイン名: test.com (お客様のドメイン名に読み替えてください)
サーバーIPアドレス: xxx.xxx.xxx.xxx (お客様サーバーのIPアドレスに読み替えてください)
設定ホスト: dns1.test.com, dns2.test.com, www.test.com, ftp.test.com, mail.test.com

4. ゾーンファイル作成

/var/named/chroot/var/named/test.com.zone を作成します。
※「test.com」をお客様ドメインに、「xxx.xxx.xxx.xxx」をお客様サーバーIPに読み替えて記述してください。
※ドメイン名を記述する際、ドメインの後に必ず 「.」ドット を付け加えてください。「.」を付け忘れると誤った設定が読み込まれてしまいます。
※緑文字の箇所は特に注意してください。
① : ゾーンファイル毎に、そのドメインゾーン情報を管理するプライマリネームサーバー名を記述します。
② : このゾーンファイルを管理する方のメールアドレスを記述します。この際、メールアドレス表記の@を 「.」ドット に置き換える必要があります。例では admin@userdomain.com を記述しています。
③ : このゾーンファイルを管理するシリアルナンバーです。規則としてはファイル作成日を基に yyyymmddnn という形式が主に使われます。BINDはこの数値をもとにゾーン情報を管理しますので修正など行なった場合は必ず記載されていた数値よりも大きな値に変更します。

[root@ds00000 ~]# vi /var/named/chroot/var/named/test.com.zone
$TTL 86400  ; 1 day
@           IN   SOA dns1.test.com. admin.userdomain.com. (
            2009031201 ; serial
            10800 ; refresh (3 hours)
            3600 ; retry (1 hour)
            1209600 ; expire (2 weeks)
            86400 ; minimum (1 day)
            )

test.com.      IN   NS   dns1.test.com.
test.com.      IN   NS   dns2.test.com.
test.com.      IN   A    xxx.xxx.xxx.xxx
dns1.test.com.   IN   A    xxx.xxx.xxx.xxx
dns2.test.com.   IN   A    xxx.xxx.xxx.xxx
www.test.com.   IN   A    xxx.xxx.xxx.xxx
ftp.test.com.    IN   A    xxx.xxx.xxx.xxx
mail.test.com.   IN   A     xxx.xxx.xxx.xxx
test.com.      IN   MX   10 mail.test.com.

5. ファイル所有権の変更

作成したゾーンファイルをBIND がファイルを正しく読み込めるよう、BIND 起動ユーザーである named に所有権を変更します。

[root@ds00000 ~]# chown named.named /var/named/chroot/var/named/test.com.zone

6. ゾーンファイル構文チェック

作成したゾーンファイルが正しく記述されているかをチェックするため、
/usr/sbin/named-checkzone ドメイン名 /var/named/chroot/var/named/ゾーンファイル名
を実行します。

[root@ds00000 ~]# /usr/sbin/named-checkzone test.com /var/named/chroot/var/named/test.com.zone
正しく記述されている場合
[root@ds00000 ~]# test.com.zone
zone test.com/IN: loaded serial 2009031201
OK

記述に誤りがある場合、例として xxx.xxx.xxx.xxx をIPアドレスに書き換えていなかった場合
[root@ds00000 ~]# /usr/sbin/named-checkzone test.com /var/named/chroot/var/named/test.com.zone
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:12: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:13: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:14: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:15: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:16: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
dns_rdata_fromtext: /var/named/chroot/var/named/test.com.zone:17: near ‘xxx.xxx.xxx.xxx’: bad dotted quad
zone test.com/IN: loading master file /var/named/chroot/var/named/test.com.zone: bad dotted quad

7. BIND設定ファイルへのゾーンファイル指定

作成したゾーンファイルをBIND設定ファイル named.conf 最終行に追記します。

[root@ds00000 ~]# vi /var/named/chroot/etc/named.conf
zone “test.com” IN {
    type master;
    file “test.com.zone”;
};

8. 設定ファイル構文チェック

ゾーンファイル情報を追記した named.conf の構文が正しいかチェックします。

[root@ds00000 ~]# /usr/sbin/named-checkconf /var/named/chroot/etc/named.conf
[root@ds00000 ~]# ← 正しく記述されている場合は何も表示されず、コマンドプロンプトが表示されます。

エラーが指摘された場合、その箇所を修正します。

9. サービス起動

以上でドメイン運用の準備が整いましたので BIND を起動(再起動)します。

[root@ds00000 ~]# service named start
Starting named:          [ OK ]

上記「5」での所有権変更を行なっていなかった場合、そのドメインのみ読み込まずにBINDが再起動してしまうことがありますので上記プロセス開始メッセージの確認だけではなく、プロセスの存在と /var/log/messages も併せて確認します。

[root@ds00000 ~]# ps waux | grep named← named プロセスの検索
named  27226 0.0 0.2 47900 2868 ?    Ssl 11:52 0:00 /usr/sbin/named -u named -t /var/named/chroot
[root@ds00000 ~]# less /var/log/messages | grep test.com← BINDがゾーンファイルを読み込んでいるかを確認
Mar 12 11:44:02 サーバーホスト名 named[3404]: zone test.com/IN: loaded serial 2009031201← 正しく読み込まれている場合

10. レジストラ設定

以上でサーバー側の設定が完了しました。
最後に、ドメインを取得されたレジストラでの設定を行ないます。「4」で指定しました dns1.test.com と xxx.xxx.xxx.xxx、dns2.test.com と xxx.xxx.xxx.xxx 2つのネームサーバーホストとIPアドレスの組み合わせをレジストラに登録します。
このレジストラでの登録作業はお客様ご利用のレジストラにより方法が異なりますので方法が不明な場合はレジストラへお問い合わせください。

11. サービス起動

以上で作業が完了しましたので、root セッションを終了します。

[root@ds00000 ~]# exit
[ユーザーID@ds00000 ~]# ← ユーザーIDが root から変更されていることを確認してください。