ryg

Команда dig в Mac OS X

Синтаксис:

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type]
           [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]

Описание:

 
Утилита dig (domain information groper) является гибким инструментом для запроса имени DNS сервера. Она ищет и отображает имена запрошенных серверов. Большинство администраторов используют именно эту команду, так как она предоставляет больше возможностей, чем остальные.
 
Команда может быть выполнена как в командной строке, так и в пакетном режиме, позволяющем считывать запросы из файла. Краткое описание параметром командной строки можно получить с параметром -h.
 
Если задать конкретное имя сервера, утилита dig запросит каждый сервер, указанный в файле /etc/resolv.conf.
 
Если запустить утилиту не указывая параметров, то dig выполнит запрос для "корневых" серверов NS для "." (the root).
 
Утилита позволяет задать параметры запуска по умолчанию для каждого пользователя. Для этого необходимо указать их в файле ${HOME}/.digrc, утилита считает их и вставит в командную строку.
 
Имена классов IN (интернет) и CH (Chaosnet) пересекаются с IN и CH имен доменов верхнего уровня. Необходимо использовать параметры -t и -c для указания типа и класса, для указания имени домена -q или для поиска доменов верхнего уровня используйте "IN." и "CH."
 
 
 
Пример простого запроса 
типичный вызов команды выглядит следующим образом:
	dig @server name type
 
Где:
server это имя или IP-адрес запрашиваемого сервера. Это может быть IPv4 адрес с разделением групп цифр точками или IPv6 адрес с разделением групп двоеточиями. Когда сервер задается именем хоста, dig анализирует, что это за имя прежде чем сделать запрос. Если параметр server не задан, то утилита запрашивает имя серверов перечисленных в файле /etc/resolv.conf и отображает ответ, полученный от сервера имен.
 
name
 это имя записи ресурса, который должен быть найден
 
type
 указывает на тип запроса -  ANY, A, MX, SIG и тому подобное. Если тип не указан, то по умолчанию используется A.
 

Параметры:

-b address Задает источник IP-адресов запроса. Это должен быть существующий адрес одного из сетевых интерфейсов или "0.0.0.0"  или "::". Дополнительно может быть задан порт с помощью добавления после адреса конструкции "#<port>".
class Заменяет класс запроса по умолчанию (IN для интернета). Тип запроса может быть любым из существующих, например HS для записей Hesiod или CH для Chaosnet.
-f filename Параметр запускает утилиту dig в пакетном режиме, считывая список запросов из указанного файла filename. Запросы в данном файле должны быть по одному на строку. Запрос в каждой строке оформляется идентично параметрам командной строки dig.
-m Используется для отладки и показывает используемую память.
-p port# Применяется при использовании нестандартных портов. Значение port# задаёт номер порта, куда dig отправит запрос вместо стандартного порта DNS номер 53. Этот параметр используется для тестирования серверов имен, которые настроены на нестандартные порты для запросов.
-4 Использовать только адресацию IPv4
-6 Использовать только адресацию IPv6
-t type Данный параметр задает тип запроса, type может быть любым типом поддерживаемый BIND 9. Если не используется параметр -x, то по умолчанию запрос типа 'A'. Передача зоны может быть запрошена при указании типа AXFR, при запросе типа IXFR (инкрементальная передача зоны) требуется назначение ixfr=N. Ответ на данный запрос будет содержать изменения сделанные зоной.
-q name
Используется для того, чтобы отличить имя от других параметров.
 
-x addr Обратный поиск. Упрощается преобразование адресов в имена, где адрес может быть указан как в стандарте IPv6, так и в IPv4. В случае использования данного параметра нет необходимости задавать класс, имя и тип аргументов. Утилита dig автоматически выставляет тип PTR, класс IN и выполняет поиск названия через 11.12.13.10.in-addr.arpa. Если указан адрес IPv6, то поиск происходит, используя формат IP6.ARPA.
-i Чтобы использовать старый метод RFC1886 используя домен IP6.INT воспользуйтесь параметром -i. Метод RFC2874 на данный момент является экспериментальным и не используется.
-k filename Для подписания отправляемых DNS запросов и их ответов с использованием подписей транзакций TSIG, укажите файл ключей TSIG с помощью параметра -k. Используя параметр -y можно указать ключ TSIG непосредственно в командной строке. Ключ в кодировке base-64 может быть сгенерирован с помощью dnssec-keygen. На многопользовательских системах параметр -y следует использовать с осторожностью, так как ключ может быть виден с помощью команды ps или в истории команд bash. При использовании авторизации TSIG запрашиваемый по имени сервер должен знать ключ и используемый алгоритм. В BIND это осуществляется путем предоставления ключа и отчета сервера в named.conf.
-y [hmac:]name:key
 
 Применение данного параметра не рекомендуется для использования на многопользовательских системах, так как ключ может быть виден командами ps и history  

