Иерархия доменных имен аналогична иерархии имен файлов, принятой во многих популярных файловых системах. Дерево имен начинается с корня, обозначаемого здесь точкой.
Совокупность имен, у которых несколько старших составных частей совпадают, образует домен имен (domain). Например, имена www.zil.mmt.ru,ftp.zil.mmt.ru, yandex.ru и sl.mgu.ru входят в домен ru, так как все они имеют одну общую старшую часть — имя ru. Другим примером является домен mgu.ru. Из представленных имен в него входят имена s1 .mgu.ru, s2.mgu.ru и rn.mgu.ru. Этот домен образуют имена, у которых две старшие части равны mgu.ru.
Термин «домен» очень многозначен, поэтому его нужно трактовать в рамках определенного контекста. Помимо доменов имен стека TCP/IP в компьютерной литературе часто упоминаются домены Windows NT, домены коллизий и некоторые другие. Общим у всех этих терминов является то, что они описывают некоторое множество компьютеров, обладающее каким-либо определенным свойством.
По аналогии с файловой системой в доменной системе имен различают краткие, относительные и полные доменные имена. Краткое доменное имя — это имя конечного узла сети: хоста или порта маршрутизатора. Краткое имя — это лист дерева имен. Относительное доменное имя — это составное имя, начинающееся с некоторого уровня иерархии, но не самого верхнего. Например, www.zil — это относительное имя. Полное доменное имя включает составляющие всех уровней иерархии, начиная от краткого имени и кончая корневой точкой: www.zil.mmt.ru.
На раннем этапе развития Интернета на каждом хосте вручную создавался текстовый файл отображений с известным именем hosts.txt. Этот файл состоял из некоторого количества строк, каждая из которых содержала одну пару «доменное имя — 1Р-адрес». По мере роста Интернета файлы hosts.txt также увеличивались в объеме и создание масштабируемого решения для разрешения имен стало необходимостью. Таким решением стала централизованная служба DNS (Domain Name System — система доменных имен), основанная на распределенной базе отображений «доменное имя — IР-адрес».
Служба DNS имеет иерархическую структуру Иерархию образуют DNS-серверы, которые поддерживают распределенную базу отображений, а DNS-клиенты обращаются к серверам с запросами об отображении доменного имени на IP-адрес (говорят также «о разрешении» доменного имени). DNS-клиентом является практически каждый узел Интернета, будь то клиентский компьютер, сервер приложений или маршрутизатор.
Клиентом службы DNS является программное обеспечение ОС, называемое резольвером. Приложения ОС сами не обращаются напрямую к службе DNS, а обращаются к резольверу своей ОС. Резольверу должен быть известен IP-адрес по крайней мере одного DNS-сервера. Подавляющее большинство DNS-серверов использует программное обеспечение BIND (Berkeley Internet Name Domain), первоначально разработанное в Калифорнийском университете Беркли.
Запросы к DNS-серверам и их ответы обслуживаются протоколом DNS, что позволяет клиенту делать запросы относительно некоторого доменного имени, либо задавая тип записи, либо запрашивая все типы, относящиеся к данному имени. DNS-сообщения чаще всего передаются в дейтаграммах UDP с портом сервера 53, но в некоторых случаях, требующих повышенной надежности, служба DNS обращается к услугам TCP.
Пространство доменных имен «разрезают» между DNS-серверами обычно так, чтобы сервер хранил записи только в пределах одного уровня, а для имен своих поддоменов хранил только ссылки на DNS-серверы, отвечающие за эти поддомены. Например, DNS-сервер верхнего уровня, отвечающий за домен com, хранит только записи о листьях своего домена, например имя www.com, а также об именах DNS-серверов, которые обслуживают поддомены домена com, например DNS-сервера поддомена cisco.com.
Часть пространства доменных имен, для которых некоторый DNS-сервер имеет полную информацию об их отображениях на основе соответствующего текстового файла, называется зоной DNS, а сам текстовый файл — файлом зоны. Когда DNS-сервер дает ответ о записи, входящей в зону, за которую он отвечает, такой ответ называется полномочным (authoritative) ответом DNS. Как мы увидим далее, DNS-сервер может также давать неполномочный ответ, если запрос относится не к его зоне, но он знает его за счет кэширования ответов других серверов.
Для обеспечения надежности и высокой производительности для каждой зоны существуют один первичный и несколько вторичных DNS-серверов. На первичном сервере находится мастер-копия файла зоны, которая редактируется администратором сервера. Вторичные серверы периодически копируют файл зоны с первичного сервера, для этого может использоваться протокол DNS, в котором имеется соответствующий тип запроса, или же администратор может задействовать любой протокол копирования файлов, например ftp или scp. В том случае, когда файл зоны передается по протоколу DNS, для повышения надежности применяется протокол TCP (порт 53).