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
如果可以正常查诣到结果, 代表安装完成。