Замечания по версии для Mac OS X

Команда dig не использует разрешения адресов и имена серверов или DNS запросы, используемые другими процессами, которые запущены в Mac OS и выводимые результаты могут отличаться от полученных другими программами адресов и имен в Mac OS X.

Результаты DNS запросов могут также отличаться от результатов, полученных с использованием библиотеки маршрутизации DNS.

 

Опции запроса dig:

Dig позволяет указать рад параметров для запросов, которые влияют на способ поиска и результаты. Некоторые из них устанавливают или сбрасывают биты флагов в заголовках, некоторые определяют разделы для получения или тайм-аут и стратегию повтора.
 
Каждый параметр запроса определяется ключевым словом и начинается со знака плюс "+". С некоторыми параметрами может быть использован предлог "no" для отрицания. Другие ключевые слова могут параметризироваться дополнительными параметрами, такими как время ожидания. Они имеют форму +keyword=значение.
 
 
+[no]tcp Использовать или нет TCP протокол при запросе сервера имен. По умолчанию используется UDP, если не требуется запрос AXFR или IXFR. В запросах AXFR и IXFR используется TCP протокол.
+[no]vc Аналогично +[no]tcp. Сделан для обратной совместимости. VC расшифровывается как "virtual circuit".
+[no]ignore Игнорировать обрезание ответов UDP вместо соединения по TCP. По умолчанию в таких случаях происходит переключение на TCP.
+domain=somename Установить список поиска содержащий single domain somename, как определено в  /etc/resolv.conf.
+[no]search Использовать или нет пакетный поиск по списку доменов определенном в файле resolv.conf.
+[no]showsearch Показывать промежуточные результаты поиска.
+[no]defname
Аналогично опции +[no]search. Устаревшее.
+[no]aaonly Установить флаг "aa" в запросе.
+[no]aaflag Синоним +[no]aaonly.
+[no]adflag Установить в запросе бит достоверных данных AD. Сообщает серверу возвращать все данные или только достоверные в соответствии с политикой безопасности сервера. AD=1 означает, что все данные подтвеждены как достоверные и не из диапазона OPT-OUT, а AD=0 сообщает, что данные небезопасные и не подтверждены.
+[no]cdflag Включить или выключить в запросе бит CD (checking disabled). Это сообщает серверу, что не нужно выполнять проверку ответов DNSSEC.
+[no]cl Показывать или нет класс (CLASS) когда печатается запись.
+[no]ttlid Показывать или нет TTL когда печатается запись.
+[no]recurse Управляет в запросе битом RD (recursion desired) . Этот быт устанавливается по умолчанию и говорит о том, что dig посылает рекурсивные запросы.Автоматически отключается при использовании опций +nssearch или +trace
+[no]nssearch Данная опция сообщает dig искать авторитетный сервер имен для заданной зоны и отображать записи SOA.
+[no]trace Включает/отключает трассировку пути от корневых серверов имен до просматриваемого имени. По умолчанию отключена.
+[no]cmd Печатать комментарий с версией программ или нет. По умочанию включен.
+[no]short По умолчанию ответ будет напечатан в подробной форме.
+[no]identify Показывать или не IP-адрес и номер порта ответившего, кода включена короткая форма ответа +short. 
+[no]comments Выводить или не выводить на экран строки комментариев. По умолчанию комментарии выводятся.
+[no]stats Печатить или нет статистику запроса.По умолчанию печатать.
+[no]qr Печатать (или не печатать) отправленный запрос. По умолчанию -не печатать.
+[no]question Печатать раздел с вопросом после получения ответа, по умолчанию печататся как комментарий.
+[no]answer Отображать или не отображать секцию ответа. По умолчанию секция ответа выводится.
+[no]authority Отображать или не отображать секцию авторизации. По умолчанию секция авторизации выводится.
+[no]additional Отображать или не отображать дополнительную секцию. По умолчанию дополнительная секция выводится.
+[no]all Установить или снять все флаги.
+time=T Установить время ожидания ответа, по умолчанию +time=5 секунд. Минимальное время ожидания 1 секунда.
+tries=T Установить количество попыток обращения к серверу по UDP. По умолчанию равно 3, если установить меньше или равное нулю, то будет использована 1 попытка.
+retry=T Установить количество повторов UDP запросов к серверу. По умолчанию 2. В отличие от +tries не включает начальный запрос.
+ndots=D Количество точек в имени домена, чтобы считать абсолютным. По умолчанию 1 или установленное в файле /etc/resolv.conf если там есть выражение ndots. Имена с меньшим количеством точек будут считаться относительными и будут искаться в списке доменов или директиве domain ф файле /etc/resolv.conf.
+bufsize=B Установить размер буфера сообщения UDP, заканчивающегося EDNS0 в B байт. Максимальный и минимальный размер буфера составляет 65535 и 0 соответственно. Значения вне этого диапазона округляются вверх или вниз соответствующим образом.
+edns=# Возможные значения ENDS от 0 до 255.
+[no]multiline Распечатать записи как SOA записи в подробном многострочном режиме. По умолчанию печатаются каждая запись в одной строке.
+[no]onesoa При выполнении AXFR запроса печатать только стартовую запись SOA. По умолчанию печатается и начальная и конечная записи.
+[no]fail Не пытаться обращаться к следующему серверу, когда получен ответ SERVFAIL.
+[no]besteffort Попытаться отобразить "плохие" ответы. По умолчанию они не отображаются.
+[no]dnssec Установить бит DNSSEC OK (DO) и отправить запрос DNSSEC в записи OPT в дополнительной секции запроса.
+[no]sigchase Отслеживать цепочку подписей DNSSEC. Требуется, что бы dig был скомпилирован с ключом  -DDIG_SIGCHASE.
+trusted-key=#### Определяет файл содержащий ключи для использования в +sigchase. Каждая запись DNSKEY должна быть на отдельной строке. Если не определено, то dig будет сначала искать в /etc/trusted-key.key и затем в trusted-key.key в текущем каталоге. Требуется, что бы dig был скомпилирован с ключом  -DDIG_SIGCHASE.
+[no]topdown Во время отслеживания DNSSEC выполнить проверку сверху вниз. Требуется, что бы dig был скомпилирован с ключом  -DDIG_SIGCHASE.
+[no]nsid Включить требование ID имени EDNS сервера во время отправки запроса.

Множественные запросы.

 
Дополнительно к поддержке пакетного запуска (-f) реализация dig в BIND9 поддерживает указание нескольких запросов в одной командной строке. Каждый из запросов может иметь свой набор флагов и параметров запроса.
 
В этом случае каждый аргумент запроса должен представлять собой отдельный запрос в синтаксисе командной строки. Может быть описан общий набор параметров для всех запросов, эти параметры должны предшествовать первому запросу. Например:
 
 
 
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
 
 
В данном случае имеет место быть три запроса в одной строке: любой запрос для www.isc.org, обратный поиск для 127.0.0.1 и NS запрос для isc.org. Для них существует общий параметр +qr.
 

Поддержка IDN

 
В случае если утилита была собрана с поддержкой IDN (международные имена доменов), то dig способна работать с именами содержащими в своих именах не ASCII символы. В таком случае программа перед отправкой запроса на сервер и при получении ответа производит перекодировку доменного имени. Если вы хотите выключить поддержку IDN, то необходимо установить переменную окружения bash IDN_DISABLE.
 

Используемые файлы

 
/etc/resolv.conf
 

${HOME}/.digrc

Упомянутые команды:

ps 
history - показать историю выполненных команд bash
Алфавитный список команд терминала Mac OS X