루트 네임서버의 목적은 무엇입니까?

루트 네임서버의 목적은 무엇입니까?

에서https://www.cloudflare.com/en-au/learning/dns/dns-server-types/

13개의 DNS 루트 네임서버는 모든 재귀 확인자에게 알려져 있으며, 재귀 확인자가 DNS 레코드를 탐색하는 첫 번째 지점입니다. 루트 서버는 도메인 이름이 포함된 재귀 확인자의 쿼리를 받아들이고 루트 이름 서버는 해당 도메인의 확장자(.com, .net, .org 등)를 기반으로 재귀 확인자를 TLD 이름 서버로 지정하여 응답합니다.

그런데 재귀 확인자가 TLD 서버에 직접 쿼리할 수 없는 이유는 무엇입니까? 제가 이해한 바로는 모든 확인자 서버에 쉽게 배포할 수 있는 TLD 서버가 약 1500개에 불과합니다.

모든 TLD 서버를 확인자에게 배포하려면 루트 서버와 같은 것이 필요합니다. 그러나 TLD 목록을 초기화하려면 한 번만 폴링해야 합니다. 제가 이해한 바에 따르면 모든 DNS 요청은 루트 서버에 ".com의 TLD 서버는 어디에 있습니까?"라고 묻습니다. 오히려 비효율적인 것 같나요?

답변1

그런데 재귀 확인자가 TLD 서버에 직접 쿼리할 수 없는 이유는 무엇입니까? 제가 이해한 바로는 모든 확인자 서버에 쉽게 배포할 수 있는 TLD 서버가 약 1500개에 불과합니다.

1,500개의 서버 목록이 있으면 업데이트를 훨씬 더 자주 배포해야 하며, 그러한 목록을 모든 사용자(리졸버를 실행하는 사용자일지라도)에게 배포할 필요가 없도록 하는 것이 DNS가 내장된 이유 중 하나입니다. 첫 번째 장소.

이 작업을 수행하는 것이 가능할 것입니다. 예(실제로 수행되는 경우도 있지만) 여전히 X 루트 서버가 필요합니다.목록 배포를 위해어쨌든 기존 메커니즘을 사용하는 것이 더 쉽습니다.시작할 때마다 전체 목록을 검색하는 것보다 효율적입니다.

모든 TLD 서버를 확인자에게 배포하려면 루트 서버와 같은 것이 필요합니다. 그러나 TLD 목록을 초기화하려면 한 번만 폴링해야 합니다. 제가 이해한 바에 따르면 모든 DNS 요청은 루트 서버에 ".com의 TLD 서버는 어디에 있습니까?"라고 묻습니다. 오히려 비효율적인 것 같나요?

예, 모든 DNS 요청에는 이러한 쿼리가 필요하지만 대부분의 경우 TTL이 허용하는 한 확인자의 캐시에서 직접 수행됩니다. 그런 점에서 루트 쿼리에는 특별한 것이 없습니다. 체인의 다른 모든 쿼리와 마찬가지로 캐시됩니다(물론 최종 쿼리도 마찬가지입니다).

각 TLD가 개별적으로 캐시되므로 이는 전체 목록을 검색하는 것보다 더 효율적일 수 있습니다. 사용자가 주로 10개의 TLD를 필요로 하는 확인자의 경우 대략 하루에 한 번씩 루트 서버에 10개의 쿼리만 수행하면 됩니다. 1,500개의 서버가 있는 대규모 목록의 경우 동일한 빈도로 전체 목록을 새로 고치면 루트 서버에서 많은 리소스가 소모되며 증분 전송을 사용하더라도 여전히 많은 변경 사항을 받게 됩니다.필요하지 않다.

답변2

@gantendo가 지적했듯이 캐싱이 존재합니다.

에서https://en.m.wikipedia.org/wiki/Domain_Name_System

이 메커니즘은 인터넷의 모든 해결이 루트에서 시작되어야 하는 경우 루트 서버에 큰 트래픽 부담을 줍니다. 실제로 캐싱은 루트 서버의 부하를 줄이기 위해 DNS 서버에서 사용되며, 결과적으로 루트 이름 서버는 실제로 모든 요청 중 상대적으로 작은 부분에만 관여합니다.

즉, 루트 서버는 TLD 목록을 초기화하기 위해 가끔씩만 폴링됩니다.

관련 정보