DNS 네임 서버는 어떻게 작동합니까?


14

NS 레코드에는 두 개의 DNS 서버가 있습니다. 어젯밤에 DNS 서버 중 하나가 다운되었습니다. 예상대로 일부 DNS 서버는 호스트 이름을 확인하지 못했습니다. 이것이 일시적인 것으로 가정하고 NS 레코드의 TTL이 만료되면 (1 시간) 작동을 시작합니다.

1 시간이 지난 후에도 Earthlink, Verizon 및 OpenDNS 서버를 사용하는 데스크톱에서 DNS 시간 초과가 발생했습니다. 다른 DNS 서버가 응답하는지 확인했습니다.

dig @ns2.example.com www.example.com +short

이것은 효과가 있었다.

내 질문 :

  1. TTL이 만료 된 후에도 다른 DNS 서버가 다른 DNS 서버에 충돌하지 않은 이유에 대한 답변이 있습니까?
  2. DNS 서버는 SOA레코드 에서 도메인의 기본 DNS 서버를 선호 합니까?
  3. 사용 가능한 NS 레코드에서 이름 서버를 선택하는 데 사용되는 알고리즘이 있습니까? 구현에 따라 다르지만 여기에 적용되는 표준이있을 수 있습니다.

TTL은 아무 관련이 없습니다. 레코드가 변경되지 않았으므로 관련이 없습니다.
David Schwartz

아, 지금 봅니다. 도
Belmin Fernandez

답변:


17

이것은 불행한 자극입니다. 여러 DNS 서버는 안정성을 높여야하지만 실제로는 그 반대 효과가있는 경우가 많습니다.

문제는 클라이언트가 응답을 너무 오래 기다렸다가 서버가 같은 시간 동안 대기한다는 것입니다. 두 개의 DNS 서버 A와 B가 있다고 가정합니다. A가 작동 중이고 B가 실패했다고 가정합니다. 이것은 일어난다 :

  1. 클라이언트는 네임 서버 Z에 연결하여 정보를 요청합니다. Z는 B를 선택하고 쿼리를 보냅니다.

  2. 이름 서버 Z가 응답하지 않아 클라이언트가 시간 초과됩니다.

  3. 클라이언트는 이름 서버 Y를 시도합니다. Y는 B를 선택하고 쿼리를 보냅니다.

  4. 이름 서버 Z가 시간 초과되고 A를 시도합니다. 정답을 얻지 만 클라이언트는 더 이상 기다리지 않습니다.

  5. 이름 서버 Y가 응답하지 않아 클라이언트가 시간 초과됩니다.

  6. 클라이언트가 이름 서버 둘 다 응답하지 않으면 포기합니다.

  7. 이름 서버 Y가 시간 초과되고 A를 시도합니다. 정답을 얻지 만 클라이언트는 더 이상 기다리지 않습니다.

그리고 좋은 해결책이 없습니다. 네임 서버가 응답하는지 더 오래 기다릴수록 대기중인 네임 서버가 더 오래 대기하기 때문에 더 오래 기다려야합니다. 틀림없이 문제는 Y와 Z가 B를 충분히 빨리 포기하지 않았다는 것입니다.

기본적으로 이름 서버 중 하나라도 빠지면 일부 클라이언트는 나쁜 행운을 통해 나쁜 서버 만 시도했기 때문에 시간 초과됩니다.

밝은면에서 두 개의 네임 서버가 있고 하나가 실패하면 네임 서버의 약 75 %가 0 % 대신 응답을받습니다.


무슨 말인지 알 겠어 Eek. 따라서 클라이언트의 네임 서버 ( Z)는 마지막으로 사용한 네임 서버를 캐시하지 않습니까?
Belmin Fernandez

1
일부 네임 서버는 그렇게하고 때로는 도움이됩니다. 이름 서버가 실패한 정확한 방법에 따라 달라집니다. 이 모든 것이 UDP 위에 있다는 것을 기억해야하므로 (재전송 한두 번 후에도) 응답을 얻지 못하면 네임 서버에 문제가 있음을 증명하지 못합니다.
David Schwartz

Bind 8.2.3 서버가 전달자 목록에서 가장 빠르게 응답하는 서버를 선택한다는 DNS 및 BIND (Paul Albitz 및 Cricket Lui, O'Rielly p278) 사본을 읽었습니다. 즉, 목록의 서버가 실패하면 서버가 실패합니다. 거의 자동으로 삭제됩니다. 바인드 9는 아직이를 구현하지 않고 포워드 서버를 목록 순서로 조회합니다. 이것이 바뀌 었는지 아는 사람이 있습니까?
Jaydee

DNS 설정에 익숙하지 않은 사람들을 위해 (이를 이해하는 데 시간이 걸렸습니다)이 예제의 DNS 이름 서버 Z와 Y는 클라이언트 네트워크에 기반한 재귀 이름 서버입니다 (예 : ISP가 제공하는 DNS 서버) DHCP를 통해 고객에게. 이러한 서버가 클라이언트 DNS 확인자 (예 : 장치 운영 체제)보다 시간 초과 값이 길면 문제가 발생합니다.
Jordan Rieger

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.