このページではLinuxサーバーで運用するDNSサーバーBIND/named正引きゾーンファイル記述方法について初心者向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
自宅内DNSサーバーの構築

DNSサーバーの構築

hostsファイルの設定

BINDについて(〜9.3.x)

BINDについて(9.7.x〜)

named.confの設定(〜9.3.x)

named.confの設定(9.7.x〜)

ゾーンファイルの書式

ゾーンファイルの省略方法

既存のゾーンファイル(〜9.3.x)

既存のゾーンファイル(9.7.x〜)

正引きゾーンファイルの作成

逆引きゾーンファイルの作成

設定ファイルの書式チェック

namedの起動とコントロール

namedの動作確認

ルーターとホストの設定

DNSSECについて

Ubuntu 10.04 LTS デスクトップ版のススメへようこそ

ゾーンファイルのテンプレートの作成

ここでは、 ドメイン名 として "obenri.com" を利用するための正引きのゾーンファイルを作成します。

これから作成するゾーンファイルを named で使用するには、対応するゾーン名でブートファイル "/etc/named.conf" に記述を追加しておく必要がありますが、その詳細については ブートファイルの詳細について(〜9.3.x) を参考にしてください。記述例は ブートファイルの記述例(〜9.3.x) にあります。

まず、 cp コマンド を使って、これから作成するゾーンファイルと類似した内容を持つファイルを所定の位置のコピーします。

WBEL3 及び CentOS3 の場合は、 "/var/named/localdomain.zone" localdomain.zoneの説明 を複製して "/var/named/obenri.com.zone" 作成し、これをnanoエディタ nanoエディタでファイルを開く で開きます。

[root@web1 root]# cd /var/named/Enter カレントディレクトリを移動します。 cdコマンドの説明
[root@web1 named]# lsEnter カレントディレクトリのファイルを一覧します。 lsコマンドの説明
data       localhost.zone  named.ca     named.local slaves
localdomain.zone named.broadcast named.ip6.local named.zero
[root@web1 named]# cp -p localdomain.zone obenri.com.zoneEnter
[root@web1 named]# ls -lEnter カレントディレクトリのファイルを一覧します。
drwxrwx---  2 named  named    4096 6月 17 08:11 data
-rw-r--r--  1 named  named     198 12月 24 2004 obenri.com.zone
-rw-r--r--  1 named  named     198 12月 24 2004 localdomain.zone
-rw-r--r--  1 named  named     195 12月 24 2004 localhost.zone
-rw-r--r--  1 named  named     415 12月 24 2004 named.broadcast
-rw-r--r--  1 named  named    2518 12月 24 2004 named.ca
-rw-r--r--  1 named  named     432 12月 24 2004 named.ip6.local
-rw-r--r--  1 named  named     433 12月 24 2004 named.local
-rw-r--r--  1 named  named     416 12月 24 2004 named.zero
drwxrwx---  2 named  named    4096 6月 17 08:11 slaves
 ↑"/var/named/obenri.com.zone"がカレントディレクトリに複製されました。
[root@web1 named]# nano obenri.com.zoneEnter

WBEL4及びCentOS4、CentOS5の場合は、 "/var/named/chroot/var/named/localdomain.zone" を複製して "/var/named/chroot/var/named/obenri.com.zone" として作成します。

そして編集しやすくするためにこのファイルの シンボリックリンク ln コマンドで "/var/named/obenri.com.zone" として作成し、これをnanoエディタ nanoエディタでファイルを開く で開きます。

