我一直有一些问题某个网络供应商使用未更改的名称服务器,导致我的网站无法被其客户看到。我不会为此烦恼,除非他们是爱尔兰最大的 ISP 之一。
他们声称这些记录在我的网站的旧名称服务器上仍然有效,因此他们不应该进行更改,直到他们收到回复告知他们该网站没有 DNS 记录。
我的问题是,什么是正确的行为?网络上的所有其他网络提供商、isp、dns 服务器都已更新为我的新名称服务器。
他们是否遵循一些技术上正确但被忽略的 RFC,该 RFC 指出他们不需要检查新的名称服务器,直到旧的名称服务器返回错误?
更新:
沃达丰最终联系了我,说他们已经解决了这个问题,更重要的是,他们现在正在将问题上报给相应的技术人员,这样这个问题就不会影响到其他人。希望这能解决问题。
答案1
您似乎遇到了一个问题,称为子粘性解析器。
对于每个域名,有两组可能的NS
记录 - 父区域的记录和区域本身的记录。
一些递归解析器将缓存从子进程学习到的集合,然后反复返回这些服务器进行所有后续刷新。这是儿童粘性行为。如果父区域记录发生更改,但(原始)子区域记录保持不变,则这些儿童粘性解析器将无法注意到父区域的变化。
许多(如果不是大多数)实现都会恢复到父NS
记录,以确保当前NS
记录集从缓存中过期时它们不会发生变化。这被认为是“正常行为”,但 RFC 中没有明确规定。
解决此问题儿童粘性您应该用NS
显示新服务器名称的正确记录替换旧服务器中的记录。
答案2
他们是否遵循一些技术上正确但被忽略的 RFC,该 RFC 指出他们不需要检查新的名称服务器,直到旧的名称服务器返回错误?
我们怎么知道?
据我所知,没有这样的事——他们应该刷新记录每一个当他们收到具有已过期 TTL 的缓存记录请求时。
答案3
好吧,我在 ns.webfusion.co.uk 上看到了您的域数据的记录。遗憾的是,您没有在旧 NS 上关闭区域,但这个 t 并不能为沃达丰的行为开脱。我现在来解释一下。好吧,让我们假设沃达丰解析器前一段时间缓存了两条记录:A 代表 www,NS 代表域名。但我看到
Quering 212.67.202.1 for {cookingisfun.ie.,NS}
; Answer ID: 18467 QR: true OPCODE: QUERY AA: true TC: false RD: true
; RA: false RCODE: NOERROR qc 1 an 2 au 0 ad 2
; Question section:
;cookingisfun.ie. IN NS
; Answer section:
cookingisfun.ie. 1d IN NS ns2.hosteurope.com.
cookingisfun.ie. 1d IN NS ns.hosteurope.com.
; Authority section:
;(none)
; Additional section:
ns2.hosteurope.com. 2h IN A 92.51.159.40
ns.hosteurope.com. 2h IN A 212.67.202.2
即 NS 记录必须在接收一天后过期并从缓存中删除
Quering 212.67.202.1 for {www.cookingisfun.ie.,A}
; Answer ID: 18467 QR: true OPCODE: QUERY AA: true TC: false RD: true
; RA: false RCODE: NOERROR qc 1 an 1 au 0 ad 0
; Question section:
;www.cookingisfun.ie. IN A
; Answer section:
www.cookingisfun.ie. 1d IN A 212.67.220.186
; Authority section:
;(none)
; Additional section:
;(none)
; Query took: 94 msec
; Server queried: 212.67.202.1[udp]
相同的 1 天间隔适用于 www.cookingisfun.ie 的 A
即,经过一天的延迟后,沃达丰必须重新询问 A,并且路径上的某些递归器将返回新的 NS 和新的 NSes - 新的 A。
因为我们知道这是不是发生,我认为这是强 RFC 忽略字符串(将过期数据存储在缓存中 - 请参阅我对您上一个问题的回答)。Toby,我认为,您可以将我上面的请求展示给沃达丰,并询问“WTF??? 为什么使用过期数据?你一定不询问 212.67.202.2与 cookingisfun.ie 无关很久以前。 尽快修复”