averainy's Blog

averainy

15 Oct 2024

在Fedora40上配置bind为缓存服务器

前提条件

服务器的 IP 地址是静态的,假设服务器的ip为192.0.2.1

安装软件

dnf install bind bind-utils

编辑 /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; };
    
  4. forwarders语句中添加上游的dns服务器地址:
    forwarders { 198.51.100.1; 203.0.113.5; };
    

验证语法

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

    named-checkconf

无输出即为语法正确。

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

# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload

启动并启用 BIND

systemctl enable --now named

验证

  1. 使用新设置 DNS 服务器解析域:
    # dig @localhost www.example.org
    ...
    www.example.org.    86400    IN    A    198.51.100.34
    
    ;; Query time: 917 msec
    ...
    
  2. 重复前面的查询:
    # dig @localhost www.example.org
    ...
    www.example.org.    85332    IN    A    198.51.100.34
    
    ;; Query time: 1 msec
    ...
    
    由于对条目进行了缓存,进一步对相同记录的请求会非常快,直到条目过期为止。

Categories