DNS-сервер

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

DNS-сервер, Domain name server — приложение, предназначенное для ответов на DNS-запросы по соответствующему протоколу. Также DNS-сервером могут называть хост, на котором запущено соответствующее приложение.


Типы DNS-серверов[править | править код]

По выполняемым функциям DNS-серверы делятся на несколько групп; сервер определённой конфигурации может относиться сразу к нескольким типам:

  • Авторитетный DNS-сервер — сервер, отвечающий за какую-либо зону.
    • Мастер, или первичный сервер (в терминологии BIND), — имеет право на внесение изменений в данные зоны. Обычно зоне соответствует только один мастер-сервер. В случае Microsoft DNS-сервера и его интеграции с Active Directory мастер-серверов может быть несколько (так как репликация изменений осуществляется не средствами DNS-сервера, а средствами Active Directory, за счёт чего обеспечивается равноправность серверов и актуальность данных).
    • Слейв (англ. slave), или вторичный сервер, не имеющий права на внесение изменений в данные зоны и получающий сообщения об изменениях от мастер-сервера. В отличие от мастер-сервера, их может быть (практически) неограниченное количество. Слейв также является авторитативным сервером (и пользователь не может различить мастер и слейв, разница появляется только на этапе конфигурирования/внесения изменений в настройки зоны).
  • Кэширующий DNS-сервер — обслуживает запросы клиентов (получает рекурсивный запрос, выполняет его с помощью нерекурсивных запросов к авторитативным серверам или передаёт рекурсивный запрос вышестоящему DNS-серверу).
  • Перенаправляющий DNS-сервер (англ. forwarder, внутренний DNS-сервер) — перенаправляет полученные рекурсивные запросы вышестоящему кэширующему серверу в виде рекурсивных запросов. Используется преимущественно для снижения нагрузки на кэширующий DNS-сервер.
  • Корневой DNS-сервер — сервер, являющийся авторитативным за корневую зону. Общеупотребительных корневых серверов в мире всего 13, их доменные имена находятся в зоне root-servers.net и называются a.root-servers.net, b.root-servers.net, …, m.root-servers.net. В определённых конфигурациях локальной сети возможна ситуация настройки локальных корневых серверов.
  • Регистрирующий DNS-сервер. Сервер, принимающий динамические обновления от пользователей. Часто совмещается с DHCP-сервером. В Microsoft DNS-сервере при работе на контроллере домена сервер работает в режиме регистрирующего DNS-сервера, принимая от компьютеров домена информацию о соответствии имени и IP-адреса компьютера и обновляя в соответствии с ней данные зоны домена.
  • DNSBL-сервер (сервер с чёрными списками адресов и имён). Формально не входит в иерархию DNS, однако использует те же механизм и протокол работы, что и DNS-серверы.

Виды DNS-запросов[править | править код]

Прямой запрос[править | править код]

Прямой (forward) запрос — запрос на преобразование имени (символьного адреса) хоста в его IP-адрес.

Обратный запрос[править | править код]

Обратный (reverse) запрос — запрос на преобразование IP-адреса хоста в его имя.

Рекурсивный запрос[править | править код]

Рекурсивный запрос предполагает получение окончательного ответа от сервера, к которому он направлен. Рекурсию выполняет сервер.

Итеративный запрос[править | править код]

Итеративный запрос предполагает (допускает) выполнение рекурсии клиентом.

Описание[править | править код]

Некоторые серверы поддерживают возможность работать в разных режимах для разных сегментов сети. В Bind этот режим называется view. Например, сервер может для локальных адресов (например, 10.0.0.0/8) отдавать локальные адреса серверов, для пользователей внешней сети — внешние адреса. Так же сервер может быть авторитативным для заданной зоны только для указанного диапазона адресов (например, в сети 10.0.0.0/8 сервер объявляет себя авторитативным за зону internal, при этом для внешних адресов в ответ на запрос имени из зоны internal будет отдаваться ответ «неизвестен»).

Используемые порты[править | править код]

По стандарту RFC 1035 все DNS-серверы отвечают на порту 53 TCP и UDP. Ранние версии BIND использовали 53 порт так же и при отправке исходящих запросов, более новые ведут себя как обычные DNS-клиенты, используя свободные незарегистрированные порты.