На вашем компьютере есть список 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» - это даже субдомен в «.», «Root».) Правила для каждого реестра применяется только к 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). Каждый реестр несет ответственность за ведение списка зарегистрированных доменов в своем TLD и обслуживание DNS-серверов, которые предоставляют эту информацию другим серверам.