【bind】 セカンダリDNSサーバ構築 2 セカンダリ側の設定

さてさてお待たせしました。bindでセカンダリDNSサーバを作ろう!の後編です。というか、ここからが本編ですね。今回は、bindのインストールから行います。

■■ bindのインストール

※ うちの環境はCentOS4.5なので、yumで楽々インストールです。
# yum install bind

ここから、各種ゾーンファイル作成とnamed.confの記述、bind起動の解説になりますが、
やること少ないクセにかなり長いので「【bind】 セカンダリDNSサーバ構築 2 セカンダリ側の設定の続きを読む」をクリックしてください。
■■ 各種ゾーンファイルの作成

/var/named ディレクトリ以下に、
「プライマリネームサーバから転送されない」ゾーンのファイルを作成します。

# cd /var/named

■ named.ca の作成

このファイルがないと、bindの起動すらしません。
ルートサーバのnsレコードをここに書いてやります。

# dig @a.root-servers.net . ns > named.ca

これだけで、named.caができます。


■ localdomain.zone の作成

# vi localdomain.zone
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@               IN SOA  localhost root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           localhost
localhost       IN A            127.0.0.1
------------------------------------------------------------------------------------------------------------------------


■ localhost.zone の作成

# vi localhost.zone
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS           @
                IN A            127.0.0.1
                IN AAAA         ::1
------------------------------------------------------------------------------------------------------------------------


■ named.broadcast の作成

# vi named.broadcast
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@               IN SOA  localhost       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
        IN      NS      localhost
------------------------------------------------------------------------------------------------------------------------


■ named.ip6.local の作成

# vi named.ip6.local
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1      IN      PTR     localhost.
------------------------------------------------------------------------------------------------------------------------


■ named.local の作成

# vi named.local
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1       IN      PTR     localhost.
------------------------------------------------------------------------------------------------------------------------


■ named.zero の作成

# vi named.zero
------------------------------------------------------------------------------------------------------------------------
$TTL    86400
@               IN SOA  localhost       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
        IN      NS      localhost
------------------------------------------------------------------------------------------------------------------------


■■ named.confの設定

■ まずはオリジナルのnamed.confをバックアップします。

# cd /etc/
# cp -p named.conf named.conf.org


■ 次に、named.confを設定します。

素のnamed.confには

options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";

という記述しかありません。これから、セカンダリサーバとして動かすための設定を行います。

# vi named.conf

------------------------------------------------------------------------------------------------------------------------
options { の行の上に、内部ネットワークの定義を書く

acl localnet{
    192.168.0.0/24;
    127.0.0.1;
};
------------------------------------------------------------------------------------------------------------------------
options の箇所で、以下の設定をします。
named.confのお約束で、「//から始まる行」あるいは
「/* ~ */」で囲まれた箇所は、コメント行扱いになります。

【ここを】
------------------------------------------------------------------------------------------------------------------------
options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
};
------------------------------------------------------------------------------------------------------------------------

【こうする】
------------------------------------------------------------------------------------------------------------------------
options {
       directory "/var/named";
       version "unknown";
       dump-file "/var/named/data/cache_dump.db";
       statistics-file "/var/named/data/named_stats.txt";
        // localnetと定義したネットワークからのクエリを許可する
               allow-query{ localnet; };
        // 再帰的な検索をlocalnetからのみ受け付ける
               allow-recursion{ localnet; };
        // ゾーン転送をlocalnetにのみ許可し、
        // 問い合わせを192.168.0.2に回送する
               allow-transfer{ localnet; };
                       forwarders{
                               192.168.0.2;
                       };
       };
------------------------------------------------------------------------------------------------------------------------

【rndcで制御可能なホストを、このサーバ自身に限定する】
------------------------------------------------------------------------------------------------------------------------
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
------------------------------------------------------------------------------------------------------------------------

【ログに関する設定】
------------------------------------------------------------------------------------------------------------------------
logging {
        // 逆引のエラーをログに残さない
        category lame-servers { null; };
        // クエリに関するログを取る
        channel "log" {
            file "/var/log/named_querylog";
            // ログにカテゴリ名の取得をする
            print-category yes;
            // ログに優先度の取得をする
            print-severity yes;
            // ログにタイムスタンプ取得をする
            print-time yes;
        };
        category queries {"log";};
};

ここまでが、bind全体の設定です。
------------------------------------------------------------------------------------------------------------------------

