DNS 伺服器有幾種不同類型, 分別有 Master, Slave, Forwarding 及 Cache, 其中 cache-only DNS 伺服器是最簡單的 DNS 伺服器類型, 它不用設定任何網域, 它的作用是收到 DNS 查詢後, 會將結果放到 cache 內, 當下一次收到相同查詢時, 會直接從 cache 返回結果, 那便可以縮知 DNS 查詢的時間。
以下會示範在 RHEL 7 及 CentOS 7 安裝及設定 Cache-only DNS 伺服器。
首先安裝 bind 套件, 這個動作可以很簡單透過 YUM 完成:
# yum install bind bind-utils bind-chroot -y
安裝好 bind 套件後, 可以開始設定, 建立 /var/named/chroot/etc/named.conf 的連結到 /etc/named.conf
# ln -s /etc/named.conf /var/named/chroot/etc/named.conf
開啟檔案 /etc/named.conf:
# vi /etc/named.conf
將裡面的 listen-on, allow-query 及 allow-query-cache 三行設定成這樣:
listen-on port 53 { 127.0.0.1; any; };
allow-query { localhost; any; };
allow-query-cache { localhost; any; };
allow-query { localhost; any; };
allow-query-cache { localhost; any; };
儲存檔案後離開文字編輯器。
這時可以用 named-checkconf 檢查 /etc/named.conf 的語法是否正確:
# named-checkconf /etc/named.conf
設定 firewall 讓 port 53 對外開放:
# firewall-cmd –add-port=53/udp
# firewall-cmd –add-port=53/udp –permanent
# firewall-cmd –add-port=53/udp –permanent
如果有開啟 SELinux, 執行以下指令:
# semanage fcontext -a -t named_conf_t /etc/named.conf
# semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones
# semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones
現在可以重新啟動 named, 及設定開機自動啟動 named:
# systemctl restart named
# systemctl enable named
# systemctl enable named
然後可以用 dig 測試 cache-only dns 伺服器是否運作正常:
# dig www.google.com @127.0.0.1
如果可以正常查詣到結果, 代表安裝完成。