フタなしカンヅメ

徒然なるままに @happytar0

自宅サーバでセカンダリDNSを構築する

前回の記事でプライマリのDNSを構築したので、次は自宅サーバでセカンダリDNSを構築しようかと思います。その前にネームサーバを構築してみて、ちょっとアレ?と思った部分があったので、その事を書いておきます。

外部ドメインを引いてみようと思い、下記のようなコマンドを打ってみたところ帰ってきませんでした。

## digコマンドを打ってみた
$ dig @127.0.0.1 www.yahoo.co.jp

なぜだろう?と思ったところ、recursionの設定がnoになっていたせいでした。これは再帰的に問い合わせるかどうかの設定なのですが、外向けに設定されているネームサーバでは、第三者からの問い合わせにも応答してしまうため、本来はアクセス制限をしたほうがいいようです。recursionをyesに変更したところ、無事に問い合わせることができました。

セカンダリDNSを構築

セカンダリDNSもbind9を使い、構築していきます。インストールまでは前回の記事と同じです。
設定内容だけちょっとだけ異なりますがほとんど同じなので簡単です。

## /var/named/chroot/etc/named.confを編集
options {
        listen-on port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; }; # 外部に公開
        version "unknown";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

include "/etc/rndc.key"; 
controls {
        inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndckey"; };
};

view external {
        match-clients { any; };
        recursion no;

        zone "." {
                type hint;
                file "named.ca";
        };
        zone "example.com" {
                type slave; # セカンダリなのでslaveにする
                file "slaves/example.com.zone"; # slavesディレクトリの下に保存
                masters { 192.168.x.1; }; # プライマリDNS(マスタ)を指定
        };
}; 

ちなみに自宅サーバだけでは心もとなかったので、Linodeの無料DNSを使ってセカンダリにすることにしました。
以上です。思ったより簡単に出来てしまいましたが管理していくのがちょっとたいへんそうですね・・・。がんばります。