我正在尝试将 DNS 服务器从 178.32.xx.xx 迁移到 162.243.xx.xx,但一旦我关闭第一个服务器 (178),一些用户就会报告该网站处于离线状态。我还使用 WhatsMyDNS 进行了检查,一旦我在 178 上关闭命名,几乎所有全球 DNS 复制器都会在网站的 A 条目中显示 X。
我已禁用从属 DNS,并将所有 IP 条目更改为 162,包括 NS 记录,现在所有记录都指向 162。现在已经过去一周多了,我无法关闭旧服务器,否则一切都将离线。
我使用 ZPanel 进行 DNS 条目管理,但我检查了区域文件,它们都是正确的,指向 162。如果我让旧服务器保持打开状态并检查 WhatsMyDNS,则一切正常。如果我将其关闭,那就太可怕了!
我遗漏了什么吗?感谢您的帮助。
答案1
问题出在.com.br
根服务器。
为了达到这一点,我首先找到org
根服务器,因为我们想要azulvirtual.org
:
> dig org NS
; <<>> DiG 9.6-ESV-R4-P3 <<>> org NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12744
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;org. IN NS
;; ANSWER SECTION:
org. 5827 IN NS a0.org.afilias-nst.info.
org. 5827 IN NS a2.org.afilias-nst.info.
org. 5827 IN NS b0.org.afilias-nst.org.
org. 5827 IN NS b2.org.afilias-nst.org.
org. 5827 IN NS c0.org.afilias-nst.info.
org. 5827 IN NS d0.org.afilias-nst.org.
;; Query time: 10 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Dec 5 10:41:41 2013
;; MSG SIZE rcvd: 159
然后从其中一个服务器请求你的名称服务器:
> dig @a0.org.afilias-nst.info azulvirtual.org NS
; <<>> DiG 9.6-ESV-R4-P3 <<>> @a0.org.afilias-nst.info azulvirtual.org NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63061
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;azulvirtual.org. IN NS
;; AUTHORITY SECTION:
azulvirtual.org. 86400 IN NS ns2.sirothost.com.br.
azulvirtual.org. 86400 IN NS ns1.sirothost.com.br.
;; Query time: 213 msec
;; SERVER: 199.19.56.1#53(199.19.56.1)
;; WHEN: Thu Dec 5 10:41:57 2013
;; MSG SIZE rcvd: 85
到目前为止,这是正确的结果。但现在我们需要找到ns1.sirothost.com.br
或ns2.sirothost.com.br
。为此,我们需要com.br
根服务器:
> dig com.br NS
; <<>> DiG 9.6-ESV-R4-P3 <<>> com.br NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39126
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;com.br. IN NS
;; ANSWER SECTION:
com.br. 21600 IN NS c.dns.br.
com.br. 21600 IN NS b.dns.br.
com.br. 21600 IN NS d.dns.br.
com.br. 21600 IN NS e.dns.br.
com.br. 21600 IN NS f.dns.br.
com.br. 21600 IN NS a.dns.br.
;; Query time: 65 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Dec 5 10:42:22 2013
;; MSG SIZE rcvd: 124
然后向其中一个人询问ns1.sirothost.com.br
。这就是我们得到错误 IP 地址的地方。
> dig @b.dns.br ns2.sirothost.com.br
; <<>> DiG 9.6-ESV-R4-P3 <<>> @b.dns.br ns2.sirothost.com.br
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46093
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;ns2.sirothost.com.br. IN A
;; AUTHORITY SECTION:
sirothost.com.br. 86400 IN NS ns1.sirothost.com.br.
sirothost.com.br. 86400 IN NS ns2.sirothost.com.br.
;; ADDITIONAL SECTION:
ns1.sirothost.com.br. 86400 IN A 178.32.65.90
ns2.sirothost.com.br. 86400 IN A 54.213.72.90
;; Query time: 208 msec
;; SERVER: 200.189.41.10#53(200.189.41.10)
;; WHEN: Thu Dec 5 10:42:53 2013
;; MSG SIZE rcvd: 102
请注意,我一直直接从权威来源挖掘数据,因此这里不涉及缓存。等待不会自动解决此问题。
这些是胶水您的注册商(或者更确切地说是 的注册商sirothost.com.br
)提供给根服务器的记录。
您可以通过以下方式解决此问题:告知注册商azulvirtual.org
您想要使用不同的名称服务器(不是ns1.sirothost.com.br
和ns2.sirothost.com.br
),或者告知注册商sirothost.com.br
该域的名称服务器有一个新的 IP 地址。
要理解为什么我必须提出所有这些请求,请阅读经典DNS 为何如此工作问题和Andrew B 关于缓存如何影响 +trace 查询的回答使用挖掘。