IPv6用のDNSサーバを設計 | ミンキームーンネットワーク

IPv6用のDNSサーバを設計

一応IPv6の研究はしていたのだけれども、突然「IPv6のトライアルを始めるから必要なサーバ群を用意しておいて」とのお達しがっ!
まだオライリーの本を読んでいるところなのにー(^^;;; しかもDNSプロトコルのセキュリティホールが良い感じにやばいから早めに入れ替えなければと言うのに(涙
IPv6 reachableなサーバは流石に数台しかないから、既存サーバの邪魔をしないようにchrootして更にポートも変更して試験開始。
ISCからソースをダウンロードして、./configure –prefix=/usr/local/bind とでもやって、makeとmake install。
(ここで本当は一手間かけると後の運用が格段と楽になるけれど、飯の種なのであえて省略w)
chrootさせるために、$CHROOT/devにmknodを実施。
(FreeBSDの場合)
# mknod null c 2 2
# mknod random c 249 0
# mknod zero c 2 12
# chmod 666 *
/etc/localtime をchroot先のetcにコピー
named.conf
include “/etc/rndc.key”;
include “/etc/acl.list”;
include “/etc/logging.conf”;
options {
directory “/etc/zone”;
pid-file “/usr/local/bind/var/run/named.pid”;
dump-file “/usr/local/bind/var/tmp/named_dump.db”;
statistics-file “/usr/local/bind/var/tmp/named.stats”;
version “”;
listen-on port 1053 {
any;
};
listen-on-v6 port 1053 {
any;
};
recursion no;
transfer-format many-answers;
max-ncache-ttl 1800;
blackhole {
“auscert”;
};
# End of options
};
zone “.” {
type hint;
file “../root.cache”;
};
zone “localhost” {
type master;
file “master/forward/localhost”;
};
zone “0.0.127.in-addr.arpa” {
type master;
file “master/reverse/ipv4/localhost”;
};
zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” {
type master;
file “master/reverse/ipv6/localhost”;
};
master/forward/localhost
$TTL 86400
@ IN SOA localhost. hostmaster.localhost. (
1 ; serial
86400 ; refresh
600 ; retry
604800 ; expire
3600 ; negative TTL
)
IN NS localhost.
IN A 127.0.0.1
IN AAAA ::1
master/reverse/ipv4/localhost
$TTL 86400
@ IN SOA localhost. hostmaster.localhost. (
1 ; serial
86400 ; refresh
600 ; retry
604800 ; expire
3600 ; negative TTL
)
IN NS localhost.
1 IN PTR localhost.
master/reverse/ipv6/localhost
$TTL 86400
@ IN SOA localhost. hostmaster.localhost. (
1 ; serial
86400 ; refresh
600 ; retry
604800 ; expire
3600 ; negative TTL
)
IN NS localhost.
1 IN PTR localhost.
まずはここまででlocalhostの名前解決が正逆両方とも出来る事を確認。
localhost.の正引き
# dig @::1 -p 1053 localhost. A +norecurse
; <<>> DiG 9.2.3 <<>> @::1 -p 1053 localhost. A +norecurse
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7934 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;localhost. IN A ;; ANSWER SECTION: localhost. 86400 IN A 127.0.0.1 ;; AUTHORITY SECTION: localhost. 86400 IN NS localhost. ;; ADDITIONAL SECTION: localhost. 86400 IN AAAA ::1 127.0.0.1の逆引き
# dig @::1 -p 1053 1.0.0.127.in-addr.arpa. PTR +norecurse
; <<>> DiG 9.2.3 <<>> @::1 -p 1053 1.0.0.127.in-addr.arpa. PTR +norecurse
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34686 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; QUESTION SECTION: ;1.0.0.127.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.0.0.127.in-addr.arpa. 86400 IN PTR localhost. ;; AUTHORITY SECTION: 0.0.127.in-addr.arpa. 86400 IN NS localhost. ;; ADDITIONAL SECTION: localhost. 86400 IN A 127.0.0.1 localhost. 86400 IN AAAA ::1 ::1の逆引き
# dig @::1 -p 1053 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
.0.0.0.ip6.arpa. PTR +norecurse
; <<>> DiG 9.2.3 <<>> @::1 -p 1053 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. PTR +norecurse
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25948 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; QUESTION SECTION: ;1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR ;; ANSWER SECTION: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 86400IN PTR localhost. ;; AUTHORITY SECTION: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 86400 IN NS localhost. ;; ADDITIONAL SECTION: localhost. 86400 IN A 127.0.0.1 localhost. 86400 IN AAAA ::1 おし、これで基本はOK。 IPv6では先頭64ビットが必ずネットワークアドレスなので、それを考慮して逆引きゾーンファイルを作成していきましょうかね。 いかんなー、午前中はエンジンが掛からないから仕事はしないと決めていたのにw さて、午後になったので少しは動くか。 一旦現状で動いているBINDを停止。んで、新しく動かしていたBINDのポート番号を1053から53に変更して起動・・・・・しない?? Jul 24 named[9228]: starting BIND 9.5.0-P1 -t /usr/local/chroot -u bind Jul 24 named[9228]: command channel listening on 127.0.0.1#953 Jul 24 named[9228]: running Jul 24 kernel: pid 9228 (named), uid 53: exited on signal 11 うーん、messagesからは原因が掴めないなぁ・・・ ポートを元の1053に戻すとそのまま動作するから特権ポートに対する権限問題かなぁ。

コメント