一、PowerDNS Recursor 介绍
PowerDNS Recursor是一个开源的递归DNS服务器,用于向DNS客户端提供域名解析服务。它具有高性能、高可用性和灵活性等特点,并通过实现先进的负载均衡和缓存机制来提高响应速度和稳定性。
PowerDNS Recursor支持多种记录类型和DNS协议,包括IPv6、DNSSEC、EDNS等。它还支持DNS-over-TLS和DNS-over-HTTPS等安全传输协议,以保护用户隐私和数据安全。
PowerDNS Recursor可以部署在Linux、Unix和Windows等操作系统上,而且它的配置文件简单易懂,易于使用和管理。由于其性能和灵活性优秀,PowerDNS Recursor被广泛用于互联网服务提供商、企业和组织等场景中,为用户提供快速、可靠的域名解析服务。
- PowerDNS权威服务器安装配置教程请阅读下面的文章:
二、PowerDNS Recursor 安装
- 这里采用两台服务器安装PowerDNS-Recursor,实现主备
- 以下操作两台节点都需要执行
curl -o /etc/yum.repos.d/powerdns-rec-47.repo https://repo.powerdns.com/repo-files/el-rec-47.repo
yum clean all
yum makecache
yum install pdns-recursor
三、PowerDNS Recursor 配置
- 官方文档:https://doc.powerdns.com/recursor/settings.html
- 以下操作两台节点都需要执行
cd /etc/pdns-recursor/
# 备份默认的配置,然后清空原有内容并修改
mv recursor.conf{,_bak}
#过滤本机IP并定义变量,注意网卡名称根据实际情况填写
IP_ADDR=`ifconfig ens33 | grep 'inet' |tr -s ' ' | cut -d' ' -f3`
cat > recursor.conf <<EOF
daemon=yes
#loacl-address为pdns-recursor监听地址
local-address=${IP_ADDR},127.0.0.1
allow-from=0.0.0.0/0
local-port=53
#本地Host解析记录配置文件
#etc-hosts-file=/etc/pdns-recursor/dns-hosts.local
export-etc-hosts=on
#本地转发配置文件
forward-zones-file=/etc/pdns-recursor/zones
#forward-zones-recurse选项,用于转发所有未匹配域名的解析
forward-zones-recurse=.=114.114.114.114;8.8.8.8
#hint-file=/etc/pdns-recursor/named.ca
pdns-distributes-queries=no
reuseport=yes
max-cache-entries=2000000
#mac-negative-ttl参数用于缩短无应答域名的缓存时间
max-negative-ttl=60
dnssec=off
webserver=yes
webserver-address=0.0.0.0
webserver-port=8082
webserver-allow-from=0.0.0.0/0
api-key=vmware
dont-query=127.0.0.1/8
EOF
- 参数解释:
loacl-address:pdns-recursor监听地址,请根据实际情况修改forward-zones-recurse:用于转发所有未匹配域名的解析mac-negative-ttl:用于缩短无应答域名的缓存时间,例如:test.dqzboy.cn解析记录尚未创建时,如果请求该记录解析,pdns-recursor会缓存空解析记录(时间默认为1小时),在缓存未被清除前,1小时内的解析都是空。配置此参数后,空解析记录默认缓存60秒钟etc-hosts-file:用于通过本地文件解析域名;例如,业务系统同时对内和对外提供服务,公网域名为www.dqzboy.cn(36.248.208.11),内网服务器地址为192.168.66.110,最佳方法是内网请求www.dqzboy.cn解析到内网IP地址(192.168.66.110),此场景下就可以通过此文件声明解析记录。forward-zones-file:用于声明指定域名解析转发,例:企业内部域名为dqzboy.cn,权威服务器为192.168.66.10dont-query=127.0.0.1/8:递归服务器默认不对私有IP地址进行二次解析,需文章来源(Source):https://dqzboy.com 要修改PowerDNS递归服务器的 dont-query=127.0.0.1/8
# 配置本地转发
cd /etc/pdns-recursor/
cat > /etc/pdns-recursor/zones <<EOF
# 内网域名转发举例,匹配到dqzboy.cn的主域转发给powerdns进行解析
+dqzboy.cn=192.168.66.10;192.168.66.11 #powerdns主备服务器IP;英文分号分隔
# 未匹配上,转发给下面的上游DNS
+.=114.114.114.114,114.114.115.115
EOF
- 配置说明:带加号开头为递归解析,不带+号开头为迭代解
原文链接:https://dqzboy.com 析
四、PowerDNS Recursor 运行
systemctl start pdns-recursor.service
systemctl status pdns-recursor.service
systemctl enable pdns-recursor.service
五、PowerDNS Recursor 测试
- 修改192.168.66.110这台服务器/etc/resolv.conf的配置,修改为PowerDNS Recursor主备服务器的IP地址
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.66.12
nameserver 192.168.66.13
- 然后通过Power Admin页面添加一条A记录:test.dqzboy.cn解析到192.168.66.110

- 访问test.dqzboy.cn测试解析情况


六、PowerDNS Recursor 监控
- Pdns Recursor服务器IP加8082端口


必须 注册 为本站用户, 登录 后才可以发表评论!