目的
比较 powerdns 3.x 与 4.1.x 区别与管理方法
3.x 版本说明
软件需求 pdns-static-3.4.4-1.x86_64 pdns-recursor-3.7.2-1.x86_64
pdns-static 主要提供 pdns_server 功能, dns 解析功能
pdns_recursor 主要提供域名转发功能
架构说明
假设
pdns_server 监听 1.1.1.1:53 管理了 example.com 与 test.com 域名
pdns_recursor 监听 127.0.0.1:53 转发所有的 dns 域名解析到 8.8.8.8
说明
客户端需要进行 DNS 解析(aaa.example.com)
由 pdns_server 应答, 并从本地 backend 中返回解析结果
客户端需要进行 DNS 解析(aaa.mydns.com)
由 pdns_server 应答, 由于非本地管理域, 则转发请求至 pdns_recursor 进程(127.0.0.1:53)
pdns_recursor 转发 aaa.mydns.com 解析至 8.8.8.8
简要配置说明
pdns.conf
master=no
daemon=yes
local-address=1.1.1.1 (可以理解为当前本地 IP 地址为 1.1.1.1) 并且 pdns_server 监听 public network
local-port=53
recursor=127.0.0.1 (可以理解为当无法进行本地解释的域名, 都会转交至 127.0.0.1:53 进行解析)
recursor.conf
allow-from=0.0.0.0/0 (允许来自任何客户端 DNS 请求并执行转发)
daemon=yes
experimental-logfile=/var/log/pdns/pdns.log
#forward-zones-file=/etc/powerdns/forward-zone.conf (可以只针对某些域名才执行转发)
forward-zones-recurse=.=8.8.8.8 (所有 DNS 请求都转发至 8.8.8.8)
local-address=127.0.0.1 (监听地址)
local-port=53
4.1.x 版本说明
软件需求 pdns-4.1.0-1pdns.el7.x86_64 pdns-recursor-4.1.0-1pdns.el7.x86_64
pdns 主要提供 pdns_server 功能, dns 解析功能
pdns_recursor 主要提供域名转发功能
说明
客户端需要进行 DNS 解析(aaa.example.com)
由 pdns_recursor 应答
根据配置 forward-zones-file=/etc/pdns-recursor/zone 判断
假如 客户端解析的域存在在 zone file 中, 则进行转发
example.com=1.1.1.1:5300 (转发至 pdns_server 地址)
客户端需要进行 DNS 解析(aaa.mydns.com)
由 pdns_recursor 应答
默认会对所有客户请求转发至 forward-zones-recurse=.=8.8.8.8
简要配置说明
/etc/pdns-recursor/recursor.conf
allow-from=0.0.0.0/0 <- 允许所有客户端进行 DNS 请求
daemon=yes
forward-zones-file=/etc/pdns-recursor/zone <- 指定需要进行转发的域名 (由 zone 文件指定转发位置)
forward-zones-recurse=.=8.8.8.8 <- 没有指定的域名, 默认转发至 8.8.8.8
local-address=1.1.1.1 <- 监听地址
local-port=53
/etc/pdns-recursor/zone
example.com=1.1.1.1:5300
mydns.com=1.1.1.1:5300
/etc/pdns/pdns.conf
local-address=1.1.1.1 <- 监听地址
local-port=5300 <- dns 请求端口
master=yes
webserver=yes <- 提供 API 接口
webserver-address=0.0.0.0
webserver-allow-from=0.0.0.0/0
webserver-port=8081 <- api 端口
参考架构图
参考说明
Migrating from using recursion on the Authoritative Server to using a Recursor