DNS 시간 초과는 어떻게 작동합니까? up A for mysql.xavamedia.nl (업데이트

최근에 호스팅 된 DNS 공급자가있는 서버의 IP 주소를 요청하는 원격 서비스가 다음과 같이 응답하는 문제가있었습니다.

DNS problem: SERVFAIL looking up A for mysql.xavamedia.nl

(업데이트 : 여기에 언급 된 원격 서비스는 Let ‘s Encrypt입니다. 문제 추적기에 대해 버그 를 신고 하여이 경로로 나아갔습니다.)

로컬 네트워크에서 테스트 할 때 호스팅 된 DNS 서버에서 빈 DNS 응답을받는 경우가있었습니다. 이것은 DNS 레코드가 캐시에없는 경우에만 발생하기 때문에 간헐적으로 발생하며 DNS 서버가 실제로 사용 중일 때만 문제가됩니다.

빈 응답 메시지에 대한 Wireshark 설명은 다음과 같습니다.

빈 응답의 Wireshark 스크린 샷

물론 대부분의 DNS 쿼리와 응답은 UDP를 통해 전송되므로 로컬 확인자는 응답을 잠시 기다렸다가 포기합니다. 제가 지금 궁금하게 생각하는 것은 DNS 응답 시간에 대한 지침이 있습니까? 내 DNS 호스팅 업체가 어깨를 으 and하며 로컬 리졸버가 빈 응답을 너무 빨리 보냈다고 말했습니다. 이전에는이 ​​문제가 없었지만 오류 모드가없는 빈 DNS 응답 인 오류 모드에 놀랐습니다.

누군가 이것이 어떻게 작동 해야하는지에 대한 지침과 DNS 호스팅이 잘못하고 있음을 언제 / 어떻게 증명할 수 있는지 알고 있습니까?



답변

당신이보고있는 빈 응답은로 알려진 합성 상태 NODATA입니다. NODATA그리고 NXDOMAIN모두 이름이 존재하지 않는, 그러나 것을 나타냅니다 NXDOMAIN모든 이름에 적용 아래 아니라 표시된 기록. NODATA해당 이름이 요청되지 않은 유형의 레코드와 연결되어 있거나 요청한 항목 아래에 다른 레코드가 있다고 조언합니다. (즉 example.test.xavamedia.nl.)

귀하의 테이크 아웃 NODATA하고 NXDOMAIN효과적으로 이러한 맥락에서 동일 : 요청 된 이름과 유형의 기록은 존재하지 않았다. 권위있는 네임 서버는 요청 된 도메인에 도달 한, 그리고 그것은 그 이름과 유형의 기록이 존재하지 않았다고 진술 다시 대답했다. 이것은 통신 오류가 아닙니다. 권위있는 서버는 데이터가 없다고 말했다. 대화하려는 서버가 이미이 요청을 처리했으며 지난 4 시간 내에 해당 레코드가없는 것을 부정 캐시했습니다. (14400 초는의 SOA 레코드에 의해 정의 된 네거티브 캐시 간격입니다. xavamedia.nl.)

나도 없다 NXDOMAINNODATA 자신에 의해 이 경우에 발생하지만 해결 라이브러리 아마의 검색 도메인의 권한이있는 DNS 서버에 대한 트리거에게 제한 시간을 설정 할 수있다 DNS 검색 접미사를 추가로 여기에서 이동할 때 시간 초과가 발생합니다.

이 중 어느 것도 검색 SERVFAIL할 때 응답 이없는 이유를 설명하지 않습니다 mysql.xavamedia.nl.. 그것은 재귀 서버가 권위있는 서버로부터 대답을 얻는 데 문제가 있음을 나타냅니다. 신뢰할 수있는 서버가 (으)로 응답 SERVFAIL했거나 재귀 서버가 신뢰할 수있는 서버에 도달 할 수 없거나 재귀 서버가 반환 된 데이터가 유효하지 않다고 판단했습니다. 제공 한 정보로는이 중 어느 것도 입증 할 수 없습니다.


답변

RFC 1123 “6.1.3.3 효율적인 리소스 사용”섹션 http://tools.ietf.org/rfcmarkup?rfc=1123#page-77에 정의 된 지침을 제외하고는 구체적인 지침을 모릅니다.

“5 초 이상”의 시간 초과 값이 지정되었습니다. RFC는 또한 임시 장애를 캐시해야한다고 명시하고 있습니다. 이는 클라이언트가 RFC 섹션 2.2를 위반하는 경우 과도한 DNS 요청을 방지하기위한 것입니다. 이 섹션에서는 클라이언트가 소프트 오류가 발생한 경우 재시도간에 “합리적인”시간을 기다려야한다고 설명합니다.

이 주제에 대한 Stackoverflow 스레드도 있지만 실제 관찰을 제외하고는 더 많은 정보가 포함되어 있지 않습니다. /programming/3036054/ideal-timeout-period-for-dns-lookup

이것이이 주제에 대해 말할 수있는 전부입니다. 다른 사람이 더 추가해야 할 경우 관심이 있습니다.


답변