DNS

Назначение, приципы работы и особенности

Плагин dns предназначен для проверки возможности получения различной информации с помощью серверов Internet Domain Name System. Плагин шлет запросы заранее определенных типов DNS серверам и анализирует пришедшие коды ответов.
Для формирования запросов, предустановки окружения и посылки запросов, а также для извлечения кода ответа из ответа используется стандартная библиотека ресолвера. Во FreeBSD 4.2-RELEASE (а также 4.0, 4.1) эта библиотека находится в стандартной библиотеке libc. В более ранних версиях FreeBSD (2.0-2.2.5.*) эта библиотека выделена в отдельную библиотеку libresolv, которая поставляется с системой BIND. Для нормальной работы плагину необходима библиотека libresolv от BIND с версией не ниже 4.9.
Для работы этому плагину, как и большинству других, необходима правильно работающая система DNS на локальном хосте. Плагину dns требуется разрешение (ресовинг) IP адресов на этапе определения адресов опрашиваемых серверов. Хотя плагин поддерживает возможность задания имени сервера в виде IP адреса, такая форма имени выглядит не столь наглядно. Но главный минус в том, что IP адреса могут меняться и более того - одному имени сервера могут соответствовать несколко по разному настроенных интерфейсов одного и того же хоста с разными IP адресами, и даже несколько разных хостов.
После того как определен IP адрес (или несколько адресов) сервера, формируется запрос. В запросе указывается не более чем MAXNS адресов сервера. Значение MAXNS берется из resolv.h. Для FreeBSD 4.2-RELEASE это значение равно трем адресам. Затем последовательно опрашиваются указанные в запросе IP адреса до получения ответа. Из полученного ответа достается заголовок и код, который можно далее интерпретировать, поскольку анализ полностью визуализированноого ответа сложен для алгоритмизации. Зато ответ прост и понятен для человека.

Параметры сервиса

Специфическими для данного плагина являются следующие поля:

Параметры плагина

Параметры плагина практически ничем не отличаются от параметров других плагинов.


eye=# select * from parametrs where nameofcfg = 'dns1';
 nameofcfg |   parametr   |        value         
-----------+--------------+----------------------
 dns1      | ChaildNumber | 10
 dns1      | LogFile      | /var/log/eye/dns.err
 dns1      | SendTime     | 200
 dns1      | StartCounter | 500
(4 rows)

eye=# 


Применение

Возможные состояния сервиса:
Resolved[_]Сервер смог ответить на запрос заданного типа о данном объекте.
Wrong query format[_]Неправильный формат запроса. Скорее всего в качестве параметра Запрашиваемый объект задано доменное имя при параметре Тип запроса равном x.
Server failure[_]Сервер недоступен, либо он не отвечает на запросы по данному объекту.
Not implemented[_]Неизвестный серверу тип запроса.
Refused[_]Сервер оиказывается отвечать на данный запрос. Наиболее часто эта ошибка возникает при запросе переноса зоны (значение axfr поля Тип запроса). Хост на котором запущен мониториг не имеет права скачивать эту зону с primary.

Несмотря на то, что плагин может распознавать значительно больше типов ошибок, все они сведены к вышеописаным пяти группам. Поскольку детальная их диагностика оператором требует просмотра информации, возвращаемой DNS сервером. Таким образом плагин dns лишь информирует о возникновении неисправности, требующей затем от оператора более глубокого диагностирования и устранения.