ルートDNSサーバをつくってみる
実験環境用にルートDNSサーバをBIND9 on Debian GNU/Linux(etch)でつくってみたのでメモ。やりかたはオライリーのBINDの本に載ってるものそのまま。物理的なPCではなくて、Parallels Desktopでつくった。
インストール
OS自体はネットワークインストールのCDイメージでインストール。途中tasksel?でインストールするパッケージを選ぶところは、なんとなく全部チェックを外した。自分で必要なのだけ使うことにする。
OSインストールが終わったら、aptでbind9・dnsutilsをインストールする。
全部終わったら、IPアドレスをスタティック設定にする。やらなくてもいいと思うけど、あとでHost Only Networkに接続するので、このときに設定するIPアドレスは、Host Only Networkのものにする。うちのParallels DesktopのHost Only NetworkはDHCPで10.37.129.1〜10.37.129.254に割り当てしてしまうようになってたので、10.37.129.1〜10.37.129.127に変更しておく。変更箇所はParallelsの【Preference】-【Network】。今回は、このサーバは【10.37.129.128】に設定。設定方法はこのへん参照。
BINDの設定
/etc/bind/db.rootと/etc/bind/named.confを念のためバックアップしておく。
named.conf
まず、/etc/bind/named.confを下記のように変更。
zone "." { type hint; file "/etc/bind/db.root"; };
こうなってるところを、
zone "." { type master; file "/etc/bind/db.root"; };
に変更する。つまり、【.】のmasterにする。
db.root
/etc/bind/db.rootはこんな内容にする。
$TTL 1d . IN SOA debian-etch-1.s0r5.jp. hostmaster.s0r5.jp. ( 1 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL IN NS debian-etch-1.s0r5.jp. debian-etch-1.s0r5.jp. IN A 10.37.129.128 s0r5.jp. IN NS debian-etch-2.s0r5.jp. debian-etch-2.s0r5.jp. IN A 10.37.129.129 129.37.10.in-addr.arpa. IN NS debian-etch-2.s0r5.jp.
debian-etch-2.s0r5.jpに関しては、あとで別につくる。
ここまで設定して、/etc/init.d/bind9 restartでDNSサーバ再起動。
このルートDNSサーバを使うDNSサーバの設定
別のDNSサーバで、さっきつくったルートDNSサーバを使うようにするには、Debian GNU/Linuxの場合、そのサーバの/etc/named/db.rootを下記のようにする。
. 9999999 IN NS debian-etch-1.s0r5.jp. debian-etch-1.s0r5.jp. 9999999 IN A 10.37.129.128
あと、debian-etch-2.s0r5.jpは、s0r5.jp.と129.37.10.in-addr.arpa.も委任されてるので、/etc/bind/db.s0r5.jpと/etc/bind/db.10.37.129もつくる。
db.s0r5.jp
こんな感じ。このへんからはごく普通のDNSサーバと同じ。
$TTL 1d s0r5.jp. IN SOA debian-etch-2.s0r5.jp. hostmaster.s0r5.jp. ( 1 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL s0r5.jp. IN NS debian-etch-2.s0r5.jp. debian-etch-1.s0r5.jp. IN A 10.37.129.128 debian-etch-2.s0r5.jp. IN A 10.37.129.129
db.10.37.129
逆引きもとくに特殊な設定はなし。
$TTL 1d 129.37.10.in-addr.arpa. IN SOA debian-etch-2.s0r5.jp. hostmaster.s0r5.jp. ( 1 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL 129.37.10.in-addr.arpa. IN NS debian-etch-2.s0r5.jp. 128.129.37.10.in-addr.arpa. IN PTR debian-etch-1.s0r5.jp. 129.129.37.10.in-addr.arpa. IN PTR debian-etch-2.s0r5.jp.
named.conf
named.confも忘れずに変更しておく。Debian GNU/Linuxの場合は/etc/bind/named.conf.localに追加。実は最初コレを書き換え忘れててなんで動かないんダーって悩んでた(汗
zone "s0r5.jp." { type master; file "/etc/bind/db.s0r5.jp"; }; zone "129.37.10.in-addr.arpa." { type master; file "/etc/bind/db.10.37.129"; };
ほんとは直接設定ファイルをとってきてコピペすればいいんだけど、手で書き写してしまったのでtypoがあるかも。あったら指摘してください。
そういえば、ホスト側のmacとはつながってるわけだからFTPで送ればいいのか。ここまで書いちゃったから面倒なのでこのままにする。