LoginSignup
4
5

More than 5 years have passed since last update.

おうちDNSをPowerDNSのDockerイメージで(PowerDNS Recursorインストール編)

Last updated at Posted at 2018-01-08

はじめに

前項ではPowerDNS Authoritative ServerとPowerDNS-Adminをインストールした。
今回はPowerDNS Recursorをインストールすることで本格的におうちの中で利用できるDNSサーバを構築することができる。

今回の構築イメージ。

クライアントPC
  ↓
PowerDNS Recursor → localドメイン → PowerDNS Authoritative Server 
  ↓
localドメイン以外
  ↓
Internet

Dockerイメージ

前回のDockerファイルにさらに、PowerDNS RecursorのDockerイメージを追加した。

また、docker-composeでブリッジを作成し各コンテナのIPアドレスを固定で設定することで、PowerDNS Authoritative ServerとRecursorの経路を固定した。

linkの設定では、PowerDNS Authoritative ServerとRecursor同士の通信が正しく行えない問題があったためである。

また、内向きで利用するドメインとその検索先をforward-zonesの項目に設定する。
今回は.localドメインを追加するので下記の用に設定した。

転送先の設定例
forward-zones=local=<転送先のDNSサーバー>

それ以外の設定は特にいじっていないため、必要に応じてrecursor.confを編集する。

以上で、Dockerファイルの準備は完了した。

このDockerファイルもここにPushしてある。

この状態でコンテナを立ち上げると、以下の様なエラーが発生しポートのバインドに失敗する。

0.0.0.0:53: bind: address already in use

事項で、調査方法と設定変更法を記載する。

Armbianの設定

以下のコマンドで、53番ポートを使用しているアプリを調査。

sudo lsof -i -P | grep "LISTEN"

ポートを占有していた正体は、dnsmasqである。

詳細は割愛するが、簡易DNSサーバである。

Armbianは起動時に、NetworkManger経由でたちあげているようなので、以下のコマンドで設定変更・停止する。

NetworkManagerの設定ファイル
$ sudo vi /etc/NetworkManager/NetworkManager.conf
viで編集する項目/[main]のdnsをコメントアウト
[main]
dns=none
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=true
[keyfile]
unmanaged-devices=interface-name:p2p0
NetworkMangerを再起動
$ sudo systemctl restart network-manager

DNSの設定確認

ブラウザのアドレスバーにArmbianのIPアドレスを打ち込むとPowerDNS-Adminが表示される。

新規にDNSを登録し、正常に登録されればdigやhostコマンドなどで動作を確認する。

(例)digコマンド
$ dig @<ArmbianのIPアドレス> <作成したアドレス>

もし、PowerDNS-Adminでエラーが出る場合はdocker-compose upをしたターミナルを見るとPowerDNSのログが出ている。

発生しやすいエラーとして、SQLiteへの書き込みが出来ない場合である。

その場合は、ファイルの権限を見直しPowerDNSだけを再起動すれば正しく読み込むことが出来る。

今後の課題

リバースプロキシを設定したが、現在の設定だとPowerDNS以外のサービスの提供が難しい。

そこで、uWSGIを利用してパスを分けようとしたが、正しく起動することが出来なかった。

参考

UBUNTU DNSMASQを停止する

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5