Аббревиатура DNS расшифровывается как служба доменных имен (Domain Name Service). Она пришла на смену файлу, устанавливающему соответствия имен компьютеров их адресам, который использовался на заре ARPANET (сейчас он называется /etc/hosts). DNS во многом решила проблему конфлик- тов имен. Конфликт возникает в случае, когда узлы с разными адресами пре- тендуют на одно и то же имя в сети.
В системе DNS все пространство имен разбито на домены, имена уз- лов в которых должны быть уникальны. В то же время в разных доменах могут использоваться одинаковые имена узлов. Имена www.bamboo.be и www.bamboo.de различны, т. к. находятся в разных доменах — bamboo.be и bamboo.de.
Сервер DNS BIND (Berkeley Internet Name Daemon) является де-факто стан- дартным сервером DNS в Интернете. Он предоставляет требуемую инфра- структуру для организации иерархической распределенной базы данных DNS, хранящей информацию о соответствии имен хостов их IP-адресам. База данных DNS является распределенной, поскольку информация о различных доменах может находиться на разных серверах DNS. Нет ни одного сервера DNS, который бы имел полную информацию о соответствии всех имен ком- пьютеров в сети их адресам. Пространство имен в DNS организовано в виде дерева, корень которого имеет имя "точка" (.). Этот домен (точка) содержит
поддомены, называемые доменами верхнего уровня (TLDs, Top Level Domains). Они условно подразделяются на три типа:
r территориальные (geographic) — ru, su, be, uk и т. д.;
r дополнительные, например — biz, news и info.
Корневые домены содержат поддомены, называемые доменами второго уровня. Так, например, class.edu — это домен второго уровня, являющийся поддоменом корневого домена edu. В доменах второго уровня также могут быть созданы поддомены. Так, может быть создан поддомен tjumen.class.edu.
Множество имен компьютеров, входящих в домен, за исключением имен всех компьютеров, входящих во все поддомены этого домена, называется зоной. Каждая зона должна обслуживаться сервером имен, который сопо- ставляет имена компьютеров их адресам. При этом сервер имен обычно мо- жет обслуживать сразу несколько зон, но каждая зона должна обладать хотя бы одним сервером имен.
Обычно для обеспечения надежности системы DNS и деятельности сервера имен, сопоставляющего имена компьютеров их адресам в некоторой зоне, устанавливаются подчиненные (slave) серверы. Сервер имен зоны, являю- щийся первоисточником информации о соответствии имен компьютеров их адресам, называется мастером (master). Информация о зонах находится на мастер-сервере в специальных текстовых файлах, содержащих так называе- мые записи о ресурсах (Resource Records, RR).
Подчиненные (slave) серверы получают информацию о зоне с мастер-сервера (master) с помощью копирования файлов ресурсов. Операция копирования файлов ресурсов называется трансфером зоны (zone transfer).
Информация, получаемая от мастер-серверов и подчиненных серверов, счи- тается клиентской частью DNS одинаково достоверной (хотя это далеко не всегда соответствует истине). Поэтому ответы, получаемые от мастер- серверов и подчиненных серверов, называются авторитетными.
В процессе разрешения имени, производимого сервером по поручению кли- ента, сервер может обращаться с запросами к корневым серверам и серверам поддоменов, рекурсивно углубляясь в дерево доменных имен. При этом в кэше сервера обычно фиксируются результаты выполнения промежуточ- ных запросов.
Серверы, способные углубляться в дерево доменных имен, в процессе полу- чения ответа на запрос клиента, работают в рекурсивном режиме и кэшируют промежуточные результаты запросов. Серверы, обслуживающие корневые
домены (root servers), работают в нерекурсивном режиме и не кэшируют ин- формацию в целях защиты от DNS-подлогов (DNS spoofing).
Время, в течение которого DNS-сервер может пользоваться кэшированной информацией, называется временем жизни записи (time to live, TTL).
В процессе обслуживания запроса клиента в кэше какого-либо сервера DNS может оказаться информация, требуемая клиенту. Уровень доверия к такой информации ниже, чем к авторитетной, т. к. она может устареть и не соответ- ствовать истине. Поэтому такие ответы называются неавторитетными, и в них содержится дополнительная информация клиенту о том, где (веро- ятно) может быть получена авторитетная информация по данному запросу.
Сервер DNS может быть запущен в рекурсивном режиме, кэшируя информа- цию, необходимую для повторных запросов клиентов, но при этом не содер- жать описания зон (исключая зоны для соответствия имени localhost адресу
127.0.0.1 и наоборот). Такой сервер называется исключительно кэширующим (cache only). Кэширующие серверы используются для минимизации нагрузки на авторитетные серверы.
Процедура регистрации доменного имени заключается в выборе доменного имени и фиксации адресов серверов, являющихся авторитетными для регист- рируемой зоны. Считается, что для надежности каждая зона должна обслу- живаться не менее, чем двумя серверами (мастером и подчиненным), нахо- дящимися в разных IP-сетях.
Ранее доменами второго уровня централизованно управлял Network Informa- tion Center (NIC), на сегодняшний момент управление децентрализовано, и домен второго уровня можно зарегистрировать у коммерческих регистра- торов. В территориальных доменах регистрация обычно осуществляется национальными регистраторами. Для создания поддомена домена вто- рого уровня достаточно всего лишь обратиться к администратору данного домена.
Процесс передачи прав авторитетности для какой-либо зоны другому серверу имен называется делегированием. Так, например, право вести записи о ресур- сах поддомена может быть делегировано серверу DNS, запущенному на од- ной из машин, принадлежащих поддомену.
В системе BIND основой является демон named, отвечающий на запросы о преобразовании имен машин в IP-адреса и наоборот.
Файлы конфигурации BIND позволяют настраивать работу демона named так, чтобы он являлся мастер-сервером имен зоны и был одновременно подчи- ненным сервером для других зон.
Разделяют два типа зон:
r зоны прямого отображения, в которых имена узлов сопоставляются их IP-
адресам;
r зоны обратного отображения, сопоставляющие IP-адреса узлов именам узлов.
Зоны обратного отображения всегда являются поддоменами специального домена in-addr.arpa. Имена зон обратного отображения формируются из IP- адреса сети, переписанного наоборот. Так, отображение IP-адресов узлов се- ти 192.168.0.0 на имена узлов задается в зоне 0.168.192.in-addr.arpa. Такая непривычная форма записи имен зон обратного отображения позволяет про- изводить и прямое, и обратное отображение с помощью одних и тех же про- грамм.
Обычно на DNS-сервере имеется специальный файл указателей на корневые серверы, что позволяет серверу обращаться к ним.