さてさてお待たせしました。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 {
// このゾ