bind9.x

更新日2024-01-26 (金) 15:30:491

bind9.xには必要なため、先にopensslをインストールする。

ここから bindはDownloadしてくる。

インストール

$ tar zxvf bind-9.2.3.tar.gz
$ cd bind-9.2.3
$ ./configure --with-openssl=/usr/local/ssl --prefix=/usr/local
$ make
$ su
# make install

設定

/usr/local/etc/named.confに

// Config file for BIND 9

acl "localnet" {
        192.168.10.0/24;
        127.0.0.1;
};

options {
        directory "/var/named";
        auth-nxdomain no;     <---#auth-nxdomain' option is now 'no'というエラーが出るときなどは明示的にyesにする
        allow-transfer{       <---指定ホスト以外にzone転送を禁止(プライマリにはセカンダリを指定)
                61.122.216.211;
        };

};

view "local" {
        match-clients { "localnet"; };
        recursion yes;
        zone "ism.ne.jp" {
                type master;
                file "named.hosts";
	 	notify yes;  <--サーバのデータベースが変更になったときセカンダリに通知する。
        };
        zone "10.168.192.in-addr.arpa" {
                type master;
                file "named.rev";
	 	notify yes;
        };
        zone "." {
                type hint;
                file "root.cache";
        }; 
        zone "0.0.127.in-addr.arpa" {
                type master;
                file "named.local";
        };
};

view "world" {
        match-clients { any; };
        recursion yes;
        zone "ism.ne.jp" {
                type master;
                file "named.hosts";
	 	notify yes;
        };
        zone "10.168.192.in-addr.arpa" {
                type master;
                file "named.rev";
	 	notify yes;
        };
        zone "." {
                type hint;
                file "root.cache";
        };
};

/var/named/named.hostsに

;
; vvine26rc1.ism.ne.jp  /var/named/named.hosts
;
$TTL 1D
@ IN    SOA     vvine26rc1.ism.ne.jp. root.vvine26rc1.ism.ne.jp. (
                1               ; Serial   (1)
                10800           ; Refresh  (2)
                1800            ; Retry    (3)
                3600000         ; Expire   (4)
                86400 )         ; Minimum  (5)
        NS      vvine26rc1.ism.ne.jp.
;       NS      ns01.mctv.ne.jp.
        MX   10 vvine26rc1.ism.ne.jp.
@       A       192.168.10.21
vvine26rc1      A        192.168.10.21
ax4bpro         IN A     192.168.10.24
                IN MX    5 ax4bpro.ism.co.jp.
p4t             IN A     192.168.10.13
                IN MX    5 vp4t.ism.co.jp.
barpro3         IN A     192.168.10.253

(1)シリアル番号
増加していればゾーン転送を開始します。西暦(4けた)+月(2けた)+日 (2けた)+インクリメント値(2けた)が使用されることが多く、32bit値で 格納されるため最大値は「4294967295」になります。この値を超えるとゾーン データの読み込みに失敗するため、注意が必要です。

(2)リフレッシュ間隔
マスターのゾーンデータの更新確認を行う間隔を指定します。間隔が長過ぎる と更新にタイムラグが発生し、短過ぎると頻繁にSOA問い合わせが発生するため 、大抵は数時間程度に設定します。

(3)リトライ間隔
ゾーン転送に失敗した場合、「リトライ間隔」分の間を置き、再度ゾーン 転送を試みます。通常は「リフレッシュ間隔」より短い値を指定します。

(4)ゾーンの有効期限
マスターとのゾーン転送が滞ってしまい、スレーブに保存されたデータが 「ゾーンの有効期限」を過ぎた場合は、そのゾーンに対する問い合わせ要求 に返答しなくなります。古い内容で返答するより、返答そのものをしない方 がいいという考えに基づいています。多くの場合は1週間程度を指定しますが、 マスターとの接続状況によっては長めに取ることもあります。

(5)ネガティブキャッシュTTL
ドメインが存在しないといった、失敗した結果をキャッシュする時間

/var/named/named.revに

;
; vvine26rc1.ism.ne.jp  /var/named/named.rev
;
$TTL 1D
@ IN    SOA     vvine26rc1.ism.ne.jp. root.vvine26rc1.ism.ne.jp. (
                1               ; Serial
                10800           ; Refresh
                1800            ; Retry
                3600000         ; Expire
                86400 )         ; Minimum
        NS      vvine26rc1.ism.ne.jp.
;        NS      ns01.mctv.ne.jp.
21       PTR     vvine26rc1.ism.ne.jp.
13       PTR     p4t.ism.ne.jp.
24       PTR     ax4bpro.ism.ne.jp.
253      PTR     barpro3.ism.ne.jp.

