Как работает обратный DNS
Прямой DNS сопоставляет имена с адресами; обратный DNS возвращает от адреса к имени через записи PTR в специальном дереве. Для IPv4 октеты переворачиваются и добавляется .in-addr.arpa: 192.168.1.10 ищется как 10.1.168.192.in-addr.arpa. Для IPv6 каждая hex-цифра полностью развёрнутого адреса переворачивается и разделяется точками под .ip6.arpa, что даёт 32 метки.
Обратное дерево делегируется по тем же границам, что и выделение адресов: владелец 192.168.0.0/16 получает 168.192.in-addr.arpa и может делегировать 1.168.192.in-addr.arpa для каждого /24. На практике это ваш провайдер или хостер; для одного сервера PTR обычно задают в их панели управления, а не ведут зону самостоятельно.
Почему это важно
- Почта: большинство получателей отклоняет или отправляет в спам письма с адреса, у которого нет PTR или он не совпадает с именем HELO (forward-confirmed reverse DNS). Это главная причина, по которой настраивают PTR.
- Журналы и traceroute показывают имена хостов вместо адресов.
- SSH, Kerberos и некоторые межсетевые экраны используют обратные запросы при принятии решений о доступе и зависают по тайм-ауту, когда обратная зона сломана.
Меньше, чем /24
/24 — самая маленькая зона IPv4, укладывающаяся в границы октетов. Для /29 или /28 провайдер делегирует с помощью приёма из RFC 2317: родительская зона содержит CNAME для каждого адреса, указывающие в подзону с именем вроде 0-7.1.168.192.in-addr.arpa, которой управляет клиент. Инструмент называет эту зону, когда префикс не попадает на границу октета. В IPv6 такой проблемы нет: /64, /56 и /48 все попадают на границы полубайтов.
Вопросы
Какая запись PTR у 8.8.8.8?
Она хранится в 8.8.8.8.in-addr.arpa и указывает на dns.google. Имя PTR любого адреса — это просто его октеты в обратном порядке под in-addr.arpa.
Как настроить обратный DNS для моего сервера?
В панели хостинг-провайдера (Hetzner: Server → Networking → Reverse DNS; AWS: запрос в поддержку или настройки Elastic IP; большинство VPS-хостеров: поле рядом с IP). Обратная зона принадлежит провайдеру, поэтому только он может создать запись.
Нужен ли PTR для IPv6?
Для почтового сервера — да, по тем же причинам, что и для IPv4. Для всего остального это необязательно, но аккуратно. Имя в ip6.arpa длинное, поэтому инструмент генерирует его за вас.
На что должен указывать PTR?
На имя, которое разрешается обратно в тот же адрес (прямая запись должна существовать). Для почтовых серверов оно должно совпадать с именем HELO/EHLO сервера, например mail.example.com.