私のサイトは、一日の大半にわたって断続的にダウンしており、原因を突き止めるのに必死です。DNS サーバーを ISP から Google に変更したら、8.8.8.8
個人用ブラウザでは問題が解決したので、DNS の問題のようです。しかし、今度はそれも失敗しています。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 ネームサーバーの 1 つ (信頼できるものだと思います。 から取得しました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.
もう 1 つはより薄片状です。
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
応答がなかったため、しばらくの間そのことをネガティブにキャッシュしていたということです。これはもっともらしいと思いますか? しかし、不安定なのは と の場合だけで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 > +トレースwww.coachup.com ;; グローバルオプション: +cmd . 3600000 IN NS G.ROOT-SERVERS.NET. . 3600000 IN NS K.ROOT-SERVERS.NET. . 3600000 IN NS D.ROOT-SERVERS.NET. . 3600000 IN NS J.ROOT-SERVERS.NET. . 3600000 IN NS M.ROOT-SERVERS.NET. . 3600000 IN NS C.ROOT-SERVERS.NET. . 3600000 IN NS I.ROOT-SERVERS.NET. . 3600000 IN NS H.ROOT-SERVERS.NET. . 3600000 IN NS F.ROOT-SERVERS.NET. . 3600000 IN NS A.ROOT-SERVERS.NET. . 3600000 IN NS B.ROOT-SERVERS.NET. . 3600000 IN NS E.ROOT-SERVERS.NET. . 3600000 IN NS L.ROOT-SERVERS.NET. ;; 192.168.10.109#53(192.168.10.109) から 18 ミリ秒で 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. ;; 192.33.4.12#53(192.33.4.12) から 133 ミリ秒で 505 バイトを受信 coachup.com. 172800 IN NS ns35.domaincontrol.com. coachup.com. 172800 IN NS ns36.domaincontrol.com. ;; 192.54.112.30#53(192.54.112.30) から 138 ミリ秒で 117 バイトを受信 www.coachup.com. 3600 IN CNAME chiba-9316.herokussl.com. ;; 208.109.255.18#53(208.109.255.18) から 33 ミリ秒で 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 ~]$ for dns in $(awk '{print $2}' /tmp/dnsservers ); do echo ==$dns===; dig @$dns www.coachup.com. +short ;完了 ==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 をご覧ください。