我的網站在一天中的大部分時間都間歇性地關閉,我正在瘋狂地嘗試調試原因。這似乎是一個 DNS 問題,因為將我的 DNS 伺服器從 ISP 更改為 Google8.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
同樣地,始終如一地工作。
一些問題:
- 為什麼
dig
和可以host
一致工作但不能nslookup
? - 如何確定我的權威網域名稱伺服器。在那裡工作嗎
whois
?
我的工作理論是,GoDaddy 網域伺服器一直不穩定,有一次當 Google 提出8.8.8.8
請求www.coachup.com
但沒有回應時,它會負面快取一段時間。這樣看起來合理嗎?但只有使用or時它才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。 。 NS K.ROOT-SERVERS.NET 中的 3600000 個。 。 3600000 在 NS D.ROOT-SERVERS.NET。 。 NS J.ROOT-SERVERS.NET 中的 3600000 個。 。 NS M.ROOT-SERVERS.NET 中的 3600000 個。 。 3600000 在 NS C.ROOT-SERVERS.NET。 。 NS I.ROOT-SERVERS.NET 中的 3600000 個。 。 3600000 在 NS H.ROOT-SERVERS.NET。 。 NS F.ROOT-SERVERS.NET 中的 3600000 個。 。 NS A.ROOT-SERVERS.NET 中的 3600000 個。 。 3600000 在 NS B.ROOT-SERVERS.NET。 。 NS E.ROOT-SERVERS.NET 中的 3600000 個。 。 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 在 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,但包括 google 在內的少數幾個沒有回應「A」記錄查詢 -
請求“A”記錄。注意:Google DNS 是“8.8.8.8”
[daniel@kauai ~]$ 為 $(awk '{print $2}' /tmp/dnsservers ) 中的 dns;執行 echo ==$dns===;挖掘@$dns www.coachup.com。 +短;完成 ==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 ~]$ 為 $(awk '{print $2}' /tmp/dnsservers ) 中的 dns;執行 echo ==$dns===;挖掘@$dns www.coachup.com。 +短 cname ;完成 ==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。