我在 Linux 机器(Debian 6)上使用 PowerDns。
我想设置 powerdns 服务器来将所有外部未解析的 DNS 查询解析到给定的内部主机。这可能吗?怎么做?我认为有必要使用 pdns-recursor,但我的配置文件不起作用!
我使用 mysql 作为后端。
我手动添加了 google.com 并且它可以正常工作,但是如果我删除条目,则会出现“服务器失败”的情况,根 DNS(或 ISNPNS)不会回答我。
答案1
PowerDNS 并非旨在提供递归结果。它旨在仅充当其所服务域的权威服务器。这意味着它将向其他主机提供域数据。
您可以添加 Recursor 模块,但我建议仅在内联网上使用它。它可能具有适当的安全性,以防止它被用于 DNS 放大攻击。
解决问题的最简单方法是将/etc/resolv.conf
文件配置为使用外部服务器来解析 DNS。您可以使用 ISP、Google、OpenDNS 或其他服务器。您应该检查是否可以在其发布的 Nameserver 地址(可能不是您的主机地址)上访问 PowerDNS 服务器。否则,您将不得不依赖备份名称服务器进行本地访问。
答案2
在 Debian 上
apt-get install pdns-recursor
可能会提供您想要的。递归器将绑定到 127.0.0.1 并默认只在那里监听,因此您可以很好地防御上述 DNS 放大攻击。
你可能还想阅读 http://cr.yp.to/djbdns/separation.html 为什么这两个功能由不同的程序提供。
BIND 可以简单地完成错误的。
答案3
这并不能回答你的字面问题,但也许你真正需要的只是在你的/etc/hosts文件?