内向きDNS Server - bindの設定

Last Modified: 2004.02.18

2. bindの設定
bindは、TurboLinux 7 Serverに付属している。
利用したバージョンは、bind-9.2.1-1, bind-utils-9.2.1-1, bind-devel-9.2.1-1。

1. rndcと鍵作成

rndcコマンドを利用すると、bindのキャッシュ情報を見たりキャッシュをリフレッシュする等の操作が可能。
不正な操作を防ぐため、/etc/named.confと/etc/rndc.confの間でが合っていないと操作できないようになっている。

以下のコマンドでを作成する。

 [root@linux /root]# cd /var/named
 [root@linux named]# dnssec-keygen -a hmac-md5 -b 512 -n HOST bind
 Kbind.+157+XXXXX

 [root@linux named]# ls
 Kbind.+157+XXXXX.key    Kbind+157+XXXXX.private

作成されたkeyファイルの内容は以下のようになっている。
^の上の部分がの内容。

 [root@linux named]# cat Kbind.+157+XXXXX.key
 bind. IN KEY 512 3 157 u18B5aJ2ocyeeF8QFZk1orUwynepaBXZjLi8rEs44UI1jgb96uE9bFGW wVzS8eT7zsXlctdMCYjsjCfRzG+Chw==
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 [root@linux named]# cat Kbind.+157+XXXXX.private
 Private-key-format: v1.2
 Algorithm: 157 (HMAC_MD5)
 Key: u18B5aJ2ocyeeF8QFZk1orUwynepaBXZjLi8rEs44UI1jgb96uE9bFGWwVzS8eT7zsXlctdMCYjsjCfRzG+Chw==
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2. /etc/rndc.conf

/etc/rndc.confファイルに、Kbind.+157+XXXXX.privateの鍵の内容を記述する。

 key "rndc-key" {                        <--- rndcのためのKey名の設定
     algorithm hmac-md5;                 <--- Keyのアルゴリズム
     secret "u18B5aJ2ocyeeF8QFZk1orUwynepaBXZjLi8rEs44UI1jgb96uE9bFGWwVzS8eT7zsXlctdMCYjsjCfRzG+Chw==";
                                         <--- Kbind.+157+XXXXX.privateの鍵の内容をここにコピー
 };

 options {
     default-key "rndc-key";             <--- Key名
     default-server 127.0.0.1;           <--- rndcを使うServer
     default-port 953;                   <--- rndcの利用するポート
 };

3. /etc/named.conf

/etc/named.confは、bindの主となる設定ファイル。
元からあったファイルを編集する。

 key "rndc-key" {                        <--- rndcのためのKey名の設定
     algorithm hmac-md5;                 <--- Keyのアルゴリズム
     secret "u18B5aJ2ocyeeF8QFZk1orUwynepaBXZjLi8rEs44UI1jgb96uE9bFGW wVzS8eT7zsXlctdMCYjsjCfRzG+Chw==";
                                         <--- Kbind.+157+XXXXX.keyファイルの鍵の内容をここにコピー
 };

 controls {
     inet 127.0.0.1 port 953 allow { localhost; } keys { "rndc-key"; }; 
                                         <--- Port953でlocalhostに対してrndcを許可
 };


 options {
     directory "/var/named";             <--- Zoneファイルの場所(初期状態のまま)
     auth-nxdomain yes;                  <--- 意味がわからんが、/var/messagesにエラーが残ったため指定
     allow-query {                       <--- このDNS Serverの利用を許す範囲
         127.0.0.1;                      <--- localhost
         172.25.0.0/24;                  <--- 172.25.0.X(Subnet 255.255.255.0)
     };
     allow-transfer {                    <--- スレーブDNSのアドレスを記述。内向きDNSの場合は必要ないが一応記載。
         127.0.0.1;                      <--- localhost
         172.25.0.0/24;                  <--- 172.25.0.X(Subnet 255.255.255.0)
 	};
 };
 
 zone "." {                              <--- ルートDNS情報(初期状態のまま)
     type hint;                          <--- ルートDNS情報であることを示す
     file "named.ca";                    <--- ファイル名
 };
 
 zone "0.0.127.in-addr.arpa" {           <--- Localhostの逆引きの設定
     type master;                        <--- Master DNS Serverであることを示す
     file "0.0.127.in-addr.arpa";        <--- ファイル名
 };
 
 zone "kkoba.com" {                      <--- kkoba.comの正引きの設定
     type master;                        <--- Master DNS Serverであることを示す
     file "kkoba.com";                   <--- ファイル名
 };
 
 zone "0.25.172.in-addr.arpa" {          <--- 172.25.0.Xの逆引きの設定
     type master;                        <--- Master DNS Serverであることを示す
     file "0.25.172.in-addr.arpa";       <--- ファイル名
 };

4. /var/named/named.ca

named.caは、ルートDNS情報を示す。
初めに用意されたファイルから、変更する必要なし。

5. /var/named/0.0.127.in-addr.arpa

0.0.127.in-addr.arpaは、localhostへの逆引き設定。
エディタで作成する必要がある。

 $TTL    1D                              <--- このファイルの情報は、他DNSに1Dayの間キャッシュされる。
 
 @    IN    SOA    linux.kkoba.com.    root.linux.kkoba.com. (
     2001102901                          <--- このファイルのシリアル番号。YYYYMMDDの後にシリアル番号を付加。
     3H                                  <--- Slave Serverは3Hourに1回Master Serverから情報を更新
     1H                                  <--- Slave Serverが情報更新に失敗したら1Hour後にRetry
     1W                                  <--- Slave Serverが1Weekの間情報更新に失敗したら、応答しなくなる
     1D )                                <--- 他DNSがクエリに失敗した時、1Dayの間失敗したことがキャッシュされる。
 
           IN    NS    linux.kkoba.com.  <--- NSは、Name Serverを示す
 1         IN    PTR   localhost.        <--- 1は、127.0.0.1を、PTRは逆引きを示す。127.0.0.1 = localhost
  • linux.kkoba.com.等、最後に.が付くのに注意。
  • INは、Internetを示す。実質的には全てのレコードに付ける。
  • SOAは、Start Of Authorityの略で、権限の開始を示す。
  • SOAレコードのlinux.kkoba.com.は、DNS Serverの名称。
  • SOAレコードのroot.linux.kkoba.com.は、連絡先メールアドレス。1つ目の.は@に置き換えられる。
  • Slave DNS Serverがないので、SOAレコードの内容は実際には殆ど参照されない。

6. /var/named/kkoba.com

kkoba.comは、kkoba.com内の正引き設定。
エディタで作成する必要がある。

 $TTL    1D
 
 @    IN    SOA    linux.kkoba.com.    root.linux.kkoba.com. (
     2001102901
     3H
     1H
     1W
     1D )
 
           IN    NS    linux.kkoba.com.  <--- Name Server
           IN    MX 10 linux.kkoba.com.  <--- Mail Server。10は優先順位。
 
 adsl      IN    A     172.25.0.1        <--- Aレコードは、実際のアドレスを示す
 linux     IN    A     172.25.0.2
 win2k     IN    A     172.25.0.3
 
 dns       IN    CNAME linux             <--- CNAMEレコードは、別名を示す
 www       IN    CNAME linux
 mail      IN    CNAME linux
 smtp      IN    CNAME linux
 pop       IN    CNAME linux
 imap      IN    CNAME linux
 ftp       IN    CNAME linux
  • Name Serverは、CNAMEレコードを使わないことが推奨。
  • MXレコードが複数ある場合は、優先順位の小さいものが利用される。

7. /var/named/0.25.172.in-addr.arpa

0.25.172.in-addr.arpaは、172.25.0.X内の逆引き設定。
エディタで作成する必要がある。

 $TTL    1D
 
 @    IN    SOA    linux.kkoba.com.    root.linux.kkoba.com. (
     2001102901
     3H
     1H
     1W
     1D )
 
           IN    NS    linux.kkoba.com.
 
           IN    PTR   kkoba.com.        <--- 解決するドメイン
           IN    A     255.255.255.0     <--- サブネットマスク
 
 1         IN    PTR   adsl.kkoba.com.   <--- 172.25.0.1の逆引き
 2         IN    PTR   linux.kkoba.com.
 3         IN    PTR   win2k.kkoba.com.

8. /etc/hosts

DNSの情報と/etc/hosts情報の不整合を防ぐため、localhost以外のエントリーはコメント化する。

 127.0.0.1      localhost.localdomain    localhost
 # 172.25.0.1   adsl.kkoba.com           adsl
 # 172.25.0.2   linux.kkoba.com          linux
 # 172.25.0.3   win2k.kkoba.com          win2k

9. /etc/resolv.conf

resolv.confファイルの内容を確認し、nameserverエントリを変更する。
search, domainは片方しか有効にならない。
searchはスペースまたはTABで区切って複数指定できるので、searchだけを記述した方が良いでしょう。
(詳細はKozupon Dot Cometcディレクトリのそうそうたる面々!参照。)

 search     kkoba.com                    <--- ホスト名検索時に省略できるドメイン名
 nameserver 127.0.0.1                    <--- Name Serverはlocalhost

10. /etc/nsswitch.conf

nsswitch.confファイルに、以下のエントリがあるか確認する。

 hosts:      files nisplus nis dns       <--- hostsファイル、nisplus, nis, dnsの順に名前解決

11. /etc/host.conf

host.confファイルの内容を確認する。

 order hosts,bind                        <--- hostsファイル、dnsの順に名前解決
 multi on                                <--- /etc/hostsのホスト名に複数のIPを割り当てる

12. bindを起動する

以下のコマンドで、bindを起動する。
再起動はrestart、停止はstop。

 [root@linux /root]# /etc/init.d/named start

13. /var/log/messagesの確認

以下のログが残っていれば、bindは無事起動したことがわかる。

 Mar  4 23:36:15 linux named[5737]: starting BIND 9.2.1 -u named
 Mar  4 23:36:15 linux named[5737]: using 1 CPU
 Mar  4 23:36:15 linux named[5739]: loading configuration from '/etc/named.conf'
 Mar  4 23:36:15 linux  3月  4 23:36:15 named: named startup succeeded
 Mar  4 23:36:15 linux named[5739]: no IPv6 interfaces found
 Mar  4 23:36:15 linux named[5739]: listening on IPv4 interface lo, 127.0.0.1#53
 Mar  4 23:36:15 linux named[5739]: listening on IPv4 interface eth0, 172.25.0.2#53
 Mar  4 23:36:15 linux named[5739]: command channel listening on 127.0.0.1#953
 Mar  4 23:36:15 linux named[5739]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2002030301
 Mar  4 23:36:15 linux named[5739]: zone 0.25.172.in-addr.arpa/IN: loaded serial 2002030301
 Mar  4 23:36:15 linux named[5739]: zone kkoba.com/IN: loaded serial 2002030301
 Mar  4 23:36:15 linux named[5739]: running


<Prev Top Next>
Copyright(C) 2001-2003 Katsuyuki Kobayashi.
このサイトへのリンクや引用時はメール頂戴
webmaster@kkoba.com