« 自動マウントしたQNAP NASに外部からアクセスできるようにする | ホーム | QNAP TS-219P II買った(1年前に) »
2013年3月24日
QNAP NASにBINDを入れて内部DNSサーバーにする
前回hosts書き換えだと問題が生じたのでDNSサーバーを用意することにした。
QNAP NASにはパッケージ管理ツールのQPKGが用意されているもののパッケージはあまり充実しておらずBINDもないので、QPKGからOptware IPKGをインストール→IPKGからBINDをインストールという流れをとる。
# ipkg update
# ipkg install bind
自分は遭遇しなかったんだけどパスが通ってなくて再起動するとipkgコマンドが使えなくなるとかいう報告もあったので一旦再起動して試したほうがいいかも。
BINDの設定
DNSよくわからないけど内部用だから適当でいいのでは。ってことでこの辺とか見ながら基本的なとこだけ設定する。
強いBIND DNSサーバを構築する 第三回 - 基本的なゾーン設定 -- Eurotec Information Systems K.K. Web Site
/opt/etc/named/named.conf
options {
directory "/opt/var/named";
allow-query {
localhost;
localnets;
};
forwarders {
192.168.0.1;
};
forward first;
};
zone "." {
type hint;
file "named.root";
};
include "/opt/etc/named/named.special.zones";
zone "hanpen.mycloudnas.com" {
type master;
file "hanpen.mycloudnas.com.zone";
};
forwarders の 192.168.0.1 はISP支給のルーター。ONUにこれ噛まさないとインターネット接続してくれずISPルーター→自前ルーター→PC&NASという構成になっているため。こういう環境じゃなければプロバイダ指定のDNSとかを入れるはず。
hanpen.mycloudnas.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire
1D ) ; Negative Cache TTL
@ IN NS @
@ IN A 192.168.1.2
動作チェック
ここまで設定したら試しに起こしてみる。
# /opt/etc/init.d/S09named start
クライアント側から名前解決ができるかチェック。
$ dig hanpen.mycloudnas.com @192.168.1.2
...
;; ANSWER SECTION:
hanpen.mycloudnas.com. 86400 IN A 192.168.1.2
...
できてるっぽいので自前ルーターのプライマリDNSを192.168.1.2、セカンダリDNSを192.168.0.1に設定。@外してもう一回。
$ dig hanpen.mycloudnas.com
同じ結果が返ってくればOK。
BINDの自動起動
Running Your Own Application at Startup - QNAPedia
通常は autorun.sh に書けとあるんだけどどうも /opt は起動時にパスが通ってないらしく普通に書いても動かないのでいろいろ小細工をしないといけないみたい。よくわかんなかったので cron でプロセス監視して起きてなければ起こすことにした。
# crontab -e
...
* * * * * (ps ax | grep -v grep | grep -c /opt/sbin/named) || /opt/etc/init.d/S09named start
一旦BINDを止めて勝手に起動するかチェックする。
# /opt/etc/init.d/S09named stop
大丈夫そうなら /etc/config/crontab にも同じ内容を書き込んで再起動テスト。
# vim /etc/config/crontab
...
# reboot
再起動後も名前解決に問題がなければ設定完了。
ちなみに、QNAP NASを再起動するとTunnelblickがMacのDNSキャッシュの影響でVPN接続に失敗し続けるので、Terminalからは名前解決できるのにTunnelblickのログを見るとグローバルIPに繋ぎにいってるという場合は、キャッシュを削除してやるといい。
$ sudo killall -HUP mDNSResponder
その後の運用
hostsの書き換えで問題になっていたうち、スクリプトを手動実行しないといけなかった件は解決。スムーズに切り替えできるようになった。
もう片方のFinderでNASのフォルダを開いたままだとFinderが死ぬ件は、死ななくはなったもののタイムアウトでアンマウントされるまでファイルにアクセスできないのはそのまま。
別にそんなこともなかった。常にじゃないっぽい。
そんなに頻繁にアクセスするものでもないので、必要なときは手動でアンマウントしてやればいいということに落ち着いた。
$ umount /Volumes/hanpen
トラックバック(0)
トラックバックURL: http://retlet.net/cgi-bin/mt5/mt-tb.cgi/89