CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
CentOS 7 で BIND を使い、内部ネットワーク向け DNS サーバーを構築する手順です。ここでは内部ゾーンを持ちつつ、外部名前解決は上位 DNS へ forward する構成として整理します。
内部 DNS では、権威 DNS とキャッシュ / フォワーダの役割が混ざりやすくなります。どの名前を自分で管理し、どの名前を外へ問い合わせるのかを分けて考えることが重要です。
内部 DNS の役割を整理する
- 内部ホスト名や内部サービス名を管理する。
- 外部ドメインは上位 DNS へ転送する。
- 内部ネットワークからの問い合わせだけを受ける構成にする。
- 公開 DNS と同じ考え方で recursion を開放しない。
BIND をインストールする
yum -y install bind-chrootゾーンファイル用ディレクトリを作成する
mkdir -p /var/named/myzone
chmod 770 /var/named/myzone
chgrp named /var/named/myzonenamed.conf の基本設定を確認する
named.conf は既存値が多く、環境差も出やすいファイルです。バックアップを取ったうえで、内部向けの listen、allow-query、forwarders、管理ゾーンを確認します。
cp -a /etc/named.conf /etc/named.conf.bakoptions {
listen-on port 53 { any; };
allow-query { 10.0.0.0/24; localhost; };
recursion yes;
forward only;
forwarders { 10.0.0.1; };
allow-update { none; };
allow-transfer { none; };
notify no;
version "";
};
zone "si1230.com" {
type master;
file "myzone/si1230.com.zone";
};
zone "0.0.10.in-addr.arpa" {
type master;
file "myzone/0.0.10.in-addr.arpa";
};IPv4 のみで起動する場合
古い検証環境や既存構成では IPv4 のみで BIND を動かしている場合があります。IPv6 を使わない前提なら、起動オプションも明示します。
cp -a /etc/sysconfig/named /etc/sysconfig/named.bak
cat >> /etc/sysconfig/named <<'EOF'
OPTIONS="-4"
EOF正引きゾーンを作成する
$TTL 86400
@ IN SOA ns1.si1230.com. root.si1230.com. (
2020010101
3600
900
604800
86400 )
IN NS ns1.si1230.com.
ns1 IN A 10.0.0.10
www IN A 10.0.0.20逆引きゾーンを作成する
$TTL 86400
@ IN SOA ns1.si1230.com. root.si1230.com. (
2020010101
3600
900
604800
86400 )
IN NS ns1.si1230.com.
10 IN PTR ns1.si1230.com.
20 IN PTR www.si1230.com.設定を検証して起動する
named-checkconf
named-checkzone si1230.com /var/named/myzone/si1230.com.zone
named-checkzone 0.0.10.in-addr.arpa /var/named/myzone/0.0.10.in-addr.arpa
systemctl enable named
systemctl restart named
systemctl status named名前解決を確認する
dig @127.0.0.1 www.si1230.com
dig @127.0.0.1 -x 10.0.0.20
dig @127.0.0.1 www.example.comまとめ
内部 DNS は、内部ゾーンの管理と外部名前解決の転送を同じ named で扱うことがあります。その場合でも、自分が権威を持つ名前と、forwarder に任せる名前を分けて読むことが重要です。CentOS 7 の既存環境では、allow-query と recursion の範囲を特に確認します。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。 - CentOS 7 ネットワーク設定 – network サービスと ifcfg の既存運用
Web / DNS サーバーの前提になる固定 IP や ifcfg 設定を確認します。 - CentOS 7 BIND 外部 DNS サーバー構築 – 公開ゾーンの基本設定
公開向け権威 DNS として BIND を使う場合の設定です。
参考書籍
書籍
DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。


CentOS8版はこちらです。
https://www.si1230.com/?p=40517