Битлента
Сетевые команды и утилиты5 мин чтения·

dig -x: как узнать имя по IP-адресу и проверить PTR-запись

Как работает dig -x и команда host: обратный DNS-запрос по IP, запись PTR, зоны in-addr.arpa и ip6.arpa, типичные причины пустого ответа.

Кратко

Команда dig -x и IP-адрес выполняет обратный DNS-запрос и возвращает PTR-запись с именем узла. Пустой ответ или NXDOMAIN означают, что для адреса запись не создана, а это не всегда ошибка.

Вопрос наоборот: имя по адресу

Обычный DNS-запрос отвечает на вопрос «какой адрес у этого имени». Обратный отвечает на противоположный: «какое имя закреплено за этим адресом». Хранится такое соответствие в записях типа PTR, и управляет ими тот, кто владеет блоком адресов. Для домашних адресов это обычно провайдер, для серверов — хостинг-компания или администратор организации.

Обратная запись нужна не всем и не всегда. Она бывает полезна при разборе журналов, когда нужно понять, чей адрес в списке подключений, при настройке почтовых серверов, которые нередко проверяют соответствие, и при диагностике сети по выводу traceroute: имена промежуточных узлов приходят именно из PTR-записей.

Отсутствие записи не говорит о поломке. Для множества адресов, особенно у домашних абонентов, PTR либо не задана, либо содержит технически сформированное имя. Поэтому по пустому ответу выводы делать рано.

Синтаксис: dig -x и родственные команды

Основной вариант — dig -x и адрес. Утилита сама превращает его в служебное имя и посылает запрос типа PTR. Для краткого ответа добавьте +short.

КомандаЧто делает
dig -x 192.0.2.10Полный обратный запрос для IPv4-адреса
dig -x 192.0.2.10 +shortТолько имя, без служебных секций
dig -x 2001:db8::1Обратный запрос для IPv6-адреса
dig -x 192.0.2.10 @192.0.2.53Запрос к конкретному DNS-серверу
host 192.0.2.10Короткий результат тем же запросом
nslookup 192.0.2.10Обратный запрос через nslookup

Адреса в таблице относятся к специально зарезервированным для примеров диапазонам, поэтому реальных записей для них нет. Подставьте нужный вам адрес.

Команда host выдаёт самую компактную строку, где служебное имя связано словами domain name pointer с найденным именем. Если вы собираетесь разбираться в ответе подробнее, ведите работу в dig: он показывает коды и секции. Общие приёмы работы с утилитой, включая чтение секций ответа, описаны на отдельных страницах про dig.

Как устроено служебное имя

Чтобы DNS мог искать по адресу, адрес превращают в имя особой зоны. Для IPv4 порядок октетов меняют на обратный и добавляют суффикс in-addr.arpa. Адрес 192.0.2.10 превращается в 10.2.0.192.in-addr.arpa. Обратный порядок выбран потому, что в DNS имена читаются от частного к общему, а в IP-адресах общая часть стоит слева.

Для IPv6 каждую шестнадцатеричную цифру выписывают отдельно, тоже в обратном порядке, и добавляют суффикс ip6.arpa. Такие имена получаются очень длинными, поэтому вручную их почти никто не набирает, а ключ -x делает всё автоматически.

Если запустить dig с ключом +noall +question, вы увидите, какое именно имя утилита сформировала. Это удобный способ убедиться, что запрос уходит туда, куда нужно.

Правами на зону in-addr.arpa владеют держатели блоков адресов. Поэтому редактировать PTR для своего адреса можно только через того, кто им распоряжается: у провайдера это обычно запрос в поддержку, у хостинга — раздел управления сервером.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Читаем ответ: NOERROR, NXDOMAIN и пустая секция

Посмотрите на строку status в заголовке ответа и на секцию ANSWER.

  1. status: NOERROR и в ANSWER есть запись PTR. Имя найдено, оно указано в конце строки.
  2. status: NXDOMAIN. Для этого адреса зоны или записи нет. Это обычная ситуация для адресов без обратной записи.
  3. status: NOERROR, но ANSWER пуст. Имя сервер знает, но записи типа PTR у него нет.
  4. status: SERVFAIL или таймаут. Сервер не смог ответить; попробуйте другой DNS-сервер через @адрес.

Важная оговорка: имя из PTR не доказывает, что адрес принадлежит названному хосту. Записью управляет владелец адреса, и он вправе указать любое имя. Достоверной считается пара, когда прямой запрос по этому имени снова приводит на тот же адрес. Такую проверку так и называют прямым подтверждением, её применяют некоторые почтовые серверы.

Разные DNS-серверы могут отвечать по-разному, если запись только что меняли. Срок хранения старого ответа задаёт параметр TTL в ответе.

Практические сценарии

Обратный запрос полезен в нескольких задачах. Все они укладываются в простые команды.

Нужно понять, что за узел виден в трассировке или в списке соединений. Выполните dig -x +short для нужного адреса: имя нередко подскажет, к чьей сети он относится, например по названию города или оборудования. Не воспринимайте это как точный адрес владельца: имена выбирают сами операторы.

Вы настраиваете собственный сервер и хотите, чтобы адрес имел понятное имя. Проверьте текущее значение командой, затем обратитесь к тому, кто выдал вам адрес, и попросите задать PTR. После изменения повторите запрос; если ответ старый, подождите, пока истечёт TTL.

Нужно убедиться, что ответы одинаковы у разных DNS-серверов. Выполните команду с @адрес для нескольких серверов и сравните результаты. Расхождение обычно означает, что запись обновилась не везде.

Для остальных видов записей, таких как MX и TXT, понадобятся другие запросы, описанные на странице про nslookup set type.

Обратный запрос и электронная почта

Одна из причин, по которой люди вообще узнают о PTR-записях, связана с почтой. Многие принимающие серверы смотрят, есть ли у адреса отправителя обратная запись и совпадает ли она с тем, как представляется отправляющий сервер. Отсутствие записи или несовпадение может повлиять на то, как письма оцениваются получателем.

Если вы запускаете собственный почтовый сервер, проверьте обратную запись для его адреса командой dig -x с ключом +short. Она должна возвращать понятное имя, для которого прямой запрос снова указывает на тот же адрес. Если запись отсутствует или не совпадает, обратитесь к тому, кто выдал адрес, чтобы её настроили.

Для обычного домашнего пользователя это не имеет значения: письма отправляет почтовый сервис, а не ваш компьютер. Тема важна для тех, кто администрирует собственные серверы.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
digptrdnsобратный-dns

Часто задаваемые вопросы

Читайте также