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アドレスから新しいさくらのVPS(nsd)のIPアドレスへ変更。
お名前.comでexample.comを保有しているとしたら、example.comのネームサーバの設定は、ns.example.comにしており、上記の「ネームサーバー名としてのホストを設定する」というのは、ns.example.comのIPアドレスを変更した、という意味です。
<おまけ【ほんとに新しい方に切り替わったのかな?】>
ということで、実際にDNSサーバを指定せず、
#host www.example.com
などするとほんとに上記のIPアドレス変更が適用されたかわからへーん(・_・;)
※wwwの設定はどっちにも書いてるため
ので、新しい方「のみ」にtest.example.comなど古い方にはない新しいドメインを追加します。そして、
#host test.example.com
をして、きちんと返答がくればお名前.comのIPアドレス変更が効いている!
返答がこなければ変更が効いていない!
と判断ができるかと思います(・∀・)
以上(・∀・)
セカンダリ設定はまた次回書きたいと思います(^^)