Если кто-то размещает имя хоста/имя веб-сайта на GoDaddy, OpenDNS и т. д., как он обновит запись DNS-серверов по всему миру для этого недавно добавленного имени хоста? Поскольку в Интернете есть множество DNS-серверов, и каждый интернет-провайдер предоставляет разные DNS-серверы для своих клиентов.
решение1
Они этого не делают. (Немного упрощая) 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
- Первый запрос ищет корневые серверы (*.root-servers.net)
- Затем корневые серверы сообщают, где найти самую правую часть домена - ".com".
- Третий запрос возвращает серверы имен для google.com.
- Наконец, серверы имен Google сообщают ответ на вопросwww.google.com
Я заметил, что в приведенном выше примере я вручную убрал из результата запроса только самое необходимое. В реальности сервер имен, как правило, не будет делать все эти запросы, поскольку он запомнит их части. То есть, когда кто-то впервые ищет любое доменное имя .com, используемый им DNS-сервер запомнит серверы имен (в данном случае на 172800 секунд), поэтому ему не придется выполнять еще один поиск. Аналогично для всех более конкретных частей поиска.
Так что если кто-то регистрирует example.com через GoDaddy (или любого регистратора), GoDaddy необходимо (программно) получить серверы имен для example.com, введенные в сервер имен ".com". Аналогично, если они находятся в AU, им необходимо ввести информацию в пространство ".com.au", если они хотят зарегистрировать "example.com.au" - и это потребует соглашения с людьми, контролирующими серверы имен для пространства ".com.au" - вот почему не все регистраторы могут регистрировать все домены, и почему получение новых доменов верхнего уровня является таким сложным процессом - им нужно платить большие деньги, чтобы зарегистрировать TLD с корневыми серверами имен.