DNSコンテンツサーバをNSDにしてみましたw
ただ、Ubuntu14.04LTS(だけ?)の場合、
APTでインストールする際にエラーが出るので、
その対応も含めて・・・
正直DNS難しいです。。。
OS・・・ubuntu14.04LTS
DNS・・・NSD 4.0.1
さくっとインストール
nsdとnsd3がありますが、今回はnsd3を。
# apt-get install nsd3 Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libevent-2.0-5 nsd The following NEW packages will be installed: libevent-2.0-5 nsd nsd3 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/782 kB of archives. After this operation, 1,568 kB of additional disk space will be used. Do you want to continue? [Y/n] y Preconfiguring packages ... dpkg: unrecoverable fatal error, aborting: syntax error: unknown user 'nsd' in statoverride file E: Sub-process /usr/bin/dpkg returned an error code (2)
はい。エラーw
どうやら、ユーザ「nsd」がないため失敗するみたいです。
「syntax error: unknown user ‘nsd’ in statoverride file」
ユーザを追加するだけ
# useradd nsd
またNSDをremoveしてもユーザは消えないので、
# userdel nsd
再度インストール。
# apt-get install nsd3 # nsd -v NSD version 4.0.1 Written by NLnet Labs. Copyright (C) 2001-2006 NLnet Labs. This is free software. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
すればOK。
NSDの設定は、
http://unbound.jp/nsd4/nsd-conf/
ここを参考に
# vi /etc/nsd/nsd.conf server: logfile: "/var/log/nsd.log" zone: name: "neko6.info" zonefile: "neko6.info.zone"
こんな感じでゾーンE毎に書く感じ。
で、ゾーンファイルは
こんな感じ・・・
BINDのZONEファイルと同じ。
(詳しくないのでググってください。。。)
# vi /etc/nsd/neko6.info.zone $TTL 120 @ IN SOA ns.neko6.info. root.neko6.info. ( 2014100417 ; serial number 10800 ; Refresh 3600 ; Retry 604800 ; Expire 120 ; Min TTL ) IN NS ns.neko6.info. IN A 49.212.202.116 ; IN AAAA 2403:3a00:202:1126:49:212:202:116 www IN A 49.212.202.116 www IN AAAA 2403:3a00:202:1126:49:212:202:116 ns IN A 49.212.202.116
TTL短すぎるけどw
で、ここからなのですが、
どうやら環境変数が違うため、
「/etc/init.d/nsd」からではうまく起動してくれません。
@くりゅうさん
ありがとうございました!
参考URL
デーモンの起動・終了にはserviceコマンドを利用しよう
http://heartbeats.jp/hbblog/2013/06/service-start-stop.html
なので、
「service nsd」を使います。
NSDの場合、データベースを読み込むので、
ゾーンを編集すると作り直しが必要となります。
# service nsd rebuild # service nsd restart nsd stop/waiting nsd start/running, process 26357 # # tail -f /var/log/nsd.log Oct 4 19:04:53 hogehoge nsd[26121]: nsd started (NSD 4.0.1), pid 26119
ちなみに、データベースは
# ll /var/lib/nsd/ total 24 drwxr-xr-x 2 nsd nsd 4096 Oct 4 18:18 ./ drwxr-xr-x 42 root root 4096 Oct 4 18:09 ../ -rw------- 1 nsd nsd 12288 Oct 4 19:18 nsd.db -rw-r--r-- 1 nsd nsd 817 Oct 4 19:40 xfrd.state
ここに作られるようです。
あとはiptablesで
iptables -A INPUT -p udp --dport 53 -j ACCEPT
でUDP53を空けてあげる。
上手く通信できるかクライアントから
$ dig neko6.info +trace
などで、解決できるかチェック。
余談。。。
DOTTKだと、NSサーバを自前に向けることができますが、
ネームサーバが2つ以上必要となるみたいです。
また、そのままだと自分のネームサーバ(ns.neko6.info)の
解決が出来ない(当たり前ですよねぇ。。orz)ので、
「Management Tools」の「Register glue records」から
グルーレコードにNSサーバのIPを指定しないといつまでたっても名前解決できません。。