DNS サーバ djbdns のインストールと設定 - ゾーン転送を可能にする

DNS サーバである djbdns のインストールと設定をまとめてみました。

ここは、djbdns を構成するプログラムのひとつ afxrdns を用いて、BIND や Microsoft DNS 等からのゾーン転送の要求に応じる方法についてのお話です。


4-2: ゾーン転送を可能にする

ゾーン転送のサポート

tinydns にはいわゆるゾーン転送の機能はありません。

なので、セカンダリ DNS を用意する場合で、特に BIND や Microsoft DNS サーバを利用する場合には、djbdns に付属の axfrdns を使ってゾーン転送をサポートさせる必要があります。

axfrdns を tinydns と合わせて使用することで、ゾーン転送を行うことができるようになります。

 

axfrdns の起動

axfrdns を利用するに際して、そのコンピュータで tinydns が既に稼動している必要があります。また、tcpserver を利用しますので ucspi-tcp もインストールしておきましょう。

axfrdns は、djbdns をインストールした時点ですでにインストールが済んでいますので、あとは起動させてあげるだけです。

 

起動するに当たって、axfrdns を動かすアカウントを登録します。

useradd -g djbdns -s /bin/true -d /dev/null axfrdns

 

アカウントの登録が終わったら、axfrdns の設定ファイルを作成します。

設定ファイルの作成には、djbdns をインストールしたときに組み込まれた axfrdns-conf というプログラムを使用します。

 

/usr/local/bin/axfrdns-conf axfrdns dnslog /etc/axfrdns /etc/tinydns 192.168.0.1

このような感じです。

インストールされている tinydns が /etc/tinydns があるとして、axfrdns を /etc/axfrdns にインストールようにしています。またこのとき、この axfrdns を動かすコンピュータの IP アドレスは 192.168.0.1 です。

axfrdns は先ほど作成した axfrdns を起動するためのアカウントで、dnslog というのは、ログ収集の際に使用するアカウントです。

 

これで /etc/axfrdns というディレクトリが自動的に作成されて、必要な設定ファイル等が用意されます。あとは次のようにして、svscan に axfrdns を起動してもらいます。

ln -s /etc/axfrdns /service

 

これで axfrdns が起動して、 TCP 53 番ポートの待ち受けを開始します。ただし、このままだと外部からのアクセスが拒否される設定になっているので、設定ファイルを手直しする必要があります。

 

アクセス許可を与える

アクセス許可の設定は、/etc/axfrdns/ ディレクトリの中の tcp というファイルで指定します。

この設定ファイルは tcpserver が使うファイルなので、設定の仕方は tcpserver 共通です。ただ、AXFR という環境変数に対して、ゾーン転送を許可するドメインも付け加えます。

 

たとえば、セカンダリ DNS が 192.168.0.* という空間に配置されていて、その DNS が ez-net.jp と 0.168.192.in-addr.arpa という2つのゾーンを転送できるようにするには、次のようにします。

192.168.0.0-255:allow,AXFR="ez-net.jp/0.168.192.in-addr.arpa"

:deny

上記のように、複数のドメインを転送したい場合には、AXFR の値を、スラッシュ ( / ) で区切って指定します。

 

make

このように tcp ファイルを変更したら、最後に make コマンドを実行することで、設定ファイルの内容が有効になります。

 

目次