// generated by named-bootconf.pl acl localnet{ // 'localnet'名でアクセス制御リストを定義 192.168.0.0/24; // サーバゾーンの定義 192.168.1.0/24; // おやじ宅内のゾーンの定義 127.0.0.1; // ローカルホストの定義 }; options { directory "/var/named"; // DNSのデータベースディレクトリ allow-transfer { localnet; }; // 転送先制限(localnetのみ可) allow-query { localnet; }; // 問合せ元制限(localnetのみ可) }; // rndcで制御可能なホストを指定(localhostのみ可) controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; // rndc秘密鍵の読込みパスを指定 include "/etc/rndc.key"; // ログ関係の設定 logging { channel default-log { file "/var/log/named/named.log" versions 5 size 1m; severity info; print-time yes; print-category yes; }; category lame-servers { null; }; category default { default-log; }; }; // 内向きDNSの設定 view "lan" { match-clients { localnet; }; // ルートのゾーン設定 zone "." IN { type hint; file "named.ca"; }; // 逆引きのループバックのゾーン設定 zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; // 正引きのおやじ宅内のゾーン設定 zone "example.zive.net" IN { type master; file "example.zive.net.zone"; }; // 逆引きのおやじ宅内ゾーンの設定 zone "0.168.192.in-addr.arpa" IN { type master; file "192.168.0.rev"; }; // 逆引きのサーバゾーンの設定 zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.rev"; }; // example.comの正引きのゾーン設定 zone "example.com" IN { type master; file "example.com.local"; }; }; // 外向きDNSの設定 view "wan" { match-clients { any; }; recursion no; // 再帰的検索の禁止 // example.comの正引きのゾーン設定 zone "example.com" IN { type master; file "example.com.zone"; allow-transfer { yyy.yyy.yyy.yyy; }; // セカンダリDNSのIPアドレスを記述(セカンダリDNSのみに転送) allow-query { any; }; // 問合せは全て可 notify yes; // このzone設定に変化があったらnsで定義された
}; // dnsにnotify通知。 };
# cd /var/log
# mkdir named
# chown named:named named
controls { inet 127.0.0.1 allow { localhost; } keys { <key-name>; }; }; [例] controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; };
include "/etc/<key-file-name>"; [例] include "/etc/rndc.key";
上記により、「/etc」ディレクトリ配下にrndc.keyという名前でkeyステートメントファイルが作成される。作成されるkeyステートメントファイルは以下のようなものであり、<key-name> は、named.confに記述したものと同じ名前であることを確認しておく。# rndc-confgen -a -b <bit-length> -k <key-name>
[例]
# rndc-confgen -a -b 512 -k rndckey
key "<key-name>" { algorithm hmac-md5; secret "<key-value>"; }; [例] key "rndckey" { algorithm hmac-md5; secret "***********************************"; };
/* $Id: rndc.conf,v 1.7 2001年01月09日 21:40:45 bwelling Exp $ */ /* * Sample rndc configuration file. */ options { default-server localhost; default-key "rndckey"; }; server localhost { key "rndckey"; }; key "rndckey" { algorithm hmac-md5; secret "***********************************"; // rndc.keyからコピー };
# cd /var/named
# wget -O named.ca.new ftp://ftp.internic.net/domain/named.root
# mv named.ca.new named.ca
# cd /usr/local/bin
# wget http://www.aconus.com/~oyaji/dns/root.hint.check
# chmod 755 root.hint.check
# root.hintファイルの更新チェック
23 1 * * 5 root /usr/local/bin/root.hint.check
$TTL 86400 (1) (2) @ IN SOA example.zive.net. oyaji.example.zive.net. ( 2003072400 ; Serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS example.zive.net. (5) 1 IN PTR localhost. (6)
(1) ネームサーバ名(ドメイン名の最後に ' . '(ピリオド)を忘れずに)
(2) サーバ管理者のメールアドレス(' @ 'を ' . 'に変えて指定。最後に ' . '(ピリオド)を忘れずに)
(3) データベースのシリアル番号。(変更するたびに必ず値を増やすこと。年月日+追番がよい)
(4) リフレッシュ・リトライ・有効・生存時間(デフォルトのまま)
(5) ネームサーバ名を指定(サーバ名の最後に ' . '(ピリオド)を忘れずに)
(6) ローカルホストの逆引きデータを指定 (このまま記述。localhost(DNSサーバ)の下1桁を記述)
$TTL 86400 (1) (2) @ IN SOA example.zive.net. oyaji.example.zive.net. ( 2003072400 ; serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS example.zive.net. (5) IN MX 10 example.zive.net. (7) @ IN A 192.168.1.100 (8) router1 IN A 192.168.0.1 (9) oyaji IN A 192.168.0.2 (9) rina IN A 192.168.0.3 (9) akko IN A 192.168.0.4 (9) printer IN A 192.168.0.10 (9) router2 IN A 192.168.1.1 (9) pdns IN A 192.168.1.100 (9) www IN CNAME pdns (10) mail IN CNAME pdns (10) ftp IN CNAME pdns (10)
(1)〜(5)は、前述と同一
(1) 家庭内で使用するドメイン名(おやじは、インターネットと同じexample.zive.netを使用)を指定。(最後に ' . '(ピリオド)を忘れずに)
(7) メールエクスチェンジャの指定。(CNAMEは使用しないこと)
(8) example.zive.netでサーバのローカルアドレスを返すための設定。
(9) 各ホストの正引きデータを指定。
(10)別名定義を指定。(おやじは、サーバだけ用途毎の別名を登録した。DNSは、別名定義しないこと。言い換えれば、サーバが1台ならサーバ機はDNS名となる)
$TTL 86400 (1) (2) @ IN SOA ns1.example.com. oyaji.example.zive.net. ( 2003072400 ; serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS ns1.example.com. (5) IN MX 10 example.com. (7)@ IN A 192.168.1.101 (8)
ns1 IN A 192.168.1.101 (9)
www IN A 192.168.1.101 (9)
mail IN A 192.168.1.101 (9)
ftp IN A 192.168.1.101 (9)
(1) ネームサーバ名(外向きと合わせた)
(2) サーバ管理者のメールアドレス(家庭内はexample.zive.netで統一)
(3)〜(4) 前述と同一
(5) ネームサーバ名を指定(外向きと合わせた)
(7) メールエクスチェンジャの指定。(外向きと合わせた)
(8) example.comでサーバのローカルアドレスを返すための設定。
(9) 各ホスト名をAレコードで定義(CNAMEのほうが簡単であるが)
$TTL 86400 (1) (2) @ IN SOA example.zive.net. oyaji.example.zive.net. ( 2003072400 ; serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS example.zive.net. (5) 1 IN PTR router1.example.zive.net. (9) 2 IN PTR oyaji.example.zive.net. (9) 3 IN PTR rina.example.zive.net. (9) 4 IN PTR akko.example.zive.net. (9) 10 IN PTR printer.example.zive.net. (9)
(1)〜(5)は、前述と同一.
(9)は、正引きの(9)で指定したホストの逆引きデータを指定。(別名定義したものではない)
$TTL 86400 (1) (2) @ IN SOA example.zive.net. oyaji.example.zive.net. ( 2003072400 ; serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS example.zive.net. (5) 1 IN PTR router2.example.zive.net. (9) 100 IN PTR pdns.example.zive.net. (9) 101 IN PTR ns1.example.com. (9)
(1)〜(5)は、前述と同一.
(9)は、正引きの(9)で指定したホストの逆引きデータを指定。(別名定義したものではない)
$TTL 86400 (1) (2) @ IN SOA ns1.example.com. oyaji.example.zive.net. ( 2003072400 ; serial (3) 3H ; refresh (4) 15M ; retry (4) 1W ; expiry (4) 1H ) ; minimum (4) IN NS ns1.example.com. (11) IN NS nsx.zoneedit.com. (12) IN MX 10 example.com. (13)@ IN A xxx.xxx.xxx.xxx (14) ns1 IN A xxx.xxx.xxx.xxx (15) www IN A xxx.xxx.xxx.xxx (15) mail IN A xxx.xxx.xxx.xxx (15) ftp IN A xxx.xxx.xxx.xxx (15)
(1)〜(5)は、前述と同一.
(11) プライマリネームサーバ名を指定(レジストラに登録した自分のDNS)
(12) セカンダリネームサーバ名を指定(レジストラに登録したセカンダリDNS。とりあえずはなくても可。)
(13) メールエクスチェンジャの指定。
(14) example.comでサーバのローカルアドレスを返すための設定。
(15) 各ホスト名をAレコードで定義
ゾーンの転送は、以下のような時に発生します。
# named-checkconf
# /etc/named.conf:8: unknown option 'option'
# cd /var/named
# named-checkzone example.zive.net example.zive.net.zone
zone example.zive.net/IN: Loaded serial 2003072400
OK
# /etc/rc.d/init.d/named start
Jul 28 20:08:14 server named[1253]: starting BIND 9.2.1 -u named
Jul 28 20:08:14 server named[1253]: using 1 CPU
Jul 28 20:08:14 server named[1255]: loading configuration from '/etc/named.conf'
Jul 28 20:08:14 server named[1255]: no IPv6 interfaces found
Jul 28 20:08:14 server named[1255]: listening on IPv4 interface lo, 127.0.0.1#53
Jul 28 20:08:14 server named[1255]: listening on IPv4 interface eth0, 192.168.1.100#53
Jul 28 20:08:14 server named[1255]: command channel listening on 127.0.0.1#953
Jul 28 20:08:14 server named[1255]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2003072400
Jul 28 20:08:14 server named[1255]: zone 0.168.192.in-addr.arpa/IN: loaded serial 2003072400
Jul 28 20:08:14 server named[1255]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2003072400
Jul 28 20:08:14 server named[1255]: zone localhost/IN: loaded serial 2003072400
Jul 28 20:08:14 server named[1255]: zone example.zive.net/IN: loaded serial 2003072400
Jul 28 20:08:14 server named[1255]: running
Jul 26 09:24:54.771 general: zone 0.0.127.in-addr.arpa/IN: loaded serial
# netstat -ln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State : (snip) : tcp 0 0 192.168.1.100:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN : (snip) : tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN : (snip) : udp 0 0 192.168.1.100:53 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:*