Самой распространенной реализацией DNS для систем Unix является пакет Berkeley Internet Name Domain (BIND). Описания в тексте основаны на реализации сервера имен из пакета BIND.
Концептуально программное обеспечение DNS делится на две категории - поисковые анализаторы (resolvers) и серверы имен. Анализатор (или клиент DNS) - это программный модуль, формирующий запрос; он задает вопросы. Сервер имен - это процесс, реагирующий на запросы; он дает ответы.
Поисковый анализатор не является отдельным процессом, выполняемым на компьютере. Это библиотека подпрограмм (код поискового анализатора), которая используется любой программой, нуждающейся в функции поиска адресов. Библиотека умеет задавать серверам имен вопросы, касающиеся информации об узлах.
В случае BIND все машины используют код поискового анализатора, но не на каждой работает процесс сервера имен. Компьютер, на котором не работает локальный процесс сервера имен и который полагается на другие узлы для работы со службой имен, называется чистым DNS-клиентом. Обычно чистыми DNS-клиентами оказываются однопользовательские системы. В более крупных Unix-системах обычно существует локальный процесс сервера имен.
Сервер имен BIND представлен самостоятельным процессом демона named (произносится «нэйм-ди»). Классификация серверов имен основана на способах их настройки. Вот три главных категории серверов имен:
Основной (Master) - основной сервер (также известный ка к первичный (primary) сервер) - это сервер, служащий источником всех данных по домену. Основной сервер загружает информацию о домене напрямую с диска, из файла, созданного администратором домена. Основные серверы являются компетентными (authoritative), то есть обладают полной информацией по обслуживаемым доменам и всегда дают правильные ответы. Должен существовать лишь один основной сервер для домена.
Подчиненный (Slave ) - подчиненные серверы (также известные как вторичные) получают полную базу данных домена от основного сервера. База данных для отдельного домена называется файлом зоны; копирование этого файла на подчиненный сервер называется передачей зоны. Подчиненный сервер гарантирует актуальность своих данных, периодически получая файл зоны домена. Подчиненные серверы также являются компетентными для обслуживаемых доменов.
Специальный кэширующий (Caching-only) - специальные кэширующие серверы получают ответы на все запросы от других серверов имен. Получив ответ на запрос, сервер кэширует информацию и в будущем использует ее, чтобы самостоятельно давать ответы на запросы. Большинство серверов имен практикуют кэширование. Специальные кэширующие серверы используют исключительно этот метод для построения базы данных домена. Кэширующие серверы являются некомпетентными (non-authoritative), их информация получена из вторых рук и неполна, хотя обычно точна.
Взаимоотношения различных типов серверов - это преимущество DNS перед таблицами узлов, которое ощутимо для большинства сетей, даже очень маленьких. В DNS каждому домену требуется лишь один первичный сервер имен. Данные DNS вводятся в базу данных первичного сервера администратором домена. Следовательно, централизованное управление информацией об узлах оказывается в руках администратора. Автоматически распределяемая база данных с централизованным управлением является плюсом для сети любого размера. При добавлении новой системы в сеть не возникает необходимости редактировать файлы /etc/hosts на всех узлах сети; достаточно изменить базу данных DNS на первичном сервере. Информация автоматически распространяется по другим серверам, которые получают зону полностью либо кэшируют отдельные ответы.