SSH を使って djbdns を2重化する

SERVER

tinydns 一本(2本?)で行こうと思って、2nd DNS としてもう一本 tinydns を立ててみました。

データファイルの転送は ssh を使用してみました。


djbdns

djbdns とは、qmail の作者、D.J.Bernstein さんが作成したネームサーバです。

http://djbdns.jp.qmail.org/djbdns/ に掲げられていますけど、「安全、確実、高速、簡潔、設定も簡単な DNS ツール群」 が売り文句になっているようです。

 

djbdns 同士で、いわゆる 1st DNS と 2nd DNS を構築してみました。

 

 

準備

データファイルの転送には、OpenSSH の scp を利用することにします。なお、SSH は EZ-NET 特集: OpenSSH による ssh サーバ構築 のような感じであらかじめ既にインストールされているものとします。

また、DNS サーバは、192.168.0.1 と 192.168.0.2 のそれぞれに tinydns がインストール、稼動しているとします。このうちの 192.168.0.1 は既に運用されていて、今回は 192.168.0.2 を 2nd DNS として構築します。

djbdns (tinydns) のインストールは EZ-NET 特集: ネームサーバ djbdns 1.05 のインストール を参考にしてみてください。

 

設定

設定は 1st 側 (192.168.0.1) の tinydns で行います。

tinydns がインストールされているディレクトリ /etc/tinydns の中に root/ ディレクトリがあります。その中の Makefile のなかに scp コマンドを使って、2nd DNS (192.168.0.2) に data ファイルを転送するスクリプトを追加します。

remote: data.cdb

scp data.cdb root@192.168.0.2:/service/tinydns/root/data.cdb.tmp

ssh -l root 192.168.0.2 mv /service/tinydns/root/data.cdb.tmp /service/tinydns/root/data.cdb

 

data.cdb: data

/usr/local/bin/tinydns-data

これで、make コマンドを発行すると2回ほど 2nd DNS 側の root パスワードが要求されますが、それらを入力すればデータファイルの転送は完了です。

上記の scp 命令と ssh 命令の2箇所に現れる root を他のユーザアカウントに変更すれば、それ以外のアカウントで接続を試みてくれるようになります。もちろんそのとき、2nd DNS 側の /service/tinydns/root/ ディレクトリがそのユーザで書き込みできること、そしてそのアカウントが SSH を利用できる必要があります。

 

関連ページ

EZ-NET 特集: DNS サーバ djbdns

djbdns に関するお話を、上記のページにまとめてみました。このページの内容を含め、ほかにもいろいろなことに触れてみました。