我遇到了一个对我来说非常奇怪的问题。
我有 powerdns 服务器,可能有数千条 cname 记录。这些记录通过来自网络 http 服务的 mysql 查询插入到我的 DNS。这是我向我的客户免费提供 jhon_doe.MYHOST.COM 域名的一种方式。
当然,我希望尽快更新 DNS 信息 - 对于任何新创建的域。而且这确实发生了 - 几分钟甚至几秒钟后就可以访问域。
但过了一段时间,这些域名消失了。过了一段时间它们又出现了。我发现,我的 ttl 设置以前是:
SOA记录:12小时 CNAME记录:1小时
然后还发现,我的主 DNS 无法将更改通知我的辅助 DNS。(它可以,但由于某些未知原因,辅助 DNS 无法理解通知消息。我的辅助 DNS 是 NSD 服务器,不受我的控制)。
所以问题是:当当前 DNS 的主机名记录过期时,客户端会从我的 SECONDARY DNS 请求名称吗?而 SECONDARY DNS 还没有此记录?客户端会回答 NXDOMAIN 吗?或者这只是我的幻想,我不应该认为事情会这样发展?
答案1
客户端不知道哪个是主服务器,哪个是辅服务器。他们不在乎。列出的每个名称服务器都是权威的。如果客户端从一个名称服务器(随机挑选)获得查询的(空/NXDOMAIN)答案,它就不会询问另一个。
对于必须经常同步的大型区域,您可能应该运行自己的设置,并以比在每次更新时复制完整区域(如 DNS AXFR 所做的那样)更有效的方式同步您的名称服务器的后端数据库。