陈旧的DNS从属服务器被认为是有害的?

自从我涉足DNS设置以来,这已经有一段时间了,所以我的知识可能有些过时。

我们有一个主服务器由我们的团队pipe理的域,而从服务器由主机公司提供。 在某个时候,我们决定转换到另一个托pipe公司。 同时,我们决定主服务器和从服务器都由我们来pipe理。 作为准备这个过程的一部分,我们减less了刷新,重试和过期域的参数,以使得任何改变传播得更快一些。 然后,我们将服务器移到新的主机上,对区域文件进行了更改,升级了串行并重新加载了DNS服务器。 传播过程在某种程度上是不平衡的。 大部分DNS服务器都有新的数据。 然而有些则不是,即使是在过期设置之后(由一些DNSpipe理员强制),一周的默认过期设置。

在调查可能的原因,我们发现,我们的服务器configuration错误,只允许从奴隶查询。 因此,在相当长的一段时间内,我们的服务器的任何外部查询将会失败,但是会与从属服务器一起工作。 这当然是立即纠正的。 我们也发现,以前的托pipe公司仍然有我们的奴隶区域,并响应手动(NSLOOKUP /主机)查询提供区域的过时的看法。

所以我的问题是:一个老奴隶DNS服务器,不知何故负责片状DNS传播? 如果某些DNS服务器命中某个区域的过期/刷新时间,是否从顶层(根服务器)一直走DNS树,从而得到他的数据? 还是只是检查服务器,它最近从区域信息?

编辑:对不起,没有提及它清楚,但自然我在registry级更改域的DNS条目。 如果我使用nslookup / host进行非recursion查询,并从TLD到我的域名,所有事情都是一致的。 然而,仍然有一些DNS服务器提供旧区域数据作为非权威答案。

您根本无法修复拒绝收听TTL设置的pipe理员。 所以忘了这个问题,因为这不是你能解决的问题。

假设无法解决,那么如果你做了所有其他正确的步骤,那么你就没有办法做到这一点。 您需要尽可能在一个小窗口中尽可能地同步服务器,但即使如此,总是有一个小窗口,主窗口在奴隶之前。

重要的是,如果你放弃一个奴隶,改变区域中的NSlogging, 改变NSlogging的父区域的概念。 确保你记得你的父母有NSlogging的副本和与这些NSlogging关联的关联的“胶水”(IP地址)。 如果你没有改变你父母的观念,那么这可能是你的问题的原因。

DNS不会传播。 上一台主机上的从属服务器可能会影响域的名称parsing的唯一方法是,它仍然列为域的名称服务器。 检查您域名的WHOIS信息,并检查您的域名注册商,看看您的域名列出哪些名称服务器。 如果旧的从服务器列出,那么你需要得到修复。 一旦你的名字服务器被列为唯一的名称服务器,那么你应该是好的。 至于其他DNS服务器不尊重你的TTL,你无能为力。 至于为您的域名托pipe区域的从属服务器,只要它们不是您的域名的授权,就无关紧要。

如果需要,我可以为Microsoft和Google托pipeDNS区域,但对于使用我的DNS服务器进行名称parsing的DNS客户端而言,这一点很重要。 如果从属服务器被任何DNS客户端使用,并且从属服务器仍然为您的域名作答,则会影响这些客户端的域名parsing,但所有其他DNS客户端将不受影响。

运行运行dig +trace NS your.domain.com然后询问上面的每个名称服务器,他们对your.domain.com的名称服务器有何看法。 用att.com举个例子:

 $ dig NS +trace att.com ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 <<>> NS +trace att.com ;; global options: +cmd . 395258 IN NS d.root-servers.net. . 395258 IN NS e.root-servers.net. . 395258 IN NS c.root-servers.net. . 395258 IN NS f.root-servers.net. . 395258 IN NS m.root-servers.net. . 395258 IN NS g.root-servers.net. . 395258 IN NS l.root-servers.net. . 395258 IN NS a.root-servers.net. . 395258 IN NS k.root-servers.net. . 395258 IN NS j.root-servers.net. . 395258 IN NS b.root-servers.net. . 395258 IN NS h.root-servers.net. . 395258 IN NS i.root-servers.net. ;; Received 508 bytes from 212.2.96.53#53(212.2.96.53) in 213 ms com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. ;; Received 497 bytes from 192.33.4.12#53(c.root-servers.net) in 190 ms att.com. 172800 IN NS ns3.attdns.com. att.com. 172800 IN NS ns2.attdns.com. att.com. 172800 IN NS ns1.attdns.com. ;; Received 134 bytes from 192.48.79.30#53(j.gtld-servers.net) in 420 ms att.com. 3600 IN NS ns1.attdns.com. att.com. 3600 IN NS ns3.attdns.com. att.com. 3600 IN NS ns2.attdns.com. att.com. 3600 IN NS ns4.attdns.com. ;; Received 168 bytes from 144.160.20.47#53(ns3.attdns.com) in 210 ms 

这里j.gtld-servers.net说,att.com的域名服务器是ns [123] .attdns.com,而ns3.attdns.com说,实际上是第四个。 如果你问所有的名字服务器的COM。 关于att.com的NSlogging。 ( dig NS att.com @a.gtld-servers.net.然后dig NS att.com @b.gtld-servers.net.等等),你就可以得到完整的图片,当他问的时候,一个正确configuration的客户端可以得到什么为您的域的名称服务器。

然后询问每个实际名称服务器的域名(ns [1234] .attdns.com。),他们如何看待他们的域名(例如att.com)的NSlogging,并且你有完整的图片。

这可能有点乏味,但是如果你得到的所有答案都是理智的,那么你的configurationcertificate是正确的。 尽你所能,缩短了过渡阶段,最后一切都会好起来,但是对于ISP有意忽略DNS条目的TTL来降低服务器的负载,你无能为力。

如前所述,其他答案实际上并不完全准确。 所以,回答你的问题:

一个老奴隶DNS服务器,不知何故负责片状DNS传播?

是的,大概是你自己确定的,并用“我所看到的效果”代替“片状传播”(这不是发生了什么):

如果某些DNS服务器命中某个区域的过期/刷新时间,是否通过从顶层(根服务器)一直走DNS树来获取他的数据? 还是只是检查服务器,它最近从区域信息?

除了进行DNS查询的人不下载整个区域以及到期/刷新时间与它无关的事实之外,您正在思考正确的方向。 已经查询过您的域及其子域的DNS信息的用户将被发送该域的委派信息。 在信息的TTL达到之前,他们会直接与他们知道的内容DNS服务器直接对话。 如果他们继续与您的旧DNS主机服务通话,他们将会每次都以新的TTL告诉旧的代表团信息。

这是一个可以无限期延续的循环。 这就是为什么将代理从一组内容DNS服务器切换到另一组内容的正确方法的说明,例如这些指令和这些指令等,强调不要忽略更新旧服务器的委托信息的步骤所有这些 – 发布

必须与您的旧托pipe公司进行沟通,并将其更新为正在发布的内容。