DNS 传播故障排除

DNS 传播故障排除

上周将 mysite.com 的域名注册转移到 namecheap,没有出现问题,但当时没有更改 DNS。大约 12 小时前,我尝试将 DNS 切换到 namecheap 名称服务器(通过 namecheap 面板进行的“简单”操作),然后创建 A 记录以指向与域名之前指向的 IP 地址不同的 IP 地址。

通过 whatsmydns.com 检查传播,所有记录都显示 mysite.com 指向新的 IP 地址,这表明 namecheaps DNS 服务器运行正常。

奇怪的是,我无法通过 mysite.com 上的浏览​​器访问域名,从我在芝加哥的桌面(作为 RCN 宽带用户)访问时超时;“ping mysite.com”返回旧的 IP 地址并且挂起,这与我的预期并不相符,不是一个“正确”的结果。

但是,如果我在登录新泽西州数据中心的服务器时“curl mysite.com”,我会得到预期的响应(输出是预期的 html ),并且“ping mysite.com”看起来正确,显示了我期望的新更新 IP 地址。最后,如果我通过 ssh 进入芝加哥大学网络并运行 ping 或 curl,我会得到“正确”/预期的响应。

所以,我认为这是一个典型的 DNS 传播问题。我知道才过了 12 个小时,但我对 DNS 非常不熟悉,现在想知道我是否遗漏了什么。

我很乐意等待一段时间,但这样有点粗心。所以希望我提供了足够的线索,让比我聪明的人可以确认这看起来像是 DNS 传播问题,或者可以向我指出更多测试可能错误的方法。谢谢。

编辑: 进一步调查后,以下是 dig mysite.com @a.root-servers.net 的输出”:

编辑2:polynomial 指出我没有在 @ 前留空格,导致结果不正确。我已更新查询,以下是新结果。

; <<>> DiG 9.6-ESV-R4 <<>> mysite.com @a.root-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19132
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mysite.com.       IN      A

;; AUTHORITY SECTION:
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net.     172800  IN      A       192.5.6.30
a.gtld-servers.net.     172800  IN      AAAA    2001:503:a83e::2:30
b.gtld-servers.net.     172800  IN      A       192.33.14.30
b.gtld-servers.net.     172800  IN      AAAA    2001:503:231d::2:30
c.gtld-servers.net.     172800  IN      A       192.26.92.30
d.gtld-servers.net.     172800  IN      A       192.31.80.30
e.gtld-servers.net.     172800  IN      A       192.12.94.30
f.gtld-servers.net.     172800  IN      A       192.35.51.30
g.gtld-servers.net.     172800  IN      A       192.42.93.30
h.gtld-servers.net.     172800  IN      A       192.54.112.30
i.gtld-servers.net.     172800  IN      A       192.43.172.30
j.gtld-servers.net.     172800  IN      A       192.48.79.30
k.gtld-servers.net.     172800  IN      A       192.52.178.30

;; Query time: 3 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Fri Oct 14 01:04:16 2011
;; MSG SIZE  rcvd: 497

然后从“dig mysite.com @dns1.registrar-servers.com”(这是一个 namecheap dns 服务器):

; <<>> DiG 9.6-ESV-R4 <<>> mysite.com @dns1.registrar-servers.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55527
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mysite.com.       IN      A

;; ANSWER SECTION:
mysite.com. 1800   IN      A       [IP ADDRESS THAT IS CORRECT]

;; Query time: 31 msec
;; SERVER: 69.16.244.25#53(69.16.244.25)
;; WHEN: Fri Oct 14 01:07:09 2011
;; MSG SIZE  rcvd: 57

答案1

这听起来确实像是 TTL 问题。有几点,在实际切换之前,您应该降低 TTL。通常,网站的 DNS TTL 可能很高,因此您可以减少 DNS 请求的数量。但是,最好在需要进行更改前几天降低该值。

要诊断此问题,您只需从名称服务器中找到您当前正在等待的 TTL。您还可以查询其他一些流行的解析器,看看其他人可能会看到什么。这是 dig 命令:

for i in 4.2.2.1 google-public-dns-a.google.com 10.4.1.11
do
  echo $i
  dig bo.lt @$i | grep ^bo.lt
done                                 
4.2.2.1
bo.lt.                  43200   IN      A       199.204.81.1
google-public-dns-a.google.com
bo.lt.                  49643   IN      A       199.204.80.1
10.4.1.11
bo.lt.                  81226   IN      A       199.204.81.1

这表明,对于域bo.ltGTEI,其记录还剩下 43,000 秒,google 还剩下 49k,而我的本地名称服务器还剩下 81,226 秒。

相关内容