인터넷의 모든 DNS 서버에 대한 DNS 레코드는 어떻게 업데이트됩니까?

인터넷의 모든 DNS 서버에 대한 DNS 레코드는 어떻게 업데이트됩니까?

누군가 GoDaddy, OpenDNS 등에서 호스트 이름/웹 사이트 이름을 호스팅하는 경우 새로 추가된 호스트 이름에 대해 전 세계 DNS 서버 기록을 어떻게 업데이트합니까? 인터넷에는 많은 DNS 서버가 있기 때문에 모든 ISP는 클라이언트에 대해 서로 다른 DNS 서버를 제공합니다.

답변1

그들은 그렇지 않습니다. (약간 단순화) DNS는 계층 구조입니다. DNS 서버는 상위 DNS 서버를 찾는 방법이나 "루트" 서버 목록을 찾는 방법을 알고 있습니다.

상위 DNS 서버를 찾으면 그냥 물어보고, 해당 서버는 신뢰할 수 있는 답변을 얻을 때까지 상위 DNS 서버에 묻습니다.

그러나 대부분의 경우 네임서버는 루트 네임서버를 알고 있으며 루트 네임서버는 도메인에 적합한 서버를 가리킵니다. (또는 어떤 경우에는 도메인의 첫 번째 부분에 적합한 서버입니다. 도메인 이름이 확인될 때까지 이 프로세스가 반복됩니다.)

다음은 시스템이 IP 주소를 정식으로 확인할 수 있는 방법을 보여주는 "추적"의 예입니다.www.google.com(서명 무시):

Linux 명령 "dig +trace www.google.com"의 출력을 줄입니다.

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> +trace www.google.com
;; global options: +cmd
.           514683  IN  NS  a.root-servers.net.
.           514683  IN  NS  b.root-servers.net.
.           514683  IN  NS  c.root-servers.net.
.           514683  IN  NS  d.root-servers.net.
.           514683  IN  NS  e.root-servers.net.
.           514683  IN  NS  f.root-servers.net.
.           514683  IN  NS  g.root-servers.net.
.           514683  IN  NS  h.root-servers.net.
.           514683  IN  NS  i.root-servers.net.
.           514683  IN  NS  j.root-servers.net.
.           514683  IN  NS  k.root-servers.net.
.           514683  IN  NS  l.root-servers.net.
.           514683  IN  NS  m.root-servers.net.
;; Received 525 bytes from 10.0.3.254#53(10.0.3.254) in 13 ms

com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.


google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
;; Received 840 bytes from 192.33.14.30#53(b.gtld-servers.net) in 35 ms

www.google.com.     300 IN  A   172.217.25.36
;; Received 59 bytes from 216.239.36.10#53(ns3.google.com) in 178 ms
  1. 첫 번째 쿼리는 루트 서버(*.root-servers.net)를 조회합니다.
  2. 그런 다음 루트 서버는 도메인의 가장 오른쪽 부분인 ".com"을 찾을 위치를 조언합니다.
  3. 세 번째 쿼리는 google.com의 네임서버를 반환합니다.
  4. 마지막으로 Google의 이름 서버는 다음에 대한 답변을 조언합니다.www.google.com

위의 예에서는 쿼리 결과를 핵심 요소만 수동으로 제거했습니다. 실제로 네임서버는 쿼리의 일부를 기억하기 때문에 일반적으로 이러한 쿼리를 모두 수행하지는 않습니다. 즉, 누군가가 .com 도메인 이름을 처음 조회할 때 사용 중인 DNS 서버가 네임서버를 기억하므로(이 경우 172,800초 동안) 추가 조회를 수행할 필요가 없습니다. 조회의 보다 구체적인 부분에 대해서도 마찬가지입니다.

따라서 누군가가 GoDaddy(또는 등록 기관)를 통해 example.com을 등록하는 경우 GoDaddy는 ".com" 이름 서버에 입력된 example.com의 이름 서버를 (프로그래밍 방식으로) 가져와야 합니다. 마찬가지로, AU에 있는 경우 "example.com.au"를 등록하려면 ".com.au" 공간에 정보를 입력해야 합니다. 이를 위해서는 "example.com.au"에 대한 네임서버를 관리하는 사람들과의 합의가 필요합니다. .com.au" 공간 - 이것이 모든 등록기관이 모든 도메인을 등록할 수 있는 것은 아니며, 새로운 최상위 도메인을 얻는 것이 그러한 과정인 이유입니다. 루트 네임서버에 TLD를 등록하려면 큰 돈을 지불해야 합니다.

관련 정보