DNS-клиент

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

DNS-клиент — программа (или модуль в программе), обеспечивающая определение адреса узла по его полному имени (точка в конце обычно либо добавляется DNS-клиентом, либо неявно подразумевается, однако, в случае использования доменных суффиксов, возможны различия в поведении клиента при определении имени с точкой в конце и без).

Функция клиента DNS встроена почти в любую программу, предназначенную для работы в сети Internet. Однако, большинство DNS-клиентов не умеют самостоятельно выполнять рекурсию[источник не указан 2261 день], так как в противном случае их алгоритмы пришлось бы неоправданно усложнять. Помимо этого использование рекурсии DNS-клиентами не позволило бы осуществлять режимы ограничения доступа во внешнюю сеть и кеширования DNS.

Специализированные программы[править | править вики-текст]

Для диагностики DNS используются специализированные программы — nslookup и dig. Версия nslookup для Windows (как и многие DNS-клиенты для windows) поддерживает WINS, что может создавать неразбериху при различающихся ответах WINS и DNS серверов. Некоторые версии nslookup в Unix поддерживают помимо DNS ещё и Network Information Service, что так же усложняет диагностику. При проверке интегрированных с Active Directory DNS-серверов может использоваться утилита dcdiag [1].

Режимы работы DNS-сервера[править | править вики-текст]

DNS-сервер, выполняющий запрос клиента может работать в одном из трёх режимов:

  • режим форвардинга (передачи) запросов другому DNS-серверу — в этом случае запрос почти не отличается от запроса DNS-клиента. (Такая схема используется при использовании кэширующих DNS-серверов и серверов в DMZ).
  • режим самостоятельного выполнения рекурсивного запроса.
  • режим обслуживания зоны (в этом случае запросы на посторонние (неавторитативные) зоны не принимаются, вместо этого возвращаются адреса корневых серверов).

Во многих версиях BIND запрос к другим DNS-серверам исходил с 53-го порта (порта, по которому принимаются запросы DNS, как TCP, так и UDP), в отличие от клиентских приложений, использующих произвольный порт отправителя (из незарегистрированного диапазона).

Работа с DNS различных программ[править | править вики-текст]

Почтовый сервер использует клиент DNS, для запроса MX, SPF, A-запись (например, sendmail использует MX-записи в порядке возрастания приоритета, но в случае отсутствия подходящего маршрута, в качестве последней попытки использует A-запись), PTR-записей (для определения имени хоста). Кроме того, многие версии почтовых серверов используют имена, полученные через запрос PTR-записи для определения наличия MX-записи у данного имени, это используется для автоматического отказа в доставке у не-почтовых серверов (в большинстве своём ботнетов).

В общем случае возможна конфигурация, когда для разных серверов и зон DNS-сервер ведёт себя различно (например, из локальной сети принимает рекурсивные запросы, из внешней — только запросы на авторитативные зоны, или форвардит запросы на другой сервер только для заданных зон).

Рабочие станции и серверы в составе Active Directory используют множество DNS-записей типа SRV для определения положения ближайшего контроллера домена в сайте и для выполнения динамического обновления DNS-записи о рабочей станции.

Интерфейс между программой и DNS-клиентом[править | править вики-текст]

Большинство программ, использующих функции DNS, не реализуют его функциональность самостоятельно (через сокеты), а используют либо предоставляемые операционной системой функции DNS-клиента, либо используют готовую библиотеку клиента. К меньшинству относятся в основном низкоуровневые утилиты и серверное ПО, которому необходима более специфичная функциональность, чем предоставляется DNS-клиентом.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Пол Альбитц и Крикет Ли — DNS и BIND, ISBN 5-93286-035-9, Символ-Плюс, 2002

Ссылки[править | править вики-текст]