FreeBSD 10でのBIND ver 9.9.5_1の設定(内向けDNS)


FreeBSD10になってからbindは/usr/local/etc/namedb/ に置かれるようになった。 このバージョンのbindになると外部からnamedが操作可能となるそうだ。それを実現しているのがrndcになる。 これに関しては多くの方が詳しく記述しているのでパス。 プロバイダ等で指定されているDNSサーバを192.168.1.1でドメインhoge.hogeru.ac.jpを管理すると仮定して 記述する。DNSサーバのFQDNをdns.hoge.hogeru.ac.jp、IPが192.168.2.1、セグメントを192.168.2.0/24とする。
外部DNSサーバ192.168.1.1
管理するドメイン名hoge.hogeru.ac.jp
管理するDNSサーバのFQDNdns.hoge.hogeru.ac.jp
管理するDNSサーバのIP192.168.2.1
管理するセグメント192.168.2.0/24
cd /usr/local/etc/namedb
/usr/local/sbin/rndc-confgen -a -b 512 -r /dev/urandom -u bind
chmod 400 rndc.key
chown bind:bind rndc.key
ついで、 rndc.conf を以下の様に書き換える。
###key "XXXXXXXXXXXXXXXXXXXXX" {
###     algorithm hmac-md5;
###     secret "ZZZZZZZZZZZZZZZZZZZZZ";
###};
include "/usr/local/etc/namedb/rndc.key";
####################################################
/usr/local/etc/namedb/named.conf は以下のように記述する。 サンプルがあるので必要に応じて変更する。
include "/usr/local/etc/namedb/rndc.key";
options {
       directory       "/usr/local/etc/namedb/working";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        listen-on       { 127.0.0.1; };
        listen-on-v6    { none; };
 
//// bind9 has access control.
//// bind自身でアクセスコントロール機能を有しているので、適切に設定する。
////  OPEN RESOLVER (All request is accepted)  として動作させる場合は以下のとおり。    
        listen-on       { any; };
        recursion yes;
        allow-query     { any; };
        allow-recursion { any; };
        allow-transfer  { any; };
//////////////////////////
       disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
        disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
        disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";

//// プロバイダーでDNSが指定されている場合はそのDNSサーバをしているする。
//// 例 外部のDNSサーバが192.168.1.1でローカルも参照する場合。
//// forwarders
        forwarders {
               192.168.1.1;
               127.0.0.1;
        };
};

// The traditional root hints mechanism. Use this, OR the slave zones below.
zone "." { type hint; file "/usr/local/etc/namedb/named.root"; };
// RFCs 1912, 5735 and 6303 (and BCP 32 for localhost)
zone "localhost"        { type master; file "/usr/local/etc/namedb/master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "/usr/local/etc/namedb/master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "/usr/local/etc/namedb/master/empty.db"; };
///////////////////////////////////////////////////////////////
zone "hoge.hogeru.ac.jp" IN {
        type master;
        file "/usr/local/etc/namedb/master/hoge.zone";
};
zone "2.168.192.in-addr.arpa" IN {
        type master;
        file "/usr/local/etc/namedb/master/2.rev";
};
///////////////////////////////////////////////////////////////

正引きゾーンデータベース
$TTL    3600

@       IN      SOA    dns.hoge.hogeru.ac.jp. root.hoge.hogeru.ac.jp.  (
                                2014031900 ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                604800  ; Expire
                                86400 ) ; Minimum
        IN      NS       dns.hoge.hogeru.ac.jp.
$ORIGIN hogeru.ac.jp.
hoge      IN      MX      10      dns.hoge.hogeru.ac.jp.
hoge      IN      A       192.168.2.1

$ORIGIN 
dns		IN 		A		192.168.2.1
gegege1	IN	A		192.168.2.2
gegege2	IN	A		192.168.2.3
gegege3	IN	A		192.168.2.4
逆引きゾーンデータベース
$TTL    3600
@       IN      SOA     dns.hoge.hogeru.ac.jp. root.hoge.hogeru.ac.jp.  (
                                2014031900 ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                604800  ; Expire
                                86400 ) ; Minimum
        IN      NS      dns.hoge.hogeru.ac.jp.
;### 2.168.192.IN-ADDR.ARPA.
1	IN	PTR 	dns.hoge.hogeru.ac.jp.
2	IN	PTR 	gegege1.hoge.hogeru.ac.jp.
3	IN	PTR 	gegege2.hoge.hogeru.ac.jp.
4	IN	PTR 	gegege3.hoge.hogeru.ac.jp.
最後に/etc/rc.confに
named_program="/usr/local/sbin/named"
named_flags="-u bind -c /usr/local/etc/namedb/named.conf"
named_enable="YES"
を記述し/usr/local/etc/rc.d/named startにて起動する。
戻る