Ubuntu 16.10にDNSを導入する
古いPC端末を手に入れたのでこいつを宅内ローカルサーバとして設定してみる。家庭内向けの子供関連のアプリも作りたくなってきたのでこいつをベースに久しぶりに自宅インフラを構築していってみる。
まずはDNSサーバを設定。ローカルドメインを解決をしたいだけなのでコンテンツサーバのみで、用途を考えるとBindは大きすぎる(のとあまり好みじゃない)ので軽量なNSDを試してみる。
NSDの導入
最近良くおすすめされているDNSコンテンツサーバ、軽量。詳しくは下記参照。
- https://www.nlnetlabs.nl/projects/nsd/
- http://unbound.jp/nsd4/
- https://www.slideshare.net/hdais/nsd-unboundintro
- http://qiita.com/futosu/items/8259d16a38d0cab713cf
- http://qiita.com/notchi/items/cbfd0dd2f549333ca405
NSDのインストール
パッケージ管理システムの恩恵を十二分に享受する。
sudo apt-get install nsd
do-ip6: no zonesdir: "/etc/nsd/zone" //正引き zone: name: "domain.local" zonefile: "domain.local.zone" //逆引き zone: name: 0.168.192.in-addr.arpa zonefile: 0.168.192.in-addr.arpa.zone
zoneファイルの作成
正引き
/etc/nsd/zone/domain.local.zone
$TTL 3600 $ORIGIN domain.local. @ IN SOA ns.domain.local. root.domain.local. ( 2017050701 ; serial number 10800 ; Refresh 3600 ; Retry 604800 ; Expire 1 ; Min TTL ) IN NS ns.domain.local. IN A 192.168.0.10 www IN A 192.168.0.10 ns IN A 192.168.0.10
逆引き
$TTL 3600 $ORIGIN domain.local. @ IN SOA ns.domain.local. root.domain.local. ( 2017050701 ; serial number 10800 ; Refresh 3600 ; Retry 604800 ; Expire 1 ; Min TTL ) IN NS ns.domain.local. 10 IN PTR www.domain.local 10 IN PTR ns.domain.local
サービス登録と起動
sudo systemctl start nsd sudo systemctl enable nsd
キャッシュサーバは?
今回はローカルドメイン参照のためのコンテンツサーバだけが欲しかったが、キャッシュサーバが必要になったらUnboundを使う感じらしい
しかしUbuntu Desktopはdnsmasqがすでに動いていた、、、
dnsmasq
/etc/hostsと/etc/resolv.confをみてコンテンツサーバとキャッシュサーバとして働いてくれるやつ、、、ローカル向け簡易DNSサーバならこれでいいじゃん
- https://www.infiniteloop.co.jp/blog/2015/04/how_to_use_dnsmasq/
- https://www.server-world.info/query?os=Ubuntu_16.04&p=dnsmasq
とりあえずNSD検証のためdnsmasqを止める設定
/etc/NetworkManager/NetworkManager.confで下記をコメントアウト
#dns=dnsmasq
Network Managerを再起動
sudo service network-manager restart
、、、したけど無効化できずSystem Rebootで反映された、なぜだ。。。とりあえずしばらくNSDを使ってみよう
ちなみにdjbdnsの件
今流行のDNS周りを調べてたら懐かしい名前を見つけた、、、ちなみにUbuntuはaptで導入可能なもよう、、、
sudo apt-get install djbdns
隠れてないDJBファン(qmail最高)ではあるが、最近オススメ率の高いNSDを使ってみたかったので今回は見送り