live library labo

IT技術系、書評など自由きままに

bindからnsdへDNSサーバー移行

今まで自前のDNSサーバーはbindで運用していたのですが、セキュリティうんぬんの問題やらでこの際nsdにしてみよう、ということで移行しました。
今回は権威サーバーのみ作成、セカンダリはなしとします。

<動作環境>
ドメインはお名前.comで保有
・さくらのVPSを使用
・OSはFreeBSD10.2-RELEASE
DNS用のjailを起動して53番ポートにnat

さくらのVPSは2台あり、1台がbindサーバー、もう1台がnsd用のサーバーとなります。
※つまり稼働環境自体も移行しました。

nsdのインストールと設定>
・pkgでインストール
#pkg install nsd

nsd.confの設定

-------
server:
    ip-address: 192.168.0.102
    do-ip6: no
    hide-version: yes
    zonesdir: "/usr/local/etc/nsd/zone"
    database: "/var/db/nsd/nsd.db"
    logfile: "/var/log/nsd.log"
    xfrdfile: "/var/db/nsd/xfrd.state"

pattern:
    name: "zonemaster"
    zonefile: "%s.zone"

zone:
    name: “example.com"
    zonefile: “example.com.zone"
--------


zoneセクションの設定は仮にexample.comとしています。
実際設定するときは、ここを自分のドメイン名にするだけ。
ip-addressがプライベートIPなのは、natで変換しているためです。

各設定は、下記URLを参考にしました。日本語だしわかりやすーい(・∀・)笑
http://unbound.jp/nsd4/nsd-conf/

・ゾーンファイルの設置
これはbindのゾーンファイルがそのまま使えるようだったのでそのままコピーでもってきただけです。

<起動>
/etc/rc.confに「nsd_enable="YES”」を書いておく
あとは
#service nsd start
するだけ

<動作チェック>
自分のマシンからhostコマンドで確認します。(ちなみにmac使用)
#host www.example.com XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXXは先程起動したnsdサーバーのIPアドレス。ホスト名でも可。
hostコマンドにこう渡すことでDNSサーバーの指定ができます。
※今回はnatしてるので設定した192.168.0.102ではなく、natしてるグローバルIPを指定

成功したら、
www.example.com has address ZZZ.ZZZ.ZZZ.ZZZ
のように返ってきます。

<最後に>
このままじゃDNSサーバーを立てただけで世界に伝搬はされませんので、新しく立てたnsdサーバの方を参照してもらうように設定します。
お名前.comで、DNSサーバーを起動するドメインの、「ネームサーバー名としてのホストを設定する」で、IPアドレスを変更します。
今回は、運用中のさくらのVPS(bind)のIPアドレスから新しいさくらのVPSnsd)のIPアドレスへ変更。

お名前.comでexample.comを保有しているとしたら、example.comのネームサーバの設定は、ns.example.comにしており、上記の「ネームサーバー名としてのホストを設定する」というのは、ns.example.comIPアドレスを変更した、という意味です。

<おまけ【ほんとに新しい方に切り替わったのかな?】>
ということで、実際にDNSサーバを指定せず、
#host www.example.com
などするとほんとに上記のIPアドレス変更が適用されたかわからへーん(・_・;)
※wwwの設定はどっちにも書いてるため

ので、新しい方「のみ」にtest.example.comなど古い方にはない新しいドメインを追加します。そして、
#host test.example.com
をして、きちんと返答がくればお名前.comのIPアドレス変更が効いている!
返答がこなければ変更が効いていない!
と判断ができるかと思います(・∀・)

以上(・∀・)

セカンダリ設定はまた次回書きたいと思います(^^)