На вашем компьютере есть список DNS-серверов, которые он может запросить для получения дополнительной информации. В системах Unix или Linux это хранится в /etc/resolv.conf
. В Windows это настраивается в настройках вашей сети. Часто ваш DNS-сервер будет предоставляться вашим DHCP-сервером, возможно, наряду с другими настройками, такими как домен по умолчанию, прокси-серверы и т.д.
Расположение используемого вами DNS-сервера не имеет большого значения. Если у вашего компьютера есть IP-адрес и рабочий маршрут по умолчанию (то есть вы можете ping
DNS-сервер), вы сможете выполнять DNS-запросы.
DNS-серверам не обязательно знать "все" домены. Им нужно только знать, кто является "авторитетным", что он узнает из набора "корневых" серверов. Каждый DNS-сервер имеет список "корневых" серверов, и этот список меняется нечасто. На одном из моих DNS-серверов настроено 18 корневых серверов, и эта конфигурация появилась, когда я установил DNS-сервер два года назад, и если список корневых серверов изменился с тех пор, достаточно их доступно, чего у меня нет заметил это.
Мой DNS-сервер, когда его просят разрешить домен, который он не знает, отправляет запрос корневому серверу, чтобы выяснить, какой другой DNS-сервер является полномочным для домена. Ответ, который он получает, может содержать дополнительные записи "NS" и помечаться как недоверенный, и в этом случае мой DNS-сервер знает, что он должен "следовать по цепочке" и сделать новый запрос к новому серверу. В конце концов, он находит DNS-сервер, который предоставляет достоверную информацию, и можно выполнять запросы, которые не являются просто записями NS. A (адрес) и MX (обмен почтой), конечно, два наиболее распространенных.
Каждый TLD (домен верхнего уровня), такой как COM, NET, ORG, CA, UK и т.д., Поддерживает свой собственный реестр поддоменов. ("Субдомен" - это любой домен в другом домене, поэтому «example.com» - это субдомен в "com", а "com" - это даже субдомен в «.», "Корне".) Правила для каждого реестра применяются только к TLD, который он администрирует, т. Е. Для каждого TLD с кодом страны существует совершенно другой набор критериев, а "общие" TLD администрируются разными организациями с разными политиками. Но все они поддерживают DNS-серверы для своего TLD, что из командной строки можно увидеть с помощью основных инструментов DNS-запросов:
[ghoti@pc ~]$ host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$
Когда вы покупаете домен у регистратора (из которых их много), этот регистратор передает информацию о домене в реестр (из которых только один на TLD). Каждый реестр несет ответственность за ведение списка зарегистрированных доменов в своем ДВУ и обслуживание DNS-серверов, которые предоставляют эту информацию другим серверам.