○ named.confファイル

・bind-9.11.2で使っています
・グローバルアドレスが1つの場合です
・完全コピーしないこと (エラーが出ることあり)

・行の先頭の // 以降は改行されるまでのコメントです
・ /*  */で囲まれた部分もコメントです
・named.conf ファイルでは ; 記号はコメント用ではありません
・key の "secret" の値は128bitの値で、実際とは異なります
・allow-transfer の "aaa.bbb.ccc.ddd" には 2nd.name.server のIPアドレスを記述します
・zoneネームの後の<クラス>が省略できます、その場合 IN (Internet) として扱われます
・zoneファイルの読み込みは、optionsで指定したdirectoryを起点とするので注意します
・詳しい説明は省略します

○/etc/named.conf

// Setting for BIND9

acl 528pnet {
    192.168.0.0/24;
    127.0.0.1;
};

acl meiwaku {
	60.28.246.143;
	117.135.144.125;
	173.242.114.26;
	178.18.17.17;
	178.18.17.66;
	178.18.19.140;
	178.18.26.213;
	188.132.242.149;
	218.27.207.249;
	222.186.26.115;
};

logging {
/*  channel queries-log {
        file "/var/named/data/queries.log" versions 4 size 10m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    }; */
    channel "default_syslog" {
        syslog daemon;
        severity info;
    };
    channel null {
    null;
    };
    category edns-disabled { null; };
    category lame-servers { null; };
    category resolver { null; };
//  category queries { queries-log; };
    category security { default_syslog; };
    category general { default_syslog; };
    category default { default_syslog; };
};

//  include "/etc/trusted.keys";

options {
    version " ";
    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";
    session-keyfile "/var/named/session.key";
    pid-file "/var/named/named.pid";
    auth-nxdomain no;
    recursion no;

    bindkeys-file "/etc/bind.keys";
    dnssec-enable yes;
    dnssec-validation auto;
    dnssec-lookaside auto;

    allow-query { none; };
    allow-transfer { none; };
    blackhole { meiwaku; };
    max-cache-ttl 86400;
    max-cache-size 10485760;
    root-delegation-only  exclude {
        "de"; "lv"; "to"; "us"; "museum";
    };
//  empty-zones-enable no;
};

key "rndc-key" {
    algorithm hmac-sha512;
    secret "G1C7qMA6qciQe4cWQJHdEw==";
};

controls {
    inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
};

//
//LAN setting
//

view "internal" {
    match-clients { 528pnet; };
    recursion yes;
    allow-recursion { 528pnet; };
    allow-query { 528pnet; };
    allow-transfer { 528pnet; };

    zone "." {
        type hint;
        file "master/named.cache";
    };

    zone "528p.com" {
        type master;
        file "master/in528p.com.fwd";
    };

    zone "0.168.192.in-addr.arpa" {
        type master;
        file "master/in528p.com.rev";
    };

    include "/etc/named.default.zones";	
};

//
//WAN setting
//

view "external" {
    match-clients { any; };
    recursion no;
    allow-query { any; };

    zone "528p.com" {
        type master;
        file "master/ex528p.com.fwd";
        allow-transfer {
            528pnet;
            aaa.bbb.ccc.ddd;
        };
    };

    zone "3.201.117.219.in-addr.arpa" {
        type master;
        file "master/ex528p.com.rev";
        allow-transfer {
            528pnet;
            aaa.bbb.ccc.ddd;
        };
    };
};

○named.confの構文チェック (内容のチェックではない)

・named-checkconfはデフォルトで/etc/named.confを読み込みます (省略可)

# named-checkconf /etc/named.conf 

・chrootしている場合は、chrootディレクトリを指定します
・ファイルパスはchrootディレクトリを / とみなして指定します

# named-checkconf -t /var/chroot/bind /etc/named.conf

○簡単な説明

単位
size_spec K or k (kilobytes), M or m (megabytes), G or g (gigabytes)


全体制御
acl "ACL名"と"アドレスマッチリスト"を定義します

構文の中で使用する事ができます
logging logの取り方を指定します、デフォルトではsyslog経由で

/var/log/messagesに出されます

queriesは (rndc querylog) を実行する毎にON・OFFが切り替わります

(rndc status) で確認できます

設定例ではコメント行になっていて、クエリログは取っていません

lame-servers { null; } (名前解決の失敗)のログを破棄します

resolver { null; } (相手先のDNSのformat error)のログを破棄します
options version " "; ヴァージョンを表示しない設定?

directory 作業ディレクトリを指定します

session-keyfile session.keyの場所を指定します

( デフォルトは /var/run/named/session.key )

pid-file named.pidの場所を指定します

( デフォルトは /var/run/named/named.pid)
( DNS_RUN_PID_DIR=0 の場合 /var/run/named.pid)

auth-nxdomain no; デフォルト

bindkeys-file built-in trusted-keys(dlv.isc.org)を上書きします

dnssec-enable yes; DNSSEC応答、検証を有効にします
dnssec-validation auto; autoはbind-9.8以降で有効
dnssec-lookaside auto;

blackhole クエリに応答しないホストを設定します (aclを利用)

max-cache-ttl 86400; キャッシュのTTLの最大値(秒単位)
デフォルトは604800秒(1週間)
max-cache-size 10485760; キャッシュに使用するメモリの最大量(byte)
デフォルトは0 (制限なし) unlmited は32-bitメモリ空間の最大値

root-delegation-only;ワイルドカードドメイン問題の対応です?

empty-zones-enable yes; built-in empty zone を有効とします
(デフォルト yes)
controls rndcで制御するための設定です


個別制御
view ローカルとグローバルを分けています

view 内の設定は互いに影響しません

view "internal"でローカルからの問い合わせに対応します

view "external"でグローバルからの問い合わせに対応します
match-clients クライアントの制限をしています

anyと記述すれば無制限になります
recursion 再帰的なクエリの許可です、ローカルのみ許可しています

options内に記述すれば全体で有効になります

オプションを指定しなければ全て許可されます
allow-query 通常のクエリを許可するホストを指定します

options内に記述すれば全体で有効になります

オプションを指定しなければ全て許可されます
allow-transfer ゾーン転送を許可するホストを指定します

view "external"ではlocalhostと2nd.name.serverに制限しています

options内に記述すれば全体で有効になります

オプションを指定しなければ全て許可されます

○/etc/named.default.zones

・view "internal"のincludeで読み込みます
・(RFC1912による)常に存在すべきゾーン設定

// named.default.zones

zone "localhost.localdomain" {
	type master;
	file "master/named.localhost";
	allow-update { none; };
};

zone "localhost" {
	type master;
	file "master/named.localhost";
	allow-update { none; };
};

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" {
	type master;
	file "master/named.loopback";
	allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" {
	type master;
	file "master/named.loopback";
	allow-update { none; };
};

zone "0.in-addr.arpa" {
	type master;
	file "master/named.empty";
	allow-update { none; };	
};

/* zone "255.in-addr.arpa" {
	type master;
	file "master/named.empty";
	allow-update { none; };	
}; */

○ Copyright(c) 528p.com All Rights Reserved.