やること
概要
CentOS 7を使ってDNSキャッシュサーバを構築し、それに対して別サーバから名前解決要求を出してレコードが引けることを確認します。
ネットワーク図
ネットワーク構成図を以下に示します。
環境
ホスト名とIPアドレス
ホスト名 | IPアドレス | 役割 |
TMDSVM01 | 10.0.0.112 | DNSキャッシュサーバ |
FILEVM01 | 10.0.0.111 | DNSクライアント(TMDSVM01から名前解決要求を出すサーバ) |
(ルータ) | 192.168.0.254 | WANに出ていくためのルータ |
バージョン
項目 | バージョン | 備考 |
OS | CentOS 7.9 | TMDSVM01とFILEVM01のOS。 |
BIND | 9.11.4-P2 | TMDSVM01にインストールするDNS(BIND)。 |
BINDの設定
/etc/named.conf
TMDSVM01の/etc/named.confを編集します。変更はoptionsステートメントの下記ディレクティブのみです。
- listen-on
- allow-query
- allow-recursion
~~~(省略)~~~
options {
listen-on port 53 { 10.0.0.112; }; ←名前解決要求を受け付ける(待ち受ける)IPアドレスを記載。
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 { 10.0.0.0/16; }; ←名前解決要求を受け付けるネットワークを記載。
allow-recursion { 10.0.0.0/16; }; ←再帰的に解決結果を送るネットワークを記載。
/*
- 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 yes; ←再帰的に解決する(DNSクライアントに結果を出す)ため「yes」のまま。
dnssec-enable yes;
dnssec-validation yes;
/* 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";
};
~~~(省略)~~~
リゾルバの設定
/etc/resolf.confを編集します。
TMDSVM01
[root@TMDSVM01 etc]# cat /etc/resolv.conf
nameserver 192.168.0.254 ←ルータに問い合わせるのでルータのIPアドレスを指定。
FILEVM01
[root@FILEVM01 ~]# cat /etc/resolv.conf
nameserver 10.0.0.112 ←DNSキャッシュサーバに問い合わせるのでTMDSVM01のIPアドレスを指定。
BINDの起動
TMDSVM01上でBINDを起動します。
[root@TMDSVM01 ~]# named-checkconf ←named.confの構文チェック。
[root@TMDSVM01 ~]# ←何も結果が返ってこないのでチェックOK。
[root@TMDSVM01 ~]# systemctl start named-chroot ←BINDを起動。
[root@TMDSVM01 ~]#
[root@TMDSVM01 ~]# systemctl enable named-chroot ←BINDを有効化。自動的に起動するように設定。
Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to /usr/lib/systemd/system/named-chroot.service.
[root@TMDSVM01 ~]#
[root@TMDSVM01 etc]# systemctl status named-chroot ←BINDのステータスを確認。
● named-chroot.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; enabled; vendor preset: disabled)
Active: active (running) since 金 2021-04-30 15:27:41 JST; 59min ago
Main PID: 3536 (named)
CGroup: /system.slice/named-chroot.service
mq3536 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-1408.awsdns-48.org/AAAA/IN': 2600:9...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-1408.awsdns-48.org/AAAA/IN': 2600:9...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-1408.awsdns-48.org/AAAA/IN': 2600:9...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-842.awsdns-41.net/AAAA/IN': 2600:90...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-842.awsdns-41.net/AAAA/IN': 2600:90...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-842.awsdns-41.net/AAAA/IN': 2600:90...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ns-842.awsdns-41.net/AAAA/IN': 2600:90...:1#53
4月 30 15:31:02 TMDSVM01 named[3536]: network unreachable resolving 'ping-t.com/AAAA/IN': 2600:9000:5305:8000::1#53
4月 30 15:46:33 TMDSVM01 named[3536]: network unreachable resolving 'ping-t.com/A/IN': 2600:9000:5306:d600::1#53
4月 30 15:46:33 TMDSVM01 named[3536]: network unreachable resolving 'ping-t.com/A/IN': 2600:9000:5303:4a00::1#53
Hint: Some lines were ellipsized, use -l to show in full.
動作確認
キャッシュDNSサーバが名前解決できることを確認
当たり前ですが、キャッシュDNSサーバ(TMDSVM01)はインターネットに繋がるので、インターネット上のサーバの名前解決ができることを確認します。
[root@TMDSVM01 ~]# nslookup www.uncle-atsushi.com ←このブログサイトの名前解決を要求
Server: 192.168.0.254 ←ルータに聞きに行っている。
Address: 192.168.0.254#53
Non-authoritative answer:
Name: www.uncle-atsushi.com
Address: 157.112.183.136 ←結果が返ってきた。
キャッシュDNSサーバに対してレコードが引けることを確認
キャッシュDNSサーバ(TMDSVM01)が確認したuncle-atsushi.comのIPアドレス(レコード)を、FILEVM01が引けることを確認します。
[root@FILEVM01 ~]# nslookup uncle-atsushi.com
Server: 10.0.0.112 ←TMDSVM01(キャッシュDNSサーバ)に聞きに行っている。
Address: 10.0.0.112#53
Non-authoritative answer:
Name: uncle-atsushi.com
Address: 157.112.183.136 ←TMDSVM01(キャッシュDNSサーバ)の持っているレコードを引けている。
以上です。
お読みいただきありがとうございました。
コメント