[gusuku] 「.io」도메인 - DNS에 의한 이름해결이 불안정하게 된 이야기(복구 완료 확인)

10297 단어 dig도메인dns

업데이트 보고서



io | DNSViz

12시간 전에는 down하고 있었지만, 그 3시간 후의 update에서는 복구하고 있는 듯
(단순히 response로 보고 있을 뿐이니까, 당시 제대로 쿼리도 복구했는지까지는 모르지만…)
  • Updated: 2016-10-28 14:35:21 UTC (about 12 hours ago)

  • Updated: 2016-10-28 18:10:44 UTC (about 9 hours ago) ※복구 완료

  • 실해 발생하고 나서 약 12시간 정도는 계속하고 있었던 것일까.

    이것 오픈 소스인가! 사용하기 쉽다.
    ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
    DNSViz - Github

    @ 마사히토시노다 씨도 비슷한 기사를 쓰고 있습니다.
    이쪽이 정보의 갱신이 빠릅니다.
    .io 도메인이 이상해졌기 때문에 dig로 조사해 보았다 (2016/10/28)

    실수와 바구니 지적이 있으면 코멘트하십시오.

    소개



    조금 적시의 이야기.
    10/28(금) AM10:20경, 우리가 제공하고 있는 서비스로 이름해결의 에러가 발생했으므로 그 트러블 슛의 모습을 쓰려고 한다.

    gusuku - kintone 애플리케이션 개발을 지원하는 플랫폼

    구수쿠의 도메인은 '.io' 도메인



    지금 날씬하고 유행하는 ccTLD.
    ccTLD에 대한 설명은 아래를 참조하십시오.
    ccTLD란? - JPNIC

    무슨 일이 일어났는가? 「.io」의 이름 해결을 할 수 없다!





    사내의 DNS로 이름 해결하려고 하면 이름 해결할 수 없다.
    Google Public DNS(8.8.8.8)를 지정해 이름 해결하면, 할 수 있거나 할 수 없거나.

    우리 환경의 경우는 CloudFront가 있는 관계로, 조금 DNS의 설정이 특수.


    초기 단계에서는 이름 확인이 불가능한 레코드가 hoge.gusuku.io에서 A 레코드에 별칭 레코드를 설정한 하위 도메인이었기 때문에 문제를 구분하기 위해 A 레코드의 별칭 레코드가 아닌 CNAME 에서 별칭을 직접 써 보았습니다.
    ; ANSWER SECTION:
    app.gusuku.io.      59  IN  CNAME   ********.cloudfront.net.
    

    그러나 그래도 이름 해결을 할 수 있거나 할 수 없거나.

    trace 해보기



    사내 DNS에 들어가 hoge.gusuku.io를 추적해 보았다.

    … 어라?
    $ dig app.gusuku.io +trace
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> app.gusuku.io +trace
    ;; global options: +cmd
    .           518400  IN  NS  C.ROOT-SERVERS.NET.
    .           518400  IN  NS  D.ROOT-SERVERS.NET.
    .           518400  IN  NS  E.ROOT-SERVERS.NET.
    .           518400  IN  NS  F.ROOT-SERVERS.NET.
    .           518400  IN  NS  G.ROOT-SERVERS.NET.
    .           518400  IN  NS  H.ROOT-SERVERS.NET.
    .           518400  IN  NS  I.ROOT-SERVERS.NET.
    .           518400  IN  NS  J.ROOT-SERVERS.NET.
    .           518400  IN  NS  K.ROOT-SERVERS.NET.
    .           518400  IN  NS  L.ROOT-SERVERS.NET.
    .           518400  IN  NS  M.ROOT-SERVERS.NET.
    .           518400  IN  NS  A.ROOT-SERVERS.NET.
    .           518400  IN  NS  B.ROOT-SERVERS.NET.
    ;; Received 508 bytes from 10.0.0.2#53(10.0.0.2) in 8 ms
    
    io.         172800  IN  NS  ns-a1.io.
    io.         172800  IN  NS  ns-a4.io.
    io.         172800  IN  NS  ns-a3.io.
    io.         172800  IN  NS  ns-a2.io.
    io.         172800  IN  NS  ns-l1.io.
    io.         172800  IN  NS  ns-d1.io.
    io.         172800  IN  NS  ns-y1.io.
    ;; Received 423 bytes from 202.12.27.33#53(202.12.27.33) in 42 ms
    
    io.         3600    IN  SOA ns1.communitydns.net. nicadmin.nic.io. 1477627507 3600 1800 3600000 3600
    ;; Received 104 bytes from 74.116.179.1#53(74.116.179.1) in 2 ms
    

    cf. 정상적으로 이름 해석할 수 있는 경우
    $ dig yahoo.co.jp +trace
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> yahoo.co.jp +trace
    ;; global options: +cmd
    .           518400  IN  NS  B.ROOT-SERVERS.NET.
    .           518400  IN  NS  C.ROOT-SERVERS.NET.
    .           518400  IN  NS  D.ROOT-SERVERS.NET.
    .           518400  IN  NS  E.ROOT-SERVERS.NET.
    .           518400  IN  NS  F.ROOT-SERVERS.NET.
    .           518400  IN  NS  G.ROOT-SERVERS.NET.
    .           518400  IN  NS  H.ROOT-SERVERS.NET.
    .           518400  IN  NS  I.ROOT-SERVERS.NET.
    .           518400  IN  NS  J.ROOT-SERVERS.NET.
    .           518400  IN  NS  K.ROOT-SERVERS.NET.
    .           518400  IN  NS  L.ROOT-SERVERS.NET.
    .           518400  IN  NS  M.ROOT-SERVERS.NET.
    .           518400  IN  NS  A.ROOT-SERVERS.NET.
    ;; Received 508 bytes from 10.0.0.2#53(10.0.0.2) in 8 ms
    
    jp.         172800  IN  NS  f.dns.jp.
    jp.         172800  IN  NS  g.dns.jp.
    jp.         172800  IN  NS  e.dns.jp.
    jp.         172800  IN  NS  c.dns.jp.
    jp.         172800  IN  NS  d.dns.jp.
    jp.         172800  IN  NS  a.dns.jp.
    jp.         172800  IN  NS  b.dns.jp.
    ;; Received 425 bytes from 192.228.79.201#53(192.228.79.201) in 167 ms
    
    yahoo.co.jp.        86400   IN  NS  ns01.yahoo.co.jp.
    yahoo.co.jp.        86400   IN  NS  ns11.yahoo.co.jp.
    yahoo.co.jp.        86400   IN  NS  ns02.yahoo.co.jp.
    yahoo.co.jp.        86400   IN  NS  ns12.yahoo.co.jp.
    ;; Received 169 bytes from 203.119.1.1#53(203.119.1.1) in 38 ms
    
    yahoo.co.jp.        300 IN  A   183.79.135.206
    yahoo.co.jp.        300 IN  A   182.22.59.229
    yahoo.co.jp.        900 IN  NS  ns12.yahoo.co.jp.
    yahoo.co.jp.        900 IN  NS  ns02.yahoo.co.jp.
    yahoo.co.jp.        900 IN  NS  ns01.yahoo.co.jp.
    yahoo.co.jp.        900 IN  NS  ns11.yahoo.co.jp.
    ;; Received 201 bytes from 118.151.254.149#53(118.151.254.149) in 2 ms
    

    「.io」의 네임서버에 대해서 dig 해 본다



    이 시점에서 아웃했던 것은 이하의 2 서버(10/28 13:22 시점)
  • ns-a2.io
  • ns-a4.io

  • norecurse 옵션 중요.
    이 옵션을 붙이면 재귀 쿼리를 하지 않으므로 순수하게 문의한 DNS 서버로부터의 응답을 얻을 수 있다.

    정상적인 경우



    위임처의 NS서버의 응답이 있다.
    $ dig @ns-a1.io app.gusuku.io +norec
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> @ns-a1.io app.gusuku.io +norec
    ; (2 servers found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19835
    ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;app.gusuku.io.         IN  A
    
    ;; AUTHORITY SECTION:
    gusuku.io.      86400   IN  NS  ns-429.awsdns-53.com.
    gusuku.io.      86400   IN  NS  ns-801.awsdns-36.net.
    gusuku.io.      86400   IN  NS  ns-1045.awsdns-02.org.
    gusuku.io.      86400   IN  NS  ns-1723.awsdns-23.co.uk.
    
    ;; Query time: 4 msec
    ;; SERVER: 194.0.1.1#53(194.0.1.1)
    ;; WHEN: Fri Oct 28 04:22:46 2016
    ;; MSG SIZE  rcvd: 171
    

    정상이 아닌 경우



    응답이 없다.
    $ dig @ns-a4.io app.gusuku.io +norec
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> @ns-a4.io app.gusuku.io +norec
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 55
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;app.gusuku.io.         IN  A
    
    ;; AUTHORITY SECTION:
    io.         3600    IN  SOA ns1.communitydns.net. nicadmin.nic.io. 1477628338 3600 1800 3600000 3600
    
    ;; Query time: 4 msec
    ;; SERVER: 74.116.179.1#53(74.116.179.1)
    ;; WHEN: Fri Oct 28 04:22:54 2016
    ;; MSG SIZE  rcvd: 104
    

    참조하는 서버에 따라서는 이름 해석할 수 없는 문제가 발생하고 있는 것 같다.
    (10/28 15:41 현재) 아직 이벤트 계속중・・・

    (10/28 18:40 현재) 근본의 원인은 아직 해결에는 이르지 않은 모양?

    NS 서버에서 ".io"도메인이 가지고 있는 영역 정보
    실시간은 아니지만 영역 정보를 알고 있다는 의미에서 매우 유용한 정보
    DNS zone details for: io (Date of latest check: Wed, 26 Oct 2016 22:58:07 -0400)

    Hacker News 에 게재되고 있다.
    IO domain DNS failure - Hacker News

    호스트 기반이 아닌 IP 기반에서도 확인해 보았습니다 (일단)



    이름 해석할 수 없는 NS 서버


    ns-a2.io.       1248    IN  A   194.0.2.1
    ns-a4.io.       1242    IN  A   74.116.179.1
    

    어느 쪽도 connection timed out 가 되는 모양.
    언제 복구할까
    $ dig @194.0.2.1 gusuku.io +norec
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> @194.0.2.1 gusuku.io +norec
    ; (1 server found)
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached
    
    $ dig @74.116.179.1 gusuku.io +norec
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.32.amzn1 <<>> @74.116.179.1 gusuku.io +norec
    ; (1 server found)
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached
    

    원래 ping도 날지 않는다. 의도적으로 떨어뜨리는가 또는 떨어지는가? . .
    $ ping 194.0.2.1
    PING 194.0.2.1 (194.0.2.1) 56(84) bytes of data.
    
    --- 194.0.2.1 ping statistics ---
    16 packets transmitted, 0 received, 100% packet loss, time 15527ms
    
    $ ping 74.116.179.1
    PING 74.116.179.1 (74.116.179.1) 56(84) bytes of data.
    
    --- 74.116.179.1 ping statistics ---
    55 packets transmitted, 0 received, 100% packet loss, time 54889ms
    

    그건 그렇고, 다른 정상적인 NS 서버는 ping 응답 이다.
    ;; ANSWER SECTION:
    ns-a3.io.       525 IN  A   74.116.178.1
    
    $ ping 74.116.178.1
    PING 74.116.178.1 (74.116.178.1) 56(84) bytes of data.
    64 bytes from 74.116.178.1: icmp_seq=1 ttl=54 time=3.12 ms
    64 bytes from 74.116.178.1: icmp_seq=2 ttl=54 time=2.94 ms
    64 bytes from 74.116.178.1: icmp_seq=3 ttl=54 time=2.96 ms
    64 bytes from 74.116.178.1: icmp_seq=4 ttl=54 time=2.96 ms
    ^C
    --- 74.116.178.1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3511ms
    rtt min/avg/max/mdev = 2.942/2.998/3.126/0.083 ms
    

    좋은 웹페이지 즐겨찾기