/var/named/named.localに

;
; vvine26rc1.ism.ne.jp  /var/named/named.local
;
$TTL 3D
@ IN    SOA     vvine26rc1.ism.ne.jp. root.vvine26rc1.ism.ne.jp. (
                1               ; Serial
                10800           ; Refresh
                1800            ; Retry
                3600000         ; Expire
                86400 )         ; Minimum
        NS      vvine26rc1.ism.ne.jp.
1       PTR     localhost.

/var/named/root.cacheに

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  "
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    Jan 29, 2004
;       related version of root zone:   2004012900
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; operated by VeriSign, Inc.
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
;
; operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
;
; operated by ICANN
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

を作成する。

起動および確認

ユーザnamed,グループnamedがあること確認して

/usr/local/sbin/named -u named

で起動する

ただし先に/usr/local/var/runのデイレクトリを作成する必要がある作成さいないと エラー1のようなエラーで起動しない。

# mkdir -p /usr/local/var/run
# chown -R named.named /usr/local/var/run

エラー1:
/var/log/messages

Mar 13 13:36:56 vvine26rc1 named[10509]: couldn't open pid  file '/usr/local/var/run/named.pid': No such file or directory
Mar 13 13:36:56 vvine26rc1 named[10509]: exiting (due to early fatal error)

動作確認

$ nslookup
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
> server 192.168.10.21
Default server: 192.168.10.21
Address: 192.168.10.21#53
> p4t.ism.ne.jp
Server:         192.168.10.21
Address:        192.168.10.21#53

Name:   p4t.ism.ne.jp
Address: 192.168.10.13

www.matsusaka-u.ac.jp
Server:         192.168.10.21
Address:        192.168.10.21#53

Non-authoritative answer:
Name:   www.matsusaka-u.ac.jp
Address: 192.244.75.3

rndcで使用するkey作成

#/usr/local/sbin/dnssec-keygen -a hmac-md5 -r /dev/urandom -b 512 -n user bind

Krndc.+157+29661.key、Krndc.+157+29661.private が作成される

Krndc.+157+29661.key
rndc. IN KEY 0 2 157 (公開key)

Krndc.+157+29661.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: (秘密Key)
# cd /usr/local/etc
# /usr/local/sbin/rndc-confgen > rndc.conf

/usr/local/etc/rndc.confnに秘密鍵をsecretのところに書き込む

# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "(ここに秘密Keyを入れる)";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "yrQR7058dZDMOJA5CxeRrg==";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

/usr/local/etc/named.confの最後にに追加

key "rndc-key" {
      algorithm hmac-md5;
      secret "ここに公開Keyを入れる";
};

controls {
      inet 127.0.0.1 port 953
              allow { 127.0.0.1; } keys { "rndc-key"; };
};

rndcの確認

#/usr/local/sbin/named -u named

で起動後

# /usr/local/sbin/rndc stop

で終了を確認

DNSのキャッシュ

キャッシュ時間の確認

$ dig ism.xxxx.co.jp

; <<>> DiG 9.2.1 <<>> ism.xxxx.co.jp
;; global options:  printcmd
;; Got answer:

(略)

;; ANSWER SECTION:
ism.xxxx.co.jp.      1800    IN      A       xxx.xxx.189.223
                     ^^^^この時間がリフレッシュされるまでの時間(秒)

少し経って再度実行

$ dig ism.xxxx.co.jp

;; ANSWER SECTION:
ism.xxxx.co.jp.      1563    IN      A       xxx.xxx.189.223
                     ^^^^時間が減っている

強制的にキャッシュをクリアするには

# rndc flush

セカンダリサーバの設定

named.confだけ、以下のようにする。(追加する)
root.cache、named.localはプリマリと同じようにする。先に作成しておく。

うまく起動すると/var/named/の下にism.ne.jp、10.99.99.0.rev
というファイルが作成される。

named.conf

