DNS 伺服器有幾種類型,例如主要、從屬、轉發和快取等,其中快取專用 DNS 是比較容易設置的一種。由於 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. 在上述結果中,您將看到幾個套件。我們需要從中選擇並僅安裝 bind 和 bind-utils 套件,使用以下 yum 命令。
# 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. 此外,我們需要現在測試 DNS 配置是否存在語法錯誤,然後再啟動 bind 服務:
# 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 Cache-Only DNS 伺服器
8. 如果您希望在chroot環境中部署僅緩存的DNS伺服器,您需要在系統上安裝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命令。
選擇任何網站並查詢兩次(我們將使用facebook.com作為示例)。請注意,使用dig第二次查詢完成得更快,因為它是從緩存中提供的。
# dig facebook.com

您也可以使用nslookup來驗證DNS伺服器是否按預期工作。
# nslookup facebook.com

摘要
在這篇文章中,我們已經解釋了如何在紅帽企業 Linux 7和CentOS 7中設置 DNS 僅快取伺服器,並在客戶端機器上進行了測試。如果您有任何問題或建議,請隨時使用下面的表格告訴我們。
Source:
https://www.tecmint.com/install-configure-cache-only-dns-server-in-rhel-centos-7/