在Fedora40上配置bind为缓存服务器
前提条件
服务器的 IP 地址是静态的,假设服务器的ip为192.0.2.1
安装软件
dnf install bind bind-utils
编辑 /etc/named.conf 文件
在options
字段中进行以下修改:
- 更新
listen-on
和listen-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; };
- 更新
allow-query
语句,以配置哪些 IP 地址和范围客户端可以查询此 DNS 服务器:allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
- 添加
allow-recursion
语句,以定义 BIND 接受递归查询的 IP 地址和范围:allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
- 在
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
验证
- 使用新设置 DNS 服务器解析域:
# dig @localhost www.example.org ... www.example.org. 86400 IN A 198.51.100.34 ;; Query time: 917 msec ...
- 重复前面的查询:
由于对条目进行了缓存,进一步对相同记录的请求会非常快,直到条目过期为止。
# dig @localhost www.example.org ... www.example.org. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...