// Config file for BIND 9セカンダリ
acl "localnet" {
        10.99.99.0/24;
        127.0.0.1;
};
options {
        directory "/var/named";
        auth-nxdomain no;
};
view "local" {
        match-clients { "localnet"; };
        recursion no;
        zone "ism.ne.jp" {
                type slave;  <---変更点
                file "ism.ne.jp";
                masters {    <---変更点
                10.99.99.125;
                };
        };
        zone "99.99.10.in-addr.arpa" {
                type slave;  <---変更点
                file "10.99.99.0.rev";
                masters {    <---変更点
                10.99.99.125;
                };
        };
        zone "." {
                type hint;
                file "root.cache";
        };
        zone "0.0.127.in-addr.arpa" {
                type master;
                file "named.local";
        };
};
view "world" {
        match-clients { any; };
        recursion no;
        zone "ism.ne.jp" {
                type slave;   <---変更点
                file "ism.ne.jp";
                masters {     <---変更点
                10.99.99.125;
                };
        };
        zone "99.99.10.in-addr.arpa" {
                type slave;   <---変更点
                file "10.99.99.0.rev";
                masters {     <---変更点
                10.99.99.125;
                };
        };
        zone "." {
                type hint;
                file "root.cache";
        };
};

mastersオプションは、スレーブのnamedに権限のあるゾーン情報を要求するための
IPアドレス(マスターのIPアドレス)

起動及び確認

# /usr/local/sbin/named -u named 
# tail  /var/log/messages
Mar 17 16:09:47 vvine26r3dnssec named[1208]: transfer of '99.99.10.in- addr.arpa/IN' from 10.99.99.125#53: end of transfer
Mar 17 16:09:47 vvine26r3dnssec named[1208]: zone 99.99.10.in-addr.arpa/IN: sending notifies (serial 2)
Mar 17 16:09:47 vvine26r3dnssec named[1208]: received notify for zone '99.99.10.in-addr.arpa'
Mar 17 16:09:47 vvine26r3dnssec named[1208]: zone 99.99.10.in-addr.arpa/IN: transferred serial 2
Mar 17 16:09:47 vvine26r3dnssec named[1208]: transfer of '99.99.10.in-addr.arpa/IN' from 10.99.99.125#53: end of transfer
Mar 17 16:09:47 vvine26r3dnssec named[1208]: zone 99.99.10.in-addr.arpa/IN: sending notifies (serial 2)
Mar 17 16:09:47 vvine26r3dnssec named[1208]: zone ism.ne.jp/IN: transferred serial 2
Mar 17 16:09:47 vvine26r3dnssec named[1208]: transfer of 'ism.ne.jp/IN' from 10.99.99.125#53: end of transfer
Mar 17 16:09:47 vvine26r3dnssec named[1208]: zone ism.ne.jp/IN: sending notifies (serial 2)
Mar 17 16:09:48 vvine26r3dnssec named[1208]: received notify for zone 'ism.ne.jp'

プライマリ側のシリアルを上げプロセスにHUP信号を送ったときの
セカンダリ側のログ(/var/log/messages)
これで、セカンダリ側に新しい情報が通知されたことが確認できる。
プライマリのIPは10.99.99.125

Mar 18 09:13:57 vvine26r3dnssec named[977]: received notify for zone '99.99.10.in-addr.arpa'
Mar 18 09:13:57 vvine26r3dnssec named[977]: zone 99.99.10.in-addr.arpa/IN: transferred serial 4
Mar 18 09:13:57 vvine26r3dnssec named[977]: transfer of '99.99.10.in-addr.arpa/IN' from 10.99.99.125#53: end of transfer
Mar 18 09:13:57 vvine26r3dnssec named[977]: zone 99.99.10.in-addr.arpa/IN: sending notifies (serial 4)
Mar 18 09:13:57 vvine26r3dnssec named[977]: received notify for zone 'ism.ne.jp'
Mar 18 09:13:57 vvine26r3dnssec named[977]: received notify for zone 'ism.ne.jp'
Mar 18 09:13:57 vvine26r3dnssec named[977]: received notify for zone '99.99.10.in-addr.arpa'
Mar 18 09:13:57 vvine26r3dnssec named[977]: received notify for zone '99.99.10.in-addr.arpa'
Mar 18 09:13:57 vvine26r3dnssec named[977]: zone ism.ne.jp/IN: transferred serial 4
Mar 18 09:13:57 vvine26r3dnssec named[977]: transfer of 'ism.ne.jp/IN' from 10.99.99.125#53: end of transfer
Mar 18 09:13:57 vvine26r3dnssec named[977]: zone ism.ne.jp/IN: sending notifies(serial 4)
Mar 18 09:13:58 vvine26r3dnssec named[977]: received notify for zone 'ism.ne.jp'

同一ネットワークに2つのドメイン

既存のドメインにabc.ne.jpを追加する。

named.confにゾーンファイルの追加を追加する。新しいゾーンファイルを/var/named に追加。逆引きは同じファイルに記述する。

named.confに追加

        zone "abc.ne.jp" {
                type master;
                file "abc.hosts";
                notify yes;
        };
 

