Red Hat Training

A Red Hat training course is available for RHEL 8

4.3. 将 BIND 配置为缓存 DNS 服务器

默认情况下,BIND DNS 服务器解析和缓存成功并失败的查找。随后,服务会从其缓存中应答相同记录的请求。这可显著提高 DNS 查找速度。

先决条件

  • 服务器的 IP 地址是静态的。

流程

  1. 安装 bindbind-utils 软件包:

    # yum install bind bind-utils

    这些软件包提供 BIND 9.11。如果您需要 BIND 9.16,请安装 bind9.16bind9.16-utils 软件包。

  2. 如果要在 change-root 环境中运行 BIND,请安装 bind-chroot 软件包:

    # yum install bind-chroot

    请注意,在 SELinux 处于 enforcing 模式(默认设置)的主机上运行 BIND 更为安全。

  3. 编辑 /etc/named.conf 文件,并在 options 语句中进行以下更改:

    1. 更新 listen-onlisten-on-v6 语句,以指定 BIND 应该侦听的 IPv4 和 IPv6 接口:

      listen-on port 53 { 127.0.0.1; 192.0.2.1; };
      listen-on-v6 port 53 { ::1; 2001:db8:1::1; };
    2. 更新 allow-query 语句,以配置哪些 IP 地址和范围客户端可以查询此 DNS 服务器:

      allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
    3. 添加 allow-recursion 语句,以定义 BIND 接受递归查询的 IP 地址和范围:

      allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
      警告

      不要在服务器的公共 IP 地址中递归。否则,服务器可能会成为大规模 DNS 扩大攻击的一部分。

    4. 默认情况下,BIND 通过将从根服务器递归查询到权威 DNS 服务器来解析查询。或者,您可以将 BIND 配置为将查询转发到其他 DNS 服务器,比如您的供应商之一。在这种情况下,添加一个带有 BIND 应该转发查询的 DNS 服务器的 IP 地址列表的 forwarders 语句:

      forwarders { 198.51.100.1; 203.0.113.5; };

      作为回退行为,如果转发器服务器没有响应,BIND 会以递归方式解析查询。要禁用此行为,请添加 forward only; 语句。

  4. 验证 /etc/named.conf 文件的语法:

    # named-checkconf

    如果命令没有显示输出,则语法为正确的。

  5. 更新 firewalld 规则,以允许传入的 DNS 流量:

    # firewall-cmd --permanent --add-service=dns
    # firewall-cmd --reload
  6. 启动并启用 BIND:

    # systemctl enable --now named

    如果要在 change-root 环境中运行 BIND,请使用 systemctl enable --now named-chroot 命令启用并启动该服务。

验证

  1. 使用新设置 DNS 服务器解析域:

    # dig @localhost www.example.org
    ...
    www.example.org.    86400    IN    A    198.51.100.34
    
    ;; Query time: 917 msec
    ...

    本例假定 BIND 在同一主机上运行并响应 localhost 接口上的查询。

    在第一次查询记录后,BIND 会将条目添加到其缓存中。

  2. 重复前面的查询:

    # dig @localhost www.example.org
    ...
    www.example.org.    85332    IN    A    198.51.100.34
    
    ;; Query time: 1 msec
    ...

    由于对条目进行了缓存,进一步对相同记录的请求会非常快,直到条目过期为止。

后续步骤

  • 配置网络中的客户端来使用此 DNS 服务器。如果 DHCP 服务器向客户端提供 DNS 服务器设置,请相应地更新 DHCP 服务器的配置。

其它资源