さて、djbdns本体のインストールです。こちらもportsからインストールします。
[root@jiro]/usr/ports# portinstall dns/djbdns
インストールできたら、内向けDNSと外向けDNSを設定します。がその前に、DNSを2つ起動するということは、サーバに2つのIPアドレスが必要なので、それを追加しておきましょう。
[root@jiro]/usr/ports# ee /etc.rc.conf
(前略)
ifconfig_fxp0="inet 192.168.1.2 netmask 255.255.255.0"
こうなっている行があるはずです。インターフェース名(ここではfxp0)とIPアドレスは環境によって違うと思います。もちろんnetmaskも。
で、別アドレスを追加するために、
ifconfigfxp0alias0="inet 192.168.1.202 netmask 255.255.255.255"
というような行を追加しておきます。
こうすることで、サーバの1枚のLANカードに2つのIPアドレスが割り当てられます。
(ここでは192.168.1.2/24と192.168.1.202/24)
以後、内向けDNSは192.168.1.2を利用し、外向けDNSは192.168.1.202を利用するとして説明します。後ほど、外からのDNSへのアクセスを、ルーターで192.168.1.202に振り向けることを忘れずに。
内向けDNSの設定
[root@jiro]/usr/ports# tinydns-conf tinydns dnslog /usr/local/etc/tinydns-i 127.0.0.1
tinydnsは起動するユーザー、dnslogはログをとるユーザー、/usr/local/etc/tinydns-iは設定ファイルを置く場所、127.0.0.1は動作するIPアドレスです。
では、DNSが返事をするための内容を設定していきましょう。
[root@jiro]/usr/ports# cd /usr/local/etc/tinydns-i/root
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-ns yamanakake.com 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-ns 1.168.192.in-addr.arpa 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-mx yamanakake.com 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-host taro.yamanakake.com 192.168.1.1
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-host jiro.yamanakake.com 192.168.1.2
・・・自分のLAN内のホストを登録していきます。
さて、登録が終わったら、dataファイルを開いてみてください。
mxレコードは、デフォルトではa.mx.~となっていますので、mail.yamanakake.comに変更しました。
=mail.yamanakake.com:192.168.1.2:86400
@yamanakake.com::mail.yamanakake.com:1:86400
すべての登録をしたら、makeします。
[root@jiro]/usr/local/etc/tinydns-i/root# make
最後に、自動起動するためのリンクを作成します。
[root@jiro]/usr/local/etc/tinydns-i/root# ln -s /usr/local/etc/tinydns-i /var/service/tinydns-i
外向けDNSの設定
内向けと同じく、外向けも設定していきましょう。
[root@jiro]/usr/ports# tinydns-conf tinydns dnslog /usr/local/etc/tinydns-o 192.168.1.202
設定ファイルを置く場所とIPアドレスが違います。
[root@jiro]/usr/local/etc/tinydns-o/root# ./add-ns yamanakake.com 218.219.201.137
[root@jiro]/usr/local/etc/tinydns-o/root# ./add-ns 137.201.219.218.in-addr.arpa 218.219.201.137
[root@jiro]/usr/local/etc/tinydns-o/root# ./add-mx yamanakake.com 218.219.201.137
・・・インターネットに公開したいホスト名を登録していきます。
さて、登録が終わったら、dataファイルを開いてみてください。
mxレコードは、デフォルトではa.mx.~となっていますので、mail.yamanakake.comに変更しました。
=mail.yamanakake.com:218.219.201.137:86400
@yamanakake.com::mail.yamanakake.com:1:86400
すべての登録をしたら、makeします。
[root@jiro]/usr/local/etc/tinydns-o/root# make
最後に、自動起動するためのリンクを作成します。
[root@jiro]/usr/local/etc/tinydns-o/root# ln -s /usr/local/etc/tinydns-o /var/service/tinydns-o
dnscashの設定
dnscashは、LAN向けにdnsの問い合わせをキャッシュするものです。
[root@jiro]/usr/ports# dnscache-conf dnscache dnslog /usr/local/etc/dnscache 192.168.1.2
192.168.1.*(山中家の場合ですよ)からの問い合わせに答えるように
[root@jiro]/usr/ports# cd /usr/local/etc/dnscache/root/ip
[root@jiro]/usr/local/etc/dnscache/root/ip# touch 192.168.1
としておきます。
また、yamanakake.com、yamanakas.net、wty.dyndns.org、1.168.192.in-addr.arpaについては、127.0.0.1に問い合わせるようにします。
[root@jiro]/usr/local/etc/dnscache/root/ip# cd /usr/local/etc/dnscache/root/servers
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > yamanakake.com
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > yamanakas.net
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > wty.dyndns.org
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > 1.168.192.in-addr.arpa
自分のドメイン以外は知らないので、プロバイダのDNSに問い合わせるようにしておきましょう。
[root@jiro]/usr/local/etc/dnscache/root/servers# cd /usr/local/etc/dnscache/env
[root@jiro]/usr/local/etc/dnscache/env# echo 1 > FORWARDONLY
[root@jiro]/usr/local/etc/dnscache/env# cd ../root/servers
[root@jiro]/usr/local/etc/dnscache/root/servers# ee @
xxx.xxx.xxx.xxx
yyy.yyy.yyy.yyy
最後に、自動起動するためのリンクを作成します。
[root@jiro]/usr/local/etc/dnscache/root/servers# ln -s /usr/local/etc/dnscache /var/service/dnscache
LAN内のほかのPCの設定
LAN内の他のPCのDNSサーバアドレスは、192.168.1.2に設定します。
192.168.1.2では、dnscacheが動いていますので、自分のドメインであればそこから127.0.0.1(要は自分自身)に問い合わせますし、それ以外はプロバイダのDNSに問い合わせます。
ここでDNSの問い合わせがキャッシュされますので、LAN内のPCからのDNSの問い合わせが、毎回プロバイダに行くよりは高速で効率がよいと思います。