dns
bind
DNSSEC

キャッシュサーバをBINDで構築してみました

More than 1 year has passed since last update.

■ 概要

キャッシュサーバの構築手順をまとめました。

DNSサーバ共通の構築手順(BINDのインストールなど)や権威サーバ(マスタサーバ、スレーブサーバ)の構築手順はこちらをどうぞ。

▼セキュアなDNS環境を構築してみました
http://qiita.com/nk9bb8/items/5a52c8c5a5e14901775d

▼権威サーバ(マスタサーバ)をBINDで構築してみました
http://qiita.com/nk9bb8/items/f57c94f9469b805ef28e

▼権威サーバ(スレーブサーバ)をBINDで構築してみました
http://qiita.com/nk9bb8/items/9a0b678b1abdfcb958ea

■ /etc/named.conf の設定内容

※デフォルトの設定値から変更している箇所を中心にコメントを入れています。

// アクセス制御リスト
acl "locals" {
    192.168.56.0/24;                                // 検証環境のローカスアドレス
    127.0.0.1;
};

// BIND全体の設定
options {
    listen-on port 53 { 127.0.0.1; 192.168.56.101; };   // リクエスト待受けポート/アドレス
    listen-on-v6 port 53 { none; };                     // 検証環境なので、IPv6無効

    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 { locals; };                        // 問合せの受付けを許可するアドレス
    recursion yes;                                  // 再帰問合せの受付けを許可する
    allow-recursion { locals; };                    // 再帰問合せを許可するアドレス
    allow-query-cache { locals; };                  // キャッシュの利用を許可するアドレス

    dnssec-enable yes;                              // DNSSECを有効にする
    dnssec-validation yes;                          // 問合せ結果をDNSSECで検証する

    version none;                                   // バージョンを非表示にする

    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

// ログ設定
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

// ルートゾーン設定
zone "." IN {
    type hint;                                      // ヒント情報
    file "named.ca";                                // ルートサーバ
};

// ローカルゾーン設定(正引き用)
zone "example.jp" IN {                              // example.jpゾーン
    type stub;                                      // ローカル権威サーバ
    masters { 192.168.56.111; 192.168.56.112; };    // 権威サーバ(マスタ、スレーブ)
};

// ローカルゾーン設定(逆引き用)
zone "56.168.192.in-addr.arpa" IN {                 // example.jpゾーン
    type stub;                                      // ローカル権威サーバ
    masters { 192.168.56.111; 192.168.56.112; };    // 権威サーバ(マスタ、スレーブ)
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

■ DNSSEC対応

◆権威サーバ(マスタサーバ)からKSK公開鍵を取得

★正引き用
# dig @192.168.56.111 localdomain dnskey | grep DNSKEY.*257
example.jp.     86400   IN  DNSKEY  257 3 8 AwEAAdxj90MBe64O ~省略~ My6goDGasw0=

★逆引き用
# dig @192.168.56.111 56.168.192.in-addr.arpa. dnskey | grep DNSKEY.*257
56.168.192.in-addr.arpa. 86400  IN  DNSKEY  257 3 8 AwEAAcvjePwJXJDo ~省略~ jrNIGlG+/Y0=

◆/etc/named.confに、example.jpゾーンのトラストアンカーを設定

// トラストアンカー
trusted-keys { 

    // 正引き用
    "example.jp."   257 3 8 "AwEAAdxj90MBe64O ~省略~ My6goDGasw0=";

    // 逆引き用
    "56.168.192.in-addr.arpa." 257 3 8 "AwEAAcvjePwJXJDo ~省略~ jrNIGlG+/Y0=";
};

■ named.confの構文チェック

# named-checkconf -z