右のリストはCentOS4、WBEL4の例です。
CentOS5 では、設定ファイルのパーミッションに仕様変更が行われていて、所有者が "root" になっていますので、 "named named" ではなく "root named" となります。
ファイルやディレクトリの所有者の基本については、 属性とパーミッション〜その1 を参照してください。
[root@web1 ~]# cd /var/named/chroot/var/named/Enter カレントディレクトリを移動します。 cdコマンドの説明
[root@web1 named]# lsEnter カレントディレクトリのファイルを一覧します。 lsコマンドの説明
data       localhost.zone  named.ca     named.local slaves
localdomain.zone named.broadcast named.ip6.local named.zero
[root@web1 named]# cp -p localdomain.zone obenri.com.zoneEnter
[root@web1 named]# ls -lEnter カレントディレクトリのファイルを一覧します。
合計 68
drwxrwx--- 2 named named 4096 8月 26 2004 data
-rw-r--r-- 1 named named 198 4月 28 2005 localdomain.zone
-rw-r--r-- 1 named named 195 4月 28 2005 localhost.zone
-rw-r--r-- 1 named named 415 4月 28 2005 named.broadcast
-rw-r--r-- 1 named named 2518 4月 28 2005 named.ca
-rw-r--r-- 1 named named 432 4月 28 2005 named.ip6.local
-rw-r--r-- 1 named named 433 4月 28 2005 named.local
-rw-r--r-- 1 named named 416 4月 28 2005 named.zero
-rw-r--r-- 1 named named 198 4月 28 2005 obenri.com.zone
drwxrwx--- 2 named named 4096 7月 27 2004 slaves
 ↑"/var/named/obenri.com.zone"がカレントディレクトリに複製されました。
[root@web1 named]# cd /var/named/Enter カレントディレクトリを移動します。
[root@web1 named]# ln -s /var/named/chroot/var/named/obenri.com.zoneEnter
 ↑カレントディレクトリにシンボリックリンクを作成します。

[root@web1 named]# nano obenri.com.zoneEnter


nanoでobenri.com.zoneのテンプレートを開く
nanoで"obenri.com.zone"のテンプレートを開く

cpコマンドで"obenri.com.zone"を作成するときに、オプションスイッチ "-p" を用いたのは、所有者と所有グループを既存の"localdomain.zone"と同じ、 "named named"(CentOS5の場合は"root named") にするためです。

もし "-p" を付けずにcpコマンドを実行すると、新規に作成される"obenri.com.zone"は、所有者、所有グループとも "root root" で作成されてしまいますから、後で chown コマンドで変更しなければなりません。

"-p" は、この手間と変更のし忘れを防ぐための手段です。

もちろん、nanoエディタを新規に開き、最初からタイプして"obenri.com.zone"を作成してもかまいませんが、この場合でも所有者、所有グループとも "root root" で作成されてしまいますから、後から同様に "named named"(CentOS5の場合は"root named") に変更する必要があります。場合によっては パーミッション も変更する必要がありますから注意してください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

ゾーンファイル"obenri.com.zone"の記述

作成した "obenri.com.zone" は、 WAN 空間で ダイナミックDNS によって行われる 名前解決 の内容に合わせて編集しなければなりません。

例えば次のように書き換えます。

対応するブートファイルの記述は A.obenri.comに対する正引きゾーンファイル設定へ(〜9.3.x) です。
1) $TTL 86400
2) @    IN   SOA   web1   tanaka (
        2005111401   ; Serial
        3H       ; Refresh
        15M       ; Retry
        1W       ; Expire
        1D )      ; Minimum

3)             IN   NS   web1
4)             IN   MX   10   mail
5)             IN   A    192.168.100.11
6) router         IN   A    192.168.100.1
7) web1          IN   A    192.168.100.11
8) mail          IN   A    192.168.100.11
9) www           IN   A    192.168.100.11

正引きゾーンファイル"obenri.com.zone"

このゾーンファイル中のTTLは、"$TTL"の値によりすべて86400秒(一日)が設定されていることになります $TTLによる省略ルール

また、ブートファイル上でのゾーン名は"obenri.com" A.obenri.comに対する正引きゾーンファイル設定へ(〜9.3.x) ですから、このゾーンファイル上の"@"は"obenri.com."で置き換えられます $ORIGINによる省略ルール @による省略ルール

更に、NSレコードと、その下二つのゾーン名は省略されていますが省略のルール 連続記述による省略ルール により、その直前のレコードであるSOAレコードのゾーン名"@"、すなわち"obenri.com."が設定されているものとみなされます。

また、 FQDN やメールアドレスを記述すべきところで、末尾に ".(ピリオド)" がないものは、後ろに".obenri.com."が補われます。 .(ピリオド)による省略のルールへ

