我有一个域名,我控制的DNS,是托管在互联网上。我还有一个NAT的内部网络(192.168.0.0/24),它有互联网接入,我也控制它。在这个内部网络上,我也有一个DNS解析器。两种域名系统软件都是PowerDNS。
我想要做的是让内部网络上的DNS解析器能够添加/更改来自权威服务器的查询和结果的记录。例如,权威服务器可能有一条用于animal.example.com的记录:
animal.example.com. IN AAAA 2001:140:283::1但是,我希望这样做,以便当内部客户端对animal.example.com进行dns查找时,他们可能会得到以下内容:
animal.example.com. IN AAAA 2001:140:283::1
animal.example.com. IN A 192.168.0.2显然,我可以设置内部DNS服务器来假装是example.com的权威,但这需要付出一定的努力才能使主DNS服务器和内部DNS服务器保持同步,因为这两者的记录是相同的。如果内部DNS服务器可以以某种方式成为主DNS服务器的从属服务器,但同时也有自己添加结果的规定,那将是理想的。
这个是可能的吗?
发布于 2011-02-06 09:15:34
实际上,如果我必须这样做,我将使用一个带有递归的Lua脚本,这个递归器会破坏postresolve上的数据。
我确实推荐了一些不同的东西:只需使用一个独立的权威区域(如internal.example.com ),您就可以从权威服务器中获得AXFR example.com,并简单地追加本地RFC1918数据。
通过这种方式,您仍然可以从您的局域网调试权威区域,就像它在internet上一样,并使用内部数据。
关于PowerDNS递归Lua脚本:http://doc.powerdns.com/recursor-scripting.html
发布于 2011-02-05 21:50:48
我认为您需要的是分阶段的DNS设置,但是PowerDNS不直接支持这种设置(不像Bind或DJBDNS)。作者对此的官方回应如下:http://mailman.powerdns.com/pipermail/pdns-users/2006-September/003779.html
我从来没有发现分片域名系统特别令人困惑,尤其是如果文件系统中文件布局清晰,例如./master-interal/domain.com ./master-horizon/domain.com。
他们建议的唯一选择是在服务器上运行两个不同的PowerDNS实例,侦听不同的端口。然后,我猜您将利用iptable将流量重定向到与端口53相关的任何实例。
发布于 2011-02-05 21:36:04
我强烈建议您不要走这条路,因为这是非常混乱、复杂和难以管理的。相反,您应该设置一个独立的内部域,如inside.example.com。然后,如果您的外部dns服务器也在您的内部网络上,您应该将其设置为对两个域都具有权威性。但是,如果您的外部dns服务器不在您的内部网络上,则应该将您的内部dns服务器设置为对inside.example.com具有权威性。然后,您的内部dns服务器应该将所有其他请求转发到外部dns服务器。
我意识到这样做的缺点是你必须在你所有的内部机器上改变域名,但是现在做那些预先的工作将会为你以后节省很多的混乱。
https://serverfault.com/questions/231649
复制相似问题