PDNS 服务器的正确设置程序是什么?

PDNS 服务器的正确设置程序是什么?

我对 DNS 服务器领域还很陌生,但作为当前工作的一部分,我应该对我们的办公室网络基础设施进行升级。

在查看了可用选项后,我决定使用 PowerDNS 解决方案 PDNS 服务器。主要是因为通过 MySQL 后端可以轻松管理选项。

我已经运行了 PDNS 服务器,甚至可以满足我的需求,但我发现我们的旧 BIND9 和新 PDNS 的响应之间存在一些显著差异:缺少附加部分、答案“不权威”等等。

基本上要求我们的 DNS 为:

  • 如果请求的域名在 MySQL 后端的记录中(例如 intranet-domain.ourdomain.com),那么响应应该是权威的。
  • 如果请求的域名不在 MySQL 后端的记录中,则应将请求转发到外部网络以从适当的权威 DNS 获取答复。

我们的当前设置是:

  • Debian 7
  • pdns(来自标准 repo 的 3.2)+ pdns-backend-mysql + poweradmin
  • pdns-recursor(否则它不会解析任何外部域名)

问题

  • 我真的需要 pdns-recursor 才能使外部地址解析正常工作吗?如果有办法将未知地址转发到 ISP DNS,请告诉我。
  • 如何使响应看起来更像 BIND9?例如,我还想看到有关请求地址的 NS 等的附加部分。
  • 此外,如果我将我们的 DHCP PDNS 设置为主 DNS,将 BIND9 设置为辅 DNS,那么响应将始终来自 BIND9,而不是 PDNS。尽管我已将所有记录和区域从 BIND9 导入到 MySQL 后端。如何修复它?

域名服务器配置文件

allow-recursion=192.168.1.0/8,10.0.0.0/16,127.0.0.0/8 
allow-recursion-override=on 
config-dir=/etc/powerdns 
daemon=yes 
disable-axfr=yes 
guardian=yes 
lazy-recursion=yes 
local-address=192.168.1.5 
local-port=53 
master=yes 
module-dir=/usr/lib/powerdns 
recursor=127.0.0.1 
setgid=pdns 
setuid=pdns 
socket-dir=/var/run 
version-string=powerdns 
out-of-zone-additional-processing=yes 
include=/etc/powerdns/pdns.d

递归器配置文件

local-address=127.0.0.1
local-port=53
quiet=yes
setgid=pdns
setuid=pdns

pdns.local.gmysql

launch=gmysql
gmysql-host=localhost
gmysql-port=
gmysql-dbname=pdns
gmysql-user=pdns
gmysql-password=pdns
gmysql-dnssec=yes

答案1

听起来您想将递归解析器和权威名称服务器合并到一台服务器中。

通过在配置文件中指定 recursor 选项,需要递归处理的问题将交给指定的 IP 地址

http://doc.powerdns.com/html/recursion.html

该文件继续指出,注意:

注意不要将递归指向 PowerDNS 权威服务器本身,这会导致非常紧密的数据包循环!

看起来您已成功通过将 pdns-recursor 放在 127.0.0.1 上来将两者分开。

您可以通过向服务器的 IP 发送 dig 或 host 命令进行测试,并观察 dns 服务器的所有接口上使用 wireshark 或 tcpdump 发生的情况。

关于权威标志,请参见问题3:

http://doc.powerdns.com/pdns-users-faq.html

根据评论进行编辑:

如果您想使用另一个名称服务器作为递归器,请在 pdns.conf 的递归器设置中设置它。例如:

递归器:8.8.8.8

相关内容