BINDを使って、権威サーバー+キャッシュサーバーの機能を併せ持ったDNSServerを構築記録を残します。
環境情報
CentOS-8.5.2111
パッケージ名 | バージョン |
---|---|
bind-utils | 9.11.26-6.el8.x86_64 |
bind | 9.11.26-6.el8.x86_64 |
bind-chroot | 9.11.26-6.el8.x86_64 |
- DNS_Server
- ipv4 192.0.2.1/24
- inet6 2001:0db8:ffff:ffff:ffff:ffff:ffff:fffa/96(a.f.f.f.f.f.f.f. f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.8.b.d.0.1.0.0.2)
- 外部dns 8.8.8.8 1.1.1.1
- clientIP 192.0.2.2/24 192.0.2.3/24
BINDパッケージインストール
bind-chrootはchroot化する設定だが、実際chroot化した影響でエラーが出たりしたので、使わなかった。
yum -y install bind bind-chroot bind-utils
etc/named.confの設定
options {
//listen-on port 53 { 127.0.0.1; };
listen-on port 53 { 192.0.2.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
//allow-query { 127.0.0.1; };
allow-query { 192.0.2.2; 192.0.2.3; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion no;
dnssec-enable yes;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "test.co.jp" IN {
type master;
file "test.co.jp";
allow-update { none; };
};
zone "100.51.198.in-addr.arpa" IN {
type master;
file "100.51.198.in-addr.arpa.rev";
allow-update { none; };
};
zone "f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.8.b.d.0.1.0.0.2.ip6.arpa" {
type master;
file "f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.8.b.d.0.1.0.0.2.ip6.arpa";
allow-update { none; };
};
zone "f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.8.b.d.0.1.0.0.2.ip6.int." {
type master;
file "f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.8.b.d.0.1.0.0.2.ip6.arpa";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
外部DNSサーバーに問い合わせる機能を付けたい場合は、
recursion yes;
forwarders { 8.8.8.8; 1.1.1.1; }; を指定する。
送信元アドレス許可設定はallow-query
(再起問い合わせ許可 allow-recursion { xxxxxxx; }; )
allow-query { any;};
すべてのIPからDNSの問い合わせに応答する
allow-query { trust;};
許可リストを作成する
allow-query { trust;};
acl trust {
192.168.1.0/24;
localhost;
};
正引きゾーンファイル設定
ゾーンファイルは/var/named配下に配置。
ホスト名からipアドレスを検索。
SOAの隣はDNSサーバのホスト名。さらにその隣に管理者メールアドレス。
$TTL 3600
@ IN SOA www.test.co.jp. root.test.co.jp. (
2019110401 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)
IN NS www.test.co.jp.
www IN A 198.51.100.1
test6 IN AAAA 2001:0db8:ffff:ffff:ffff:ffff:ffff:fffa
exam.test.co.jp. IN CNAME www.test.co.jp.
逆引きゾーンファイル設定
ipアドレスからホスト名を検索。
$TTL 3600
@ IN SOA www.test.co.jp. root.test.co.jp. (
2019110401 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)
IN NS www.test.co.jp.
1 IN PTR www.test.co.jp.
逆引きipv6ゾーンファイル設定
ipv6アドレスからホスト名。逆引きだけipv4とipv6を別のファイルに分けないといけない。
$TTL 3600
@ IN SOA www.test.co.jp. root.test.co.jp. (
2019110401 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)
IN NS www.test.co.jp.
a.f.f.f.f.f.f.f IN PTR www.test.co.jp.
named.confの構文チェック
etc/named.confの設定を確認する。
[root@localhost named]# named-checkconf -z
named.checkzoneでゾーンファイルチェック
ゾーンファイルの構文チェック。
判定OKとなっても全角が混じっていることがあり、nslookupで名前解決出来ずに「NXDOMAIN」と出力されることがあるので注意。
named-checkzone test.co.jp /var/named/test.co.jp
その後再起動。
[root@localhost named]# systemctl restart named
検証
WindowsServerからDNS_Server(192.0.2.1/24)に名前解決を実施
C:\Users\Administrator>nslookup www.test.co.jp 192.0.2.1
サーバー: Unknown
Address: 192.0.2.1
名前: www.test.co.jp
Address: 198.51.100.1
C:\Users\Administrator>nslookup 198.51.100.1 192.0.2.1
サーバー: Unknown
Address: 192.0.2.1
名前: www.test.co.jp
Address: 198.51.100.1