従って、このゾーンファイルの省略部分を補うと次のようになります。

2) obenri.com.  IN   SOA   web1.obenri.com.   tanaka.obenri.com. (
        2005111401   ; Serial
        3H       ; Refresh
        15M       ; Retry
        1W       ; Expire
        1D )      ; Minimum

3) obenri.com.      86400   IN   NS   web1.obenri.com.
4) obenri.com.      86400   IN   MX   10   mail.obenri.com.
5) obenri.com.      86400   IN   A    192.168.100.11
6) router.obenri.com.   86400   IN   A    192.168.100.1
7) web1.obenri.com.    86400   IN   A    192.168.100.11
8) mail.obenri.com.    86400   IN   A    192.168.100.11
9) www.obenri.com.    86400   IN   A    192.168.100.11

正引きゾーンファイル(非省略)"obenri.com.zone"

1) $TTLの設定 $TTLについて

DNSサーバー の動作負荷を減らすには大きな値を設定したほうが好ましいのですが、通常一日(86400秒)より大きな値をとっても大した違いはありません。

逆に小さな値を設定しても、実用上あまりメリットはありません。常識的な値である "86400" で構いません。

2) SOAレコードの設定 SOAレコードの書式について

「ゾーン名( ドメイン名 )"obenri.com"についてはDNSサーバー "web1.obenri.com" が権威ある名前解決を行い、その管理者のメールアドレスは "tanaka@obenri.com" である SOAレコード中のメールアドレスの記述方法。」

という意味になります。

LAN で使用するDNSサーバーですから馬鹿正直に記述する必要はありませんが、後々本格的なDNSサーバーを構築することを考えて、それなりに正しく記述しておきましょう。

"Serial"から"Minimum"までの値はあまり深く考える必要はありません。常識的なパラメータを設定しておきましょう。詳しい説明は SOAレコードの書式について をご覧ください。

3) NSレコードの設定 NSレコードの書式について

「ゾーン名(ドメイン名)"obenri.com"より構成されるFQDNは、DNSサーバー "web1.obenri.com" が権威を持って名前解決を行う。」

という宣言の設定です。

ここで設定するDNSサーバーのFQDN"web1.obenri.com"は、別途Aレコード Aレコードの書式について でIPアドレスを指定する必要があります。

通常 ホスト機 はDNSサーバーを参照するとき、そのDNSサーバーのFQDNではなく IPアドレス を指定して参照します resolv.confの設定(WBEL3) resolv.confの設定(CentOS3) resolv.confの設定(WBEL4) resolv.confの設定(CentOS4) resolv.confの設定(CentOS5) 。従ってここでは必ず

「逆引きで名前解決可能なFQDNをDNSサーバー名として指定する。」

必要があります。

つまり、例えば逆引きの設定が"192.168.100.11→web1.obenri.com"となっていれば、"web1.obenri.com"をDNSサーバー名とします。

実際には、逆引きのレコードを持たない バーチャルホスト である"www.obenri.com"を指定しても動作はします。しかしそれはDNSサーバーの作法としては正しくありません。

もともとWAN空間に設置される 「権威あるDNSサーバー」 は、必ず固定の グローバルIPアドレス が割り当てられた ホスト でなければならず WAN空間へ設置DNSサーバーの条件とは 、DNSサーバーとして登録するFQDNはそのグローバルIPアドレスから逆引きができなければなりません。

従って、ここはきちんとルールに合わせて設定しましょう。

という訳ですから、この部分の設定は逆引きゾーンファイルの設定と合わせる必要があります web1.obenri.comに対する逆引きの設定 ので注意してください。

4) MXレコードの設定 MXレコードの書式について

「ゾーン名(ドメイン名)"obenri.com"を利用する メールサーバー は、 "mail.obenri.com" である。」

という宣言の設定です。

ここで設定するメールサーバーのFQDNは、別途Aレコード Aレコードの書式について でIPアドレスを指定する必要があります。

二台目のメールサーバーは普通バックアップサーバーですから、個人で運用するメールサーバーならば一台だけで充分です。通常は複数のMXレコードを設定する必要はありません。

