举例来说,在将 DNS 迁移到 cloudflare 期间,您输入的 NS1 名称不是“fred.ns.cloudflare.com”,而是输入了“ferd.ns.cloudflare.com”或类似名称,NS2 名称也是同样的情况。
您在更改传播后意识到这一点,因此您无法再在原始 DNS 主机上编辑 DNS,但 cloudflare 永远不会收到域。
有没有办法从这种情况中恢复过来/传输是否会首先失败或出现类似情况,或者你实际上会失去对 DNS 的控制?
—— 这对我来说并不是真正发生的事情,但却是一个潜在的噩梦场景,我找不到任何相关信息,这让我认为我可能是过于担心一些无关紧要的事情?
答案1
这种担忧是基于错误的假设,即域的当前权威名称服务器example.com.
会将责任转移给新的权威服务器,然后这种责任会以某种方式传播到各个地方。DNS 的工作方式并非如此。事实上:
父区域(
com.
)利用NS
其拥有的记录委托控制权。从
dig example.com +trace
:example.com. 172800 IN NS a.iana-servers.net. example.com. 172800 IN NS b.iana-servers.net. ;; Received 535 bytes from 192.5.6.30#53(a.gtld-servers.net)
DNS 不会传播;递归查询被缓存在 TTL 中(RFC 1034, 3.6):
TTL 是 RR 的生存时间。此字段是一个 32 位整数,以秒为单位,主要由解析器在缓存 RR 时使用。TTL 描述了 RR 在应被丢弃之前可以缓存多长时间。
NS
那么,如果更新了错误的记录,会发生什么情况……
到父区域?由于委派的权威名称服务器不存在或没有响应,域名将停止工作。这是一种可恢复的情况,因为您只需将正确的名称服务器提供给您的注册商,即可将其更新到父区域。
NS
但是,这需要一些时间,因为父级记录的TTL相当长:例如,这172800
等于 48 小时,因此缓存可能需要长达 48 小时才会过期。到当前授权区域?那只是配置错误;DNS 不一致。委托控制权的仍然是父区域,因此实际上什么都没有改变。