CentOS 6 で BIND を使い、内部 DNS サーバーを構築する時の基本を確認します。CentOS 6 は既に現行環境として使うべき OS ではありませんが、古い環境の調査や移行前確認では、named.conf、ゾーンファイル、再帰問い合わせの範囲を読めることが重要です。
内部 DNS としての BIND
BIND は DNS サーバーの代表的な実装です。CentOS 6 では named サービスとして動作し、内部向けの正引き・逆引きゾーン、キャッシュ DNS、フォワーダなどを担当することがあります。
- 内部ホスト名の正引きゾーン
- IP アドレスから名前を引く逆引きゾーン
- 内部クライアント向けの再帰問い合わせ
- 必要に応じた上位 DNS へのフォワード
内部 DNS であっても、再帰問い合わせを広く開けるべきではありません。どのネットワークから問い合わせを受け、どこまで再帰を許可するのかを分けて確認します。
パッケージとサービス確認
yum install bind bind-utils
chkconfig named on
service named start
service named status
rpm -qa | grep bindCentOS 6 では bind-utils に dig や host が含まれます。DNS サーバー本体だけでなく、確認用コマンドも入れておくと切り分けがしやすくなります。
named.conf の基本例
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; };
recursion yes;
};
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";
};allow-query と allow-recursion は、内部 DNS の設計で特に重要です。名前を問い合わせられる範囲と、再帰的に外部へ問い合わせる範囲は、同じように見えて意味が違います。
ゾーンファイルの確認
$TTL 86400
@ IN SOA ns1.example.local. root.example.local. (
2026062701
3600
900
604800
86400 )
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ゾーンファイルを変更したら、シリアル番号を更新し、文法確認を行います。古い環境ではシリアル更新忘れにより、セカンダリ DNS やキャッシュ側に変更が反映されないことがあります。
設定確認と動作確認
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 @192.168.1.10 web.example.local
dig @192.168.1.10 -x 192.168.1.20DNS の確認では、サーバー自身で引けるか、クライアントから引けるか、正引きと逆引きが揃っているかを分けて見ます。
まとめ
CentOS 6 の BIND では、named.conf、ゾーンファイル、問い合わせ制限、再帰問い合わせの範囲を合わせて確認します。古い環境の内部 DNS は多くのシステムの前提になっているため、移行前にはゾーンと依存先を丁寧に棚卸しします。
関連する記事
- CentOS 6 サーバー管理ガイド
CentOS 6 系の記事を役割別に確認できるハブページです。 - CentOS 6 BIND 9.8.2 名前解決の失敗
BIND の名前解決トラブル記録です。 - CentOS 6 ISC DHCP サーバー構築
DHCP と DNS の役割分担を確認します。
参考書籍
DNS の名前解決、権威 DNS、キャッシュ DNS、ゾーン設計を体系的に確認したい場合の参考書籍です。
Amazon で見る
