재귀 중간에 DNS 문제를 어떻게 해결할 수 있습니까? 10086 ;; flags: qr rd ra;

내 DNS에 정말 이상한 문제가 있습니다. 내 도메인 이름 ( strugee.net)은 일부 네트워크에서 확인할 수없고 다른 네트워크에서 확인할 수 없습니다.

예를 들어, 내 홈 네트워크 (서버와 동일한 네트워크)에서 :

% dig strugee.net

; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE  rcvd: 56

그러나 Digital Ocean에있는 서버에 로그인하면 도메인이 해결되지 않습니다.

% dig strugee.net

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net.           IN  A

;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE  rcvd: 40

그러나 신뢰할 수있는 네임 서버로 직접 이동하면 잘 작동합니다.

% dig @dns1.registrar-servers.com strugee.net

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; AUTHORITY SECTION:
strugee.net.        1800    IN  NS  dns3.registrar-servers.com.
strugee.net.        1800    IN  NS  dns4.registrar-servers.com.
strugee.net.        1800    IN  NS  dns2.registrar-servers.com.
strugee.net.        1800    IN  NS  dns1.registrar-servers.com.
strugee.net.        1800    IN  NS  dns5.registrar-servers.com.

;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE  rcvd: 172

어딘가에 큰 도메인에 문제가있어 도메인을 확인하지 못하는 것이 분명하지만 어디에서 알아낼 수없는 것 같습니다. dig도움이 될 수있는 옵션에 대한 맨 페이지를 훑어 보았지만 특별히 유용한 것을 찾지 못했습니다.

도메인 등록 및 DNS 호스팅으로 Namecheap에 있습니다. DNSSEC 옵션이 켜져 있습니다. 최근에 DNS 설정을 변경하지 않았습니다.

이 문제를 어떻게 디버깅하고 문제가있는 네임 서버를 찾을 수 있습니까?



답변

이 문제를 어떻게 디버깅하고 문제가있는 네임 서버를 찾을 수 있습니까?

daxd5는 좋은 시작 조언을 제공했지만 여기서 유일한 대답은 재귀 DNS 서버처럼 생각하는 방법을 알아야한다는 것입니다. 신뢰할 수없는 계층에는 구성이 잘못되어 수많은 구성이 잘못되어 SERVFAIL있으므로 DNS 전문가 또는 온라인 유효성 검사 도구가 필요합니다.

어쨌든, 목표는 당신을 도와주는 것이 아니라 그 질문에 대한 결정적인 대답이 없다는 것을 이해하고 싶었습니다.


귀하의 특별한 경우 strugee.net에는 DNSSEC로 서명 된 영역 인 것으로 나타 났습니다 . 이것은 참조 체인에 DSRRSIG레코드 가 있음에서 분명합니다 .

# dig +trace +additional strugee.net
<snip>
strugee.net.            172800  IN      NS      dns2.registrar-servers.com.
strugee.net.            172800  IN      NS      dns1.registrar-servers.com.
strugee.net.            172800  IN      NS      dns3.registrar-servers.com.
strugee.net.            172800  IN      NS      dns4.registrar-servers.com.
strugee.net.            172800  IN      NS      dns5.registrar-servers.com.
strugee.net.            86400   IN      DS      16517 8 1 B08CDBF73B89CCEB2FD3280087D880F062A454C2
strugee.net.            86400   IN      RRSIG   DS 8 2 86400 20160423051619 20160416040619 50762 net. w76PbsjxgmKAIzJmklqKN2rofq1e+TfzorN+LBQVO4+1Qs9Gadu1OrPf XXgt/AmelameSMkEOQTVqzriGSB21azTjY/lLXBa553C7fSgNNaEXVaZ xyQ1W/K5OALXzkDLmjcljyEt4GLfcA+M3VsQyuWI4tJOng184rGuVvJO RuI=
dns2.registrar-servers.com. 172800 IN   A       216.87.152.33
dns1.registrar-servers.com. 172800 IN   A       216.87.155.33
dns3.registrar-servers.com. 172800 IN   A       216.87.155.33
dns4.registrar-servers.com. 172800 IN   A       216.87.152.33
dns5.registrar-servers.com. 172800 IN   A       216.87.155.33
;; Received 435 bytes from 192.41.162.30#53(l.gtld-servers.net) in 30 ms

더 나아 가기 전에 서명이 유효한지 확인해야합니다. DNSViz 는 이러한 목적으로 자주 사용되는 도구 이며 실제로 문제가 있음을 확인합니다 . 그림의 화난 빨간색은 문제가 있음을 암시하지만 모든 것을 마우스로 움직이지 않고 왼쪽 사이드 바에서 알림 을 확장 할 수 있습니다 .

RRSIG strugee.net/A alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/MX alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/NS alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/SOA alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/TXT alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
net to strugee.net: No valid RRSIGs made by a key corresponding to a DS RR were found covering the DNSKEY RRset, resulting in no secure entry point (SEP) into the zone. (216.87.152.33, 216.87.155.33, UDP_0_EDNS0_32768_4096)

문제는 분명합니다. 영역의 서명이 만료되었고 키를 새로 고쳐야합니다. 일관성없는 결과가 나타나는 이유는 모든 재귀 서버에서 DNSSEC 유효성 검사가 활성화되어 있지 않기 때문입니다. 유효성이 검증 된 도메인은 도메인을 삭제하고 있으며 그렇지 않은 도메인은 평소처럼 작동하지 않습니다.


편집 : Comcast의 DNS 인프라는 DNSSEC 유효성 검사를 구현하는 것으로 알려져 있으며 고객 중 한 사람으로서 본인도보고 있음을 확인할 수 SERVFAIL있습니다.

$ dig @75.75.75.75 strugee.net | grep status
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2011

답변

신뢰할 수있는 이름 서버가 올바르게 응답하고 있음을 확인하는 동안 전체 DNS 확인 체인을 수행해야합니다. 즉, 루트 서버에서 전체 DNS 계층 구조를 아래로 내려갑니다.

$ dig net NS
;; ANSWER SECTION:
net.            172800  IN  NS  c.gtld-servers.net.
net.            172800  IN  NS  f.gtld-servers.net.
net.            172800  IN  NS  k.gtld-servers.net.
;; snipped extra servers given
$ dig @c.gtld-servers.net strugee.net NS
;; AUTHORITY SECTION:
strugee.net.        172800  IN  NS  dns2.registrar-servers.com.
strugee.net.        172800  IN  NS  dns1.registrar-servers.com.
;; snipped extra servers again

이것은 기본적으로 퍼블릭 DNS 서버가 작동하는지 확인하고 DNS 확인자가 수행하는 것과 동일한 작업을 수행합니다. 따라서 DNS 확인에 문제가없는 한 Digital Ocean 서버에서 위와 동일한 답변을 받아야합니다.

$ dig net NS
$ dig strugee.net NS
$ dig strugee.net

처음 두 개의 쿼리가 실패하면 Digital Ocean 측의 DNS가 실패합니다. 당신을 확인 /etc/resolv.conf하고 보조 DNS 서버를 쿼리하십시오. 보조 기능이 작동하면 리졸버 순서를 바꾸고 다시 시도하십시오.