【ゾーンに関する設定】
いよいよここから、個別のゾーンについて定義します。
------------------------------------------------------------------------------------------------------------------------
// view ステートメントを定義する。
// ゾーンの定義を全部書いたあとの閉じカッコを忘れないこと。
view "any" {
    // match-clients ですべての接続元という定義をする。
    // 個別の定義をする場合は、anyの上に書くこと。
    match-clients {
        any;
    };

// ルートネームサーバのゾーンを定義する。
// これがないと、bind(named)を起動できない。
zone "." IN {
        // ルートネームサーバを指定するため、
        // hintと定義する。
        type hint;
        // ゾーン情報を書き込むファイルを指定する。
        // ファイル名は「named.ca」とする。
        file "named.ca";
};

// localdomein ゾーンの定義をする。
// これがあると、localhost.localdomain などの名前を定義できる。
zone "localdomain" IN {
        // ゾーンデータのマスターコピーを持ち、
        // ゾーンの権威ある返答を提供することができるよう、
        // mastarと定義する。
        type master;
        // ファイル名の指定
        file "localdomain.zone";
        // ゾーン転送を許可しない
        allow-update { none; };
};

// localhostの定義をする。
// これがあると、localhostの名前解決ができる。
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

// 127.0.0.0/8 ネットワークの逆引設定を定義する。
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

// IPv6アドレスの逆引設定を定義する。
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.ip6.arpa" IN {
        type master;
        file "named.ip6.local";
        allow-update { none; };
};

// ブロードキャストアドレスの逆引設定を定義する。
zone "255.in-addr.arpa" IN {
        type master;
        file "named.broadcast";
        allow-update { none; };
};

// ネットワークアドレスの逆引設定を定義する。
zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};

// rndc.keyを読み込む。
// named.confには最初から書いてあります。
include "/etc/rndc.key";

// blogcube.infoのゾーン情報
zone "blogcube.info" IN {
        // このゾーンがslaveであることを指示します。
        type slave;
        // ゾーンのファイル名を定義します。
        // 相対パスで書いていますが、これを絶対パスに直すと
        // /var/named/slaves/blogcube.info.db となります。
        file "slaves/blogcube.info.db";
        // このゾーンのプライマリネームサーバを指定します。
        // ゾーンのタイプが「slave」の場合、必須の項目になります。
        masters {
                192.168.0.2;
        };
};

// 以下の閉じカッコは、viewの閉じカッコです。
};
------------------------------------------------------------------------------------------------------------------------
ここまでがnamed.confの設定になります。


■■ named.confの書式確認

named-checkconfコマンドで、named.confの書式にミスがないかを確認します。

# /usr/sbin/named-checkconf

何も出力されていなければOKです。
ただし、書式以外のミスについては見てくれませんので、ケアレスミスには注意です。

named.confの書式にミスがある場合、以下のように出力されます。

# /usr/sbin/named-checkconf
/etc/named.conf:202: '}' expected near end of file

これは、viewの閉じカッコを忘れた場合の出力例です。
「ほんとだったらnamed.confの202行目に「}」でカッコを閉じるはずちゃうん?」
と突っ込まれています。

ここまでできたら、いよいよbindを起動します。


■■ bindの起動

■ 起動

# /etc/init.d/named start
named を起動中:                                            [  OK  ]

■ 自動起動設定

デフォルトの設定を確認
# chkconfig --list named
named           0:off   1:off   2:off   3:off   4:off   5:off   6:off

自動起動設定
# chkconfig named on

自動起動設定がされたか確認
# chkconfig --list named
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off


■■ プライマリネームサーバからゾーン転送されているか確認

# cd /var/named/slaves/
# ls -l
合計 40
-rw-------  1 named named  665 12月  8 21:45 blogcube.info.db

以上で終了です。お疲れ様でした!

トラックバック(0)

このブログ記事を参照しているブログ一覧: 【bind】 セカンダリDNSサーバ構築 2 セカンダリ側の設定

このブログ記事に対するトラックバックURL: http://www.blogcube.info/cgi-bin/mt-tb.cgi/74

カスタム検索

カレンダー



このブログ記事について

このページは、(っ´∀`)っ ゃーが2007年12月 8日 23:41に書いたブログ記事です。

ひとつ前のブログ記事は「【bind】 セカンダリDNSサーバ構築 1 プライマリ側の準備」です。

次のブログ記事は「【syslog】logsurferをためしてみる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01