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

我是DNS服务器领域的新手,但作为当前工作的一部分,我应该升级我们的办公networking基础设施。

在查看可用选项后,我决定使用PowerDNS解决schemePDNS服务器。 主要是因为通过MySQL后端的简单pipe理选项。

我已经有PDNS服务器在运行,甚至可以满足我的需要,但是我看到旧BIND9和新PDNS的响应之间有一些显着的区别:附加部分丢失,答案是“不是授权”等。

基本上我们的DNS的要求是:

  • 如果请求的域位于MySQL后端的logging中(例如intranet-domain.ourdomain.com),则响应应该是authorative。
  • 如果请求的域不在MySQL后端的logging中,则该请求应该被转发到外部networking以从适当的授权DNS获得答案。

我们目前的设置是:

  • Debian 7
  • pdns(3.2标准回购)+ pdns-backend-mysql + poweradmin
  • pdns-recursor(否则它不解决任何外部域名)

问题

  • 我真的需要pdns-recursor为了解决外部地址工作? 如果有方法将未知地址转发给ISP DNS,请赐教。
  • 如何使响应看起来更像BIND9? 例如,我也想看更多的部分告诉我有关NS的请求地址等
  • 此外,如果我把我们的DHCP PDNS作为主要和BIND9作为辅助,那么响应总是来自BIND9,而不是PDNS。 尽pipe我将所有的logging和区域从BIND9导入到MySQL后端。 如何解决它?

pdns.conf

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 

recursor.conf

 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 

这听起来像你想要recursionparsing器和权威名称服务器到一个服务器。

通过在configuration文件中指定recursor选项,需要recursion处理的问题将被移交给指定的IP地址

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

文件接着说,

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

看起来你已经设法将pdns-recursor放在127.0.0.1上。

您可以通过发送dig或host命令来testing服务器的IP,并观察dns服务器的所有接口上wireshark或tcpdump的情况。

关于权威的国旗,请参见问题3:

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

编辑根据评论:

如果您想使用另一个名称服务器作为您的recursor,请将其设置为pdns.conf的recursor设置。 例如:

recursor:8.8.8.8