手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 5 BIND 内部 DNS サーバー構築 – named chroot とゾーン設定

CentOS 5 で BIND を使い、内部 DNS サーバーを構築する時の基本を確認します。現在の新規構築で CentOS 5 を選ぶべきではありませんが、古い環境の読み解きや移行前調査では、named、chroot、ゾーンファイル、再帰問い合わせの範囲を分けて理解する必要があります。

CentOS 5 における BIND の位置づけ

BIND は DNS サーバーの代表的な実装です。CentOS 5 時代の構成では、named を chroot 環境で動かし、内部向けの正引き・逆引きゾーンを管理する構成がよく使われていました。

  • 内部ホスト名を管理する権威 DNS として使う
  • 社内向けの再帰 DNS / キャッシュ DNS として使う
  • 正引きゾーンと逆引きゾーンを分けて管理する
  • 問い合わせを許可するネットワークを限定する

重要なのは、BIND を単なる名前解決の箱として扱わず、権威 DNS と再帰 DNS の役割を分けて確認することです。内部 DNS であっても、再帰問い合わせの開放範囲を誤ると踏み台的な挙動になります。

インストールとサービス確認

CentOS 5 では bindbind-chroot を入れて、named サービスとして起動します。

yum install bind bind-chroot
chkconfig named on
service named start
service named status

bind-chroot を使う場合、実際に参照される設定ファイルの場所が通常の /etc/named.conf と chroot 配下で分かれて見えることがあります。古い環境を調査する時は、どちらが実体として使われているかを確認します。

rpm -qa | grep bind
ls -l /etc/named.conf
ls -l /var/named/chroot/etc/named.conf
ps aux | grep [n]amed

named.conf の基本

named.conf では、待ち受けアドレス、問い合わせを許可するネットワーク、ゾーン定義を確認します。内部 DNS であれば、allow-queryallow-recursion を内部ネットワークに限定するのが基本です。

options {
    directory "/var/named";
    listen-on port 53 { 127.0.0.1; 192.168.1.10; };
    allow-query { localhost; 192.168.1.0/24; };
    allow-recursion { localhost; 192.168.1.0/24; };
};

zone "example.local" IN {
    type master;
    file "example.local.zone";
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.rev";
};

この例は内部向けの単純な構成です。外部公開 DNS と内部 DNS を同じ考え方で扱うと危険なので、公開範囲、再帰可否、転送設定を分けて見ます。

ゾーンファイルの例

正引きゾーンでは、SOA、NS、A レコードを定義します。古い環境ではホスト名管理がゾーンファイルに直接書かれていることが多いため、変更前に必ずバックアップを取ります。

$TTL 86400
@   IN SOA ns1.example.local. root.example.local. (
        2026062701 ; serial
        3600       ; refresh
        900        ; retry
        604800     ; expire
        86400 )    ; minimum

    IN NS ns1.example.local.
ns1 IN A  192.168.1.10
web IN A  192.168.1.20
db  IN A  192.168.1.30

逆引きゾーンも合わせて整備しておくと、ログや監視ツールで名前解決しやすくなります。サーバー運用では、正引きだけでなく逆引きが運用上の手掛かりになることがあります。

$TTL 86400
@   IN SOA ns1.example.local. root.example.local. (
        2026062701
        3600
        900
        604800
        86400 )

    IN NS ns1.example.local.
10  IN PTR ns1.example.local.
20  IN PTR web.example.local.
30  IN PTR db.example.local.

設定確認と名前解決テスト

BIND は設定ファイルとゾーンファイルの文法確認ができます。サービスを再起動する前に、named-checkconfnamed-checkzone で確認します。

named-checkconf /etc/named.conf
named-checkzone example.local /var/named/example.local.zone
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev
service named reload

クライアントからは dig で正引き、逆引き、権威応答を確認します。

dig @192.168.1.10 web.example.local
dig @192.168.1.10 -x 192.168.1.20
dig @192.168.1.10 example.local SOA

まとめ

CentOS 5 の BIND 構築では、chroot 配下の実体、named.conf、ゾーンファイル、問い合わせ制限を分けて確認することが重要です。古い構成では動いていること自体が前提になりがちですが、DNS は内部システム全体の依存先になるため、移行時にはゾーン、逆引き、再帰問い合わせ範囲を必ず棚卸しします。

関連する記事

参考書籍

参考書籍
参考書籍
DNS がよくわかる教科書 第2版

DNS の名前解決、権威 DNS、キャッシュ DNS、ゾーン設計を体系的に確認したい場合の参考書籍です。

Amazon で見る
このリンクは Amazon アソシエイトリンクです。
CentOS 5 BIND 内部 DNS サーバー構築 – named chroot とゾーン設定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る