在 RHEL/CentOS 7 中安装和配置仅缓存 DNS 服务器 – 第 10 部分

DNS 服务器有几种类型,如主服务器、从服务器、转发服务器和缓存服务器等,其中缓存服务器是最容易设置的一种。由于 DNS 使用 UDP 协议,它提高了查询时间,因为它不需要确认。

RHCE Series: Setup Cache-Only DNS in RHEL and CentOS 7 – Part 11

缓存服务器也被称为解析器,它将查询 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
Search DNS Bind Package

2. 在上述结果中,您将看到几个软件包。从中,我们需要选择并仅安装 bindbind-utils 软件包,使用以下 yum 命令进行安装。

# yum install bind bind-utils -y
Install DNS Bind in RHEL/CentOS 7

第 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; };
Configure Cache-Only DNS in CentOS and RHEL 7

这些指令指示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
Configure and Start DNS Named Service

7. 接下来,打开防火墙上的端口53。

# firewall-cmd --add-port=53/udp
# firewall-cmd --add-port=53/udp --permanent
Open DNS Port 53 on Firewall

第3步:在RHEL和CentOS 7中配置Chroot Cache-Only DNS服务器。

如果您想在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
Configure DNS on Client Machine

并按照以下内容编辑/etc/resolv.conf

nameserver 192.168.0.18

11. 最后,是检查我们的缓存服务器的时候了。为此,您可以使用dig实用程序nslookup命令

选择任何网站并对其查询两次(我们将使用facebook.com作为一个例子)。注意,第二次使用dig查询时,查询完成得更快,因为它是从缓存中提供的。

# dig facebook.com
Check Cache only DNS Queries

您还可以使用nslookup来验证DNS服务器是否如预期般工作。

# nslookup facebook.com
Checking DNS Query with nslookup

总结

在本文中,我们已经解释了如何在Red Hat Enterprise Linux 7CentOS 7中设置DNS仅缓存服务器,并在客户端机器上进行了测试。如果您有任何问题或建议,请随时使用下面的表格告诉我们。

Source:
https://www.tecmint.com/install-configure-cache-only-dns-server-in-rhel-centos-7/