ダイナミックDNSで複数のMXレコードを設定する場合は、Priority値の順番を合わせて複数の設定を行ってください。

一方、ダイナミックDNSでMXレコード利用できない場合、または利用できる場合でもメールサーバーを運用しない場合は設定は不要です。

5) "obenri.com"に対するAレコードの設定 Aレコードの書式について

「FQDN"obenri.com"はIPアドレス"192.168.100.11"に正引きの名前解決をされる。」

という設定です。

"obenri.com"はドメイン名ですが、ダイナミックDNS側の仕組みによっては、ドメイン名そのものがFQDNとして正引きで名前解決されるケースがあります。

私的DynamicDNS(MyDNS.JP) はそのケースに該当しますので、このAレコードを設定する必要がありますが、ドメイン名そのものをFQDNとみなしていないダイナミックDNSを利用する場合はこの設定は不要です。

6) "router.obenri.com"に対するAレコードの設定 Aレコードの書式について

「FQDN"router.obenri.com"はIPアドレス"192.168.100.1"に正引きの名前解決をされる。」

という設定です。

これはWAN空間の名前解決とは全く無関係の任意の設定です。「こういう使い方もできる」という例です。

これは ルーター のIPアドレスである"192.168.100.1"にFQDN"router.obenri.com"を割り当てているだけの設定ですが、これによってLAN内の任意のホスト機から、 Webブラウザ でルーターの設定画面を呼び出すとき、

"http://192.168.100.1/"

だけではなく、

"http://router.obenri.com/

でも可能になるわけです。

例えばその他にも、固定の プライベートIPアドレス を割り当てている クライアント機 や無線LANのアクセスポイント、ネットワークプリンタなどに同様の設定を行えば、同じようにIPアドレスだけではなくFQDNでアクセスすることができるようになります。

もちろん必要がなければ設定しなくても構いません。

7) 8) 9) その他のFQDNに対するAレコードの設定 Aレコードの書式について

「FQDN"web1.obenri.com"、"mail.obenri.com"、"www.obenri.com"はIPアドレス"192.168.100.11"に正引きの名前解決をされる。」

という設定です。

前に説明した 3) NSレコードと、 4) MXレコードで設定したFQDNに対しても忘れずに設定を行ってください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


NEC「得選街」
このページの先頭へ↑

"/var/named/obenri.com.zone"のサンプル

以上の内容で作成した

"obenri.com.zone"

は、こちらをクリックすると表示できます。

この テキスト ファイルには余分な文字は入っていませんから、開いてコピー&ペーストで使用するか、 ダウンロード して使用してください。

もちろん、書き換えが必要な部分は適宜書き換えてください。

記述が終わったら"obenri.com.zone"を保存し、nanoエディタを終了してください nanoエディタでファイルを閉じる 。 また、"obenri.com.zone"を保存したら必ずパーミッションを確認してください。

右のリストはCentOS4、WBEL4の例です。
CentOS5 では、設定ファイルのパーミッションに仕様変更が行われていて、所有者が "root" になっていますので、 "named named" ではなく "root named" となります。
ファイルやディレクトリの所有者の基本については、 属性とパーミッション〜その1 を参照してください。
[root@web1 named]# ls -l obenri.com.zoneEnter lsコマンドの説明
-rw-r--r--  1 named  named     274 12月 16 19:19 obenri.com.zone
[root@web1 named]#

パーミッションと所有者、所有グループがこれと異なっている場合は、 chmod chown コマンド を使って修正してください。

また、複数の ドメイン名 を利用するときには、同じ要領で別のゾーンファイルを作成すればよいのですが、このサンプルファイルは、

「ドメイン名の情報はブートファイルの"zone"の記述を参照し、ゾーンファイル中にはドメイン名を記述しない。」

DNSサーバーの構築に、
とても役に立った一冊です

という形式になってますから、ブートファイルに、

zone "ugegege.com" IN {
    type master;
    file "ugegege.com.zone";
    allow-update { none; };
};

という記述があれば、 ホスト名 の部分だけを修正してファイル名を "ugegege.com.zone" で保存してパーミッションの設定を行えばOKです。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


NEC「得選街」
このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System