内部ツール系サーバーを構築するに当たり
内部DNSサーバーにはBindでは無くPowerDNSを使用していきます。
PowerDNSを使うことにしたのは単にGUIツールが存在しており
ファイルをいじって設定する手間が省けるな~とおもたっからですw
1.Dockerイメージを作成する
管理するドメインは大した量ではないのでDBにはSqliteをチョイス
管理GUIはSqliteに対応した物が無いため、API駆動のPowerDNS Adminを選んでみました。
PowerDNS + SqliteのDockerイメージは見つかったものの、
PowerDNS AdminのDockerイメージは見つからないし・・・・
そもそもこれぐらいならひとまとめにしてもいいじゃない!
ってことでPowerDNS + Sqliteをベースに自分で作ってみました。
[github]
PowerDNS Adminが80番ポートを使用するため、
PowerDNS標準のWebサーバーが8080番ポートに変更になっています。
また、内部運用するに当たり「DNSフォワーダ」の設定が追加されたので
管理外ドメインの問い合わせを外部にフォーワードしてくれます。
2.Dockerコンテナを起動する
1 2 3 | $ git clone https: //github .com /gittrname/powerdns-sqlite3-gui .git $ docker build -t powerdns-sqlite3-gui powerdns-sqlite3-gui $ docker run -p 53:53 /tcp -p 53:53 /udp -p 80:80 powerdns-sqlite3-gui |
起動したらブラウザでGUIにアクセスしまずは管理用アカウントを新規に作成してください。
作成したアカウントでログインしたらドメインを追加しレコードの設定を行います。
digコマンドで動作の確認ができればDNSサーバーの構築は完了です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $ dig www.ranran.mydns.jp @[DNSサーバーのIP] ; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.ranran.mydns.jp @[DNSサーバーのIP] ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 35567 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1680 ;; QUESTION SECTION: ;www.ranran.mydns.jp. IN A ;; ANSWER SECTION: www.ranran.mydns.jp. 3600 IN A [対象サーバーのIP] ;; Query time : 43 msec ;; SERVER: 192.168.11.102 #53(192.168.11.102) ;; WHEN: Thu Oct 27 23:59:11 JST 2016 ;; MSG SIZE rcvd: 64 |