DNS 问题,网站离线。nslookup 周期性失败,dig/host 持续工作

DNS 问题,网站离线。nslookup 周期性失败,dig/host 持续工作

我的网站今天大部分时间都断断续续地处于宕机状态,我正疯狂地试图调试原因。这似乎是 DNS 问题,因为我将我的 DNS 服务器从 ISP 更改为 Google 后,8.8.8.8我的个人浏览器就修复了这个问题。但现在它也失败了!DownForEveryoneOrJustMe 说它已恢复,尽管我收到一些用户的投诉,说它没有恢复。

nslookup是间歇性的:

16:04: ~/d/coachup (master) > nslookup www.coachup.com 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
*** Can't find www.coachup.com: No answer

一整天下来,有时会返回结果,但现在不是。当我尝试使用我的 GoDaddy DNS 名称服务器之一(我认为它们是权威的?我从 获得它们whois)时,我得到:

16:06: ~/d/coachup (master) > nslookup www.coachup.com NS36.DOMAINCONTROL.COM
Server:         NS36.DOMAINCONTROL.COM
Address:        208.109.255.18#53

www.coachup.com canonical name = chiba-9316.herokussl.com.

另一个就比较奇怪了:

16:07: ~/d/coachup (master) > nslookup www.coachup.com NS35.DOMAINCONTROL.COM
Server:         NS35.DOMAINCONTROL.COM
Address:        216.69.185.18#53

*** Can't find www.coachup.com: No answer

16:08: ~/d/coachup (master) > nslookup www.coachup.com NS35.DOMAINCONTROL.COM
Server:         NS35.DOMAINCONTROL.COM
Address:        216.69.185.18#53

www.coachup.com canonical name = chiba-9316.herokussl.com.

然而,即使多次尝试,dig总是返回信息:

16:08: ~/d/coachup (master) > dig @8.8.8.8 www.coachup.com ANY

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 www.coachup.com ANY
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49917
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.coachup.com.               IN      ANY

;; ANSWER SECTION:
www.coachup.com.        2815    IN      CNAME   chiba-9316.herokussl.com.

;; Query time: 32 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 18 16:09:25 2013
;; MSG SIZE  rcvd: 68

16:09: ~/d/coachup (master) > dig @NS35.DOMAINCONTROL.COM www.coachup.com ANY

; <<>> DiG 9.8.3-P1 <<>> @NS35.DOMAINCONTROL.COM www.coachup.com ANY
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58865
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.coachup.com.               IN      ANY

;; ANSWER SECTION:
www.coachup.com.        3600    IN      CNAME   chiba-9316.herokussl.com.

;; AUTHORITY SECTION:
coachup.com.            3600    IN      NS      ns36.domaincontrol.com.
coachup.com.            3600    IN      NS      ns35.domaincontrol.com.

;; Query time: 309 msec
;; SERVER: 216.69.185.18#53(216.69.185.18)
;; WHEN: Wed Dec 18 16:09:39 2013
;; MSG SIZE  rcvd: 120

host同样可以持续发挥作用。

一些问题:

  • 为什么dighost能持续起作用,但 却不行nslookup
  • 如何确定我的权威名称服务器。whois这样做有用吗?

我的工作理论是,GoDaddy 名称服务器一直不稳定,有一次,当 Google8.8.8.8请求www.coachup.com但没有得到响应时,它会将其缓存一段时间。这听起来合理吗?但只有 和 不稳定nslookup,或 不dig不稳定host

还,Heroku 状态显示他们昨天正在进行“DNS维护”。这是否会导致这种情况?它显示现在是绿色的。

答案1

*为什么 dig 和 host 可以正常工作,而 nslookup 却不行?

因为运行 dig 时使用了“ANY”选项,这意味着您不仅在寻找“A”记录,还在寻找其他记录,例如 CNAME。而 nslookup 正在寻找“A”记录。有趣的是,当我执行“dig @8.8.8.8 www.coachup.com”时,我没有得到任何答案,但当我执行“dig @8.8.8.8 www.coachup.com cname”时,我得到了响应。

*如何确定我的权威名称服务器。whois 在那里有用吗?

whois 主要是一个管理数据库,要确定您的实际名称服务器,请使用“dig +trace www.coachup.com” -

[root@kauai ~]# dig +trace www.coachup.com

; > DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 > +trace www.coachup.com
;; 全局选项: +cmd
. 3600000 在 NS G.ROOT-SERVERS.NET。
. 3600000 在 NS K.ROOT-SERVERS.NET。
. 3600000 在 NS D.ROOT-SERVERS.NET。
. 3600000 在 NS J.ROOT-SERVERS.NET。
. 3600000 在 NS M.ROOT-SERVERS.NET。
. 3600000 在 NS C.ROOT-SERVERS.NET。
. 3600000 在 NS I.ROOT-SERVERS.NET。
. 3600000 在 NS H.ROOT-SERVERS.NET。
. 3600000 在 NS F.ROOT-SERVERS.NET。
. 3600000 在 NS A.ROOT-SERVERS.NET。
. 3600000 在 NS B.ROOT-SERVERS.NET。
. 3600000 在 NS E.ROOT-SERVERS.NET。
. 3600000 在 NS L.ROOT-SERVERS.NET。
;; 18 毫秒内从 192.168.10.109#53(192.168.10.109) 接收到 512 字节

