DNSサーバーには、マスター、スレーブ、転送、およびキャッシュなど、いくつかのタイプがあります。キャッシュ専用DNSは、セットアップが容易なものの1つです。DNSはUDPプロトコルを使用するため、確認を必要としないため、クエリ時間が改善されます。

キャッシュ専用DNSサーバーは、リゾルバーとも呼ばれ、DNSレコードをクエリし、他のサーバーからすべてのDNS詳細を取得し、各クエリリクエストをキャッシュに保存して、将来同じリクエストを実行するときにはキャッシュから提供します。これにより、レスポンス時間がさらに短縮されます。
CentOS/RHEL 6にDNSキャッシュ専用サーバーを設定する場合は、次のガイドに従ってください:
CentOS/RHEL 6でのキャッシュ専用DNS名前サーバーの設定
私のテスト環境
DNS server : dns.tecmintlocal.com (Red Hat Enterprise Linux 7.1) Server IP Address : 192.168.0.18 Client : node1.tecmintlocal.com (CentOS 7.1) Client IP Address : 192.168.0.29
ステップ1:RHEL/CentOS 7にキャッシュ専用DNSサーバーをインストールする
1. キャッシュ専用DNSサーバーは、bindパッケージを介してインストールできます。パッケージ名を覚えていない場合は、以下のコマンドを使用してパッケージ名を簡単に検索できます。
# yum search bind

2. 上記の結果から、いくつかのパッケージが表示されます。その中から、以下のyumコマンドを使用して、bindとbind-utilsパッケージのみを選択してインストールする必要があります。
# yum install bind bind-utils -y

ステップ2:RHEL/CentOS 7でキャッシュ専用DNSを設定
3. DNSパッケージがインストールされたら、DNSを設定できます。お好みのテキストエディターを使用して/etc/named.conf
を開き、以下の変更を行います(または必要に応じて設定を使用できます)。
listen-on port 53 { 127.0.0.1; any; }; allow-query { localhost; any; }; allow-query-cache { localhost; any; };

これらのディレクティブは、DNSサーバーがUDPポート53でリッスンし、localhostおよびサーバーに到達する他のすべてのマシンからのクエリとキャッシュされた応答を許可するように指示します。
4. このファイルの所有権をroot:named
に設定する必要があります。また、SELinuxが有効になっている場合、構成ファイルを編集した後、そのコンテキストがnamed_conf_t
に設定されていることを確認する必要があります。図4に示すように(補助ファイル/etc/named.rfc1912.zones
にも同じことが適用されます)。
# ls -lZ /etc/named.conf # ls -lZ /etc/named.rfc1912.zones
それ以外の場合は、進行する前にSELinuxコンテキストを設定してください。
# semanage fcontext -a -t named_conf_t /etc/named.conf # semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones
5. さらに、BINDサービスを開始する前にDNS構成を構文エラーのテストする必要があります。
# named-checkconf /etc/named.conf
6. 構文検証の結果が完璧に見える場合、namedサービスを再起動して新しい変更を有効にし、サービスをシステムの起動時に自動的に開始し、その状態を確認します。
# systemctl restart named # systemctl enable named # systemctl status named

7. 次に、ファイアウォールでポート53を開きます。
# firewall-cmd --add-port=53/udp # firewall-cmd --add-port=53/udp --permanent

ステップ3:RHELおよびCentOS 7でChrootキャッシュ専用DNSサーバー
8.キャッシュのみのDNSサーバーをchroot環境内に展開する場合は、システムにパッケージchrootがインストールされている必要があります。デフォルトでchrootにハードリンクされているため、追加の構成は必要ありません。
# yum install bind-chroot -y
パッケージchrootがインストールされたら、新しい変更を有効にするためにnamedを再起動できます:
# systemctl restart named
9.次に、/var/named/chroot/etc/
内にシンボリックリンク(/etc/named.conf
とも呼ばれる)を作成します:
# ln -s /etc/named.conf /var/named/chroot/etc/named.conf
ステップ4:クライアントマシンでDNSを構成する
10.クライアントマシンにDNSキャッシュサーバーIP 192.168.0.18をリゾルバーとして追加します。次の図に示すように、/etc/sysconfig/network-scripts/ifcfg-enp0s3
を編集します:
DNS=192.168.0.18

そして/etc/resolv.confを次のようにします:
nameserver 192.168.0.18
11.最後に、キャッシュサーバーを確認する時間です。これを行うには、digユーティリティまたはnslookupコマンドを使用できます。
任意のウェブサイトを選択し、2回クエリを実行します(ここではfacebook.comを例にします)。digを使用すると、2回目のクエリはキャッシュから提供されるため、はるかに高速に完了します。
# dig facebook.com

nslookupを使用してDNSサーバーが期待どおりに機能しているかどうかを確認することもできます。
# nslookup facebook.com

要約
この記事では、Red Hat Enterprise Linux 7とCentOS 7でDNSキャッシュ専用サーバーを設定する方法と、クライアントマシンでのテスト方法を説明しました。何か質問や提案がある場合は、以下のフォームを使用してお知らせください。
Source:
https://www.tecmint.com/install-configure-cache-only-dns-server-in-rhel-centos-7/