RHEL / CentOS 7 安裝 Cache DNS 伺服器

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; };

儲存檔案後離開文字編輯器。

這時可以用 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

如果有開啟 SELinux, 執行以下指令:

# semanage fcontext -a -t named_conf_t /etc/named.conf
# semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones

現在可以重新啟動 named, 及設定開機自動啟動 named:

# systemctl restart named
# systemctl enable named

然後可以用 dig 測試 cache-only dns 伺服器是否運作正常:

# dig www.google.com @127.0.0.1

如果可以正常查詣到結果, 代表安裝完成。


Leave a Reply