NetBSD で NSD を使う ref. Name Server Daemon (NSD) http://www.nlnetlabs.nl/nsd/ NSD 3.xによるネームサーバの構築 http://www.himoo.iri.co.jp/~kohi/dns/nsd3/index.html NSD http://ya.maya.st/misc/nsd.html !!インストール % cd /usr/pkgsrc/net/nsd % sudo make install : =========================================================================== The following files should be created for nsd-3.0.5: /etc/rc.d/nsd (m=0755) [/usr/pkg/share/examples/rc.d/nsd] =========================================================================== => Please note the following: =========================================================================== $NetBSD: MESSAGE,v 1.2 2007/08/11 23:48:40 joerg Exp $ The configuration format of nsd has changed between 2.x and 3.x. A sample Python script to help migrating the old nsd.zones format into the new nsd.conf can be found in share/examples/nsd. =========================================================================== ユーザー nsd が追加される。 % grep nsd /etc/passwd nsd:*:1009:1003:nsd user:/nonexistent:/sbin/nologin 以下に README があるので読んでおく。 /usr/pkgsrc/net/nsd/work/nsd-3.0.5/doc/README nds をインストールしたときに nsdc というコマンド( スクリプト )もインストールされます。 ここでは nsd じゃなくて nsdc を使うことにします。 !!既存の設定 tinydns の設定( /usr/pkg/etc/tinydns/data ) ええと。Z 属性のなんだこの記述は....。 Zarea51.gr.jp:ns.area51.gr.jp.:rin.maaya.jp:::::86400 <= SOAレコード &area51.gr.jp::ns.area51.gr.jp. <= NS(A)レコード +area51.gr.jp:218.45.22.71 <= Aレコード +www.area51.gr.jp:218.45.22.71 <= Aレコード +mail.area51.gr.jp:218.45.22.71 <= Aレコード +ns.area51.gr.jp:218.45.22.71 <= Aレコード +sakura.area51.gr.jp:218.45.22.71 <= Aレコード +qml.area51.gr.jp:218.45.22.71 <= Aレコード @area51.gr.jp::sakura.area51.gr.jp <= MX(A)レコード @mail.area51.gr.jp::mail.area51.gr.jp <= MX(A)レコード @qml.area51.gr.jp::qml.area51.gr.jp <= MX(A)レコード 意味はこう。tinydns の SOA レコードのタイマー値のデフォルト値( djbdnsで作るネームサーバ徹底攻略 p.191 ) シリアル番号( SERIAL ) => data ファイルのタイムスタンプ リフレッシュ時間( REFRESH ) => 16384( 273 分 == 約 4.5 時間 ) 再試行時間( RETRY ) => 2048( 約 34 分 ) 最大有効時間( EXPIRE ) => 1048576( 約 291 時間 == 約 12 日 ) ネガティブキャッシュTTL( MINIMUM ) => 2560( 約 42 分 ) ゾーン転送してるのでその設定( /usr/pkg/etc/axfrdns/tcp ) :deny xxx.xxx.xxx.xxx:allow !!nsd.conf pidfile などはデフォルトでは /var 以下になってる。 /usr/pkg/etc/nsd に chroot してるので /var のままにしておくと nsd 起動時に怒られる。 なので全部指定する。 server: ip4-only: yes database: "/usr/pkg/etc/nsd/var/db/nsd.db" logfile: "/usr/pkg/etc/nsd/var/log/nsd.log" pidfile: "/usr/pkg/etc/nsd/var/run/nsd.pid" chroot: "/usr/pkg/etc/nsd" zonesdir: "/usr/pkg/etc/nsd" difffile: "/usr/pkg/etc/nsd/var/db/nsd-ixfr.db" xfrdfile: "/usr/pkg/etc/nsd/var/db/nsd-xfrd.state" zone: name: "area51.gr.jp" zonefile: "area51.gr.jp.zone" provide-xfr: xxx.xxx.xxx.xxx NOKEY notify: xxx.xxx.xxx.xxx NOKEY !!arear51.gr.jp.zone $TTL 36000 $ORIGIN area51.gr.jp. @ IN SOA ns.area51.gr.jp. root.area51.gr.jp. ( 2007112501 ; Serial 16384 ; Refresh 2048 ; Retry 1048576 ; Expire 2560 ) ; Minimum IN NS ns.area51.gr.jp IN MX 10 sakura.area51.gr.jp mail IN MX 10 mail.area51.gr.jp qml IN MX 10 qml.area51.gr.jp IN A 218.45.22.71 www IN A 218.45.22.71 mail IN A 218.45.22.71 ns IN A 218.45.22.71 sakura IN A 218.45.22.71 qml IN A 218.45.22.71 ディレクトリを作って chown しておく。 % sudo mkdir -p /usr/pkg/etc/nsd/var/run % sudo mkdir -p /usr/pkg/etc/nsd/var/db % sudo mkdir -p /usr/pkg/etc/nsd/var/log % sudo chown -R nsd /usr/pkg/etc/nsd/var データベースを作る。エラーが無ければ OK % sudo nsdc rebuild zonec: reading zone "area51.gr.jp". zonec: processed 10 RRs in "area51.gr.jp". zonec: done with 0 errors. !!/etc/rc.conf tinydns を stop してから 無効にしておく。nsd を追加しておく。 ##tinydns=YES ##tinydns_ip="192.168.0.6" ##axfrdns=YES nsd=YES !!/etc/rc.d/nsd nsdc を使う。 % sudo cp /usr/pkg/sbin/nsdc /etc/rc.d/nsd これで /etc/rc.d/nsd start とか stop する !!動作確認 ログ見たり /etc/rc.d/nsd start と stop がちゃんとできてるか dig area51.gr.jp dig area51.gr.jp mx 別のドメインにあるホストから dig ゾーン転送してるセカンダリのひとに確認してもらう