com. 172800 IN NS j.gtld-servers.net。
com. 172800 IN NS h.gtld-servers.net。
com. 172800 IN NS f.gtld-servers.net。
com. 172800 IN NS d.gtld-servers.net。
com. 172800 IN NS a.gtld-servers.net。
com. 172800 IN NS l.gtld-servers.net。
com. 172800 IN NS k.gtld-servers.net。
com. 172800 IN NS g.gtld-servers.net。
com. 172800 IN NS b.gtld-servers.net。
com. 172800 IN NS m.gtld-servers.net。
com. 172800 IN NS c.gtld-servers.net。
com. 172800 IN NS i.gtld-servers.net。
com. 172800 IN NS e.gtld-servers.net。
;; 133 毫秒内从 192.33.4.12#53(192.33.4.12) 接收到 505 个字节

coachup.com。172800 IN NS ns35.domaincontrol.com。
coachup.com。172800 IN NS ns36.domaincontrol.com。
;; 138 毫秒内从 192.54.112.30#53(192.54.112.30) 接收到 117 个字节

www.coachup.com。3600 IN CNAME chiba-9316.herokussl.com。
;; 33 毫秒内从 208.109.255.18#53(208.109.255.18) 接收到 68 个字节

您的权威名称服务器位于以下部分 -

coachup.com。172800 IN NS ns35.domaincontrol.com。
coachup.com。172800 IN NS ns36.domaincontrol.com。

*我怀疑问题出在 Heroku,Google 和其他一些 DNS 服务器缓存了不存在的记录响应,之后它们开始从负缓存响应。一旦负缓存过期,它应该会起作用。我的猜测是,仍然是猜测,您的权威名称服务器确实提供了 cname 响应,但 Google DNS 服务器无法完成“chiba-9316.herokussl.com”的解析,假设 Herok 有问题。

为了测试这一点,我在几个公共 DNS 服务器上进行了挖掘 - 这些服务器是我从网站“http://pcsupport.about.com/od/tipstricks/a/free-public-dns-servers.htm“。所有网站都对 CNAME 做出了响应,但包括谷歌在内的少数网站没有对‘A’记录查询做出响应 -

请求“A”记录。注意:google dns 是“8.8.8.8”

[daniel@kauai ~]$ for dns in $(awk '{print $2}' /tmp/dnsservers ); do echo ==$dns===; dig @$dns www.coachup.com. +short ;done
==209.244.0.3==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
50.16.224.113
23.23.124.44
23.23.101.90
==8.8.8.8==
==8.26.56.26==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.124.44
23.23.101.90
50.16.224.113
==208.67.222.222==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
50.16.224.113
23.23.101.90
23.23.124.44
==156.154.70.1==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.124.44
23.23.101.90
50.16.224.113
==198.153.192.40==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.101.90
50.16.224.113
23.23.124.44
==81.218.119.11==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.124.44
23.23.101.90
50.16.224.113
==195.46.39.39==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
50.16.224.113
23.23.101.90
23.23.124.44
==23.90.4.6==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.101.90
23.23.124.44
50.16.224.113
==216.146.35.35==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
50.16.224.113
23.23.101.90
23.23.124.44
==89.233.43.71==
chiba-9316.herokussl.com。
elb002794-1867396571.us-east-1.elb.amazonaws.com。
23.23.101.90
50.16.224.113
23.23.124.44
==74.82.42.42==
==109.69.8.51==

请求 CNAME 查询 -

[daniel@kauai ~]$ for dns in $(awk '{print $2}' /tmp/dnsservers ); do echo ==$dns===; dig @$dns www.coachup.com. +short cname ;done
==209.244.0.3==
chiba-9316.herokussl.com。
==8.8.8.8==
chiba-9316.herokussl.com。
==8.26.56.26==
chiba-9316.herokussl.com。
==208.67.222.222==
chiba-9316.herokussl.com。
==156.154.70.1==
chiba-9316.herokussl.com。
==198.153.192.40==
chiba-9316.herokussl.com。
==81.218.119.11==
chiba-9316.herokussl.com。
==195.46.39.39==
chiba-9316.herokussl.com。
==23.90.4.6==
chiba-9316.herokussl.com。
==216.146.35.35==
chiba-9316.herokussl.com。
==89.233.43.71==
chiba-9316.herokussl.com。
==74.82.42.42==
chiba-9316.herokussl.com。
==109.69.8.51==
chiba-9316.herokussl.com。

相关内容