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 no; 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"; }; };
参考:
外部からのアクセスからもしネームサーバとして使用させたくない場合は
"world"にzone "." をいれなければ、引くことができなくなるの安全?
/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
#/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"; }; };
#/usr/local/sbin/named -u named
で起動後
# /usr/local/sbin/rndc stop
で終了を確認
キャッシュ時間の確認
$ 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はプリマリと同じようにする。先に作成しておく。
プライマリが変更されたら通知命令がセカンダリに送られる。これでセカンダリはプライマリからゾーンファイルをとる。このときのプライマリにはセカンダリサーバへゾーンファイルの転送を許可しておく。optionの中にallow-transferでセカンダリを指定しておく。
セカンダリの指定は各ゾーンファイルでNSで指定する。そのため、正引きと逆引きで別のサーバも指定可。
また、名前解決はUDPの53だがゾーン転送はTCPの53を使用する。
うまく起動すると/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
プライマリ側でbindにHUP信号送ったときのセカンダリのログ
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'
余談
.comや.netはドメイン登録し、運用するにはセカンダリが必要なようだ。
既存のドメインに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つは必要のようだ空欄や;だけではうまく動作しないようだ。そこで以下のようにする。
allow-transfer{ none; };
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について説明がある。