/var/named/abc.hosts

;
; vvine26r3.abc.ne.jp  /var/named/abc.hosts
;
$TTL 1D
@ IN    SOA     vvine26r3.abc.ne.jp. root.vvine26r3.abc.ne.jp. (
                4               ; Serial
                600             ; Refresh
                1800            ; Retry
                3600000         ; Expire
                86400 )         ; Minimum
        NS      vvine26r3.abc.ne.jp.
;        NS      vvine26r3dnssec.ism.ne.jp.
        MX      10 vvine26r3.abc.ne.jp.
@       A       10.99.99.125
vvine26r3               A     10.99.99.125
abc1                    IN A     10.99.99.200
                        IN MX    5 abc1.abc.ne.jp.
abc2                    IN A     10.99.99.228
                        IN MX    5 abc2.abc.ne.jp.
mail                    IN A     10.99.99.229
                        IN MX    5 mail.abc.ne.jp.

/var/named/10.99.99.0.revに追加する。

128      PTR     vvine26r3dnssec.ism.ne.jp.
127      PTR     uso5004.ism.ne.jp.
(以下追加)
; abc.ne.jp
200      PTR     abc1.abc.ne.jp.
228      PTR     abc2.abc.ne.jp.
229      PTR     mail.abc.ne.jp.

エラーその他

/var/log/var/log/messagesに

lame server on '120.4.249.61.in-addr.arpa' (in '4.249.61.in-addr.arpa'?): 203.240.193.11#53: 1 Time(s)

のようなエラーが出るこれはIPアドレスの逆引き情報を持っているはず
のDNS Serverが、権限がないと返答する。
そのDNS Serverの逆引きが間違えているか、DNS情報の伝播が遅れている。

この場合、エラーを出さないようにnamed.confに

// 逆引きのエラーをログらないようにするための設定
options {
        directory "/var/named";
}; 

logging {
category lame-servers { null; };
};

をこのようにoptionsの後に追加する。

同じようなエラーで

lame server on 'ホスト名' (in 'ホスト名'?): [DNS ServerのIPアドレス].53 'DNS Server名'
ホスト名の正引き情報を持っているはずのDNS Serverが、権限がないと返答する。
そのDNS Serverの正引き設定が間違えているか、DNS情報の伝播が遅れている。

登録情報の全てのリストが出ないことをチェック
Windowsのnslookコマンドでそのサーバのlistが取れるかチェック

$ nslookup

> ls -d abc-u.ac.jp
[sakura.abc-u.ac.jp]
 abc-u.ac.jp.             SOA    sakura.abc-u.ac.jp root.sakura.abc-u.ac.jp.  (200204182 10800 1800 3600000 86400)
 abc-u.ac.jp.             NS     ns01.mctv.ne.jp
 abc-u.ac.jp.             NS     sakura.abc-u.ac.jp
 abc-u.ac.jp.             MX     10   mail.abc-u.ac.jp
 abc-u.ac.jp.             A      192.168.10.3
 botan                          A      192.168.10.12
 mail                           A      192.168.10.5
 mail                           MX     5    mail.abc-u.ac.jp
 mail2                          A      192.168.10.14
 mail2                          MX     5    mail2.abc-u.ac.jp
 maple                          A      192.168.10.22
 maple                          MX     5    mail.abc-u.ac.jp
 matsu                          A      192.168.10.1
 matsu                          MX     5    mail.abc-u.ac.jp
 www                            A      192.168.10.3
 www                            MX     5    mail.abc-u.ac.jp
 www2                           A      192.168.10.4
 www2                           MX     5    www2.abc-u.ac.jp
 abc-u.ac.jp.             SOA    sakura.abc-u.ac.jp root.sakura.abc-u.ac.jp. (200204182 10800 1800 3600000 86400)
>

このように一覧を出さないようにするには named.confに

options {
        directory "/var/named";
        auth-nxdomain no;   
        allow-transfer{      <---ここを追加
                61.xxx.xxx.xxx;
        };
};

allow-transfer{ }を追加する ただしこの中に指定するIPアドレスは最低1つは必要のようだ空欄や;だけではうまく動作しないようだ。

windows上のnslookupで確認

> server 192.168.75.1
Default Server:  aa.aaa-abc-u.ac.jp
Address:  192.168.75.1

> ls -d aa-abc-u.ac.jp
[aa.aa-abc-u.ac.jp]
*** Can't list domain aa-abc-u.ac.jp: Query refused
>

[参考]

ここに詳しくサブドメイン等bind9.xについて説明がある。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS