На этой странице
Обычный DNS преобразует имя в адрес. Обратный DNS работает наоборот и отвечает на вопрос «какое имя хоста принадлежит адресу 203.0.113.10?» Почтовые серверы задают его при каждом входящем подключении, а еще он делает логи и вывод traceroute понятнее. Обратные DNS-записи бесплатны для всех адресов вашего сервера.
Что такое PTR-запись
Для обратных запросов используются специальные зоны. Для IPv4 адрес записывается в обратном порядке в зоне in-addr.arpa, для IPv6 в обратном порядке записывается каждая шестнадцатеричная цифра в зоне ip6.arpa. Тип записи — PTR:
10.113.0.203.in-addr.arpa. PTR mail.example.com.Эти зоны принадлежат владельцу диапазона IP-адресов, а для адресов вашего сервера это DediJet. Поэтому PTR-запись настраивается в личном кабинете DediJet, а не у DNS-провайдера вашего домена. Прямые записи A и AAAA остаются у вашего DNS-провайдера.
Почему почтовым серверам нужна обратная DNS-запись с прямым подтверждением
Принимающий почтовый сервер проверяет у подключающегося к нему IP-адреса две вещи:
- У адреса есть PTR-запись, например
mail.example.com. - Это имя хоста через свою запись
AилиAAAAразрешается обратно в тот же адрес.
Если оба условия выполняются, у адреса есть обратная DNS-запись с прямым подтверждением (FCrDNS). Крупные почтовые сервисы требуют ее от отправителей и без нее отклоняют письма или отправляют их в спам; многие собственные почтовые серверы тоже ее требуют — в Postfix для этого служит reject_unknown_client_hostname. Используйте то же имя, которое ваш почтовый сервер сообщает в приветствии HELO/EHLO; в Postfix оно задается параметром myhostname.
Настройте PTR-запись
Сначала создайте прямую запись. У своего DNS-провайдера направьте
mail.example.comна203.0.113.10записьюA, а также добавьте записьAAAAдля IPv6-адреса, с которого будете отправлять почту. Проверьте, что имя разрешается, командойdig +short mail.example.com A.Настройте обратную запись. В личном кабинете откройте сервер и выберите «Обратная DNS-запись». Укажите адрес и введите имя хоста —
mail.example.com.Проверьте запись, как показано ниже.
Чтобы управлять множеством адресов или задавать PTR-записи из своих скриптов подготовки серверов, используйте API DediJet: в нем доступны те же настройки обратных DNS-записей, что и в личном кабинете.
Проверьте запись
Установите утилиты для DNS-запросов, если их нет: apt install -y bind9-dnsutils в Ubuntu и Debian, dnf install -y bind-utils в AlmaLinux и Rocky Linux. Затем:
dig -x 203.0.113.10 +short
host 203.0.113.10
dig +short mail.example.com AПервые две команды должны вернуть mail.example.com (dig выводит имя с точкой на конце), третья — 203.0.113.10. Если оба направления совпадают, обратная запись имеет прямое подтверждение.
Распространение и кэширование
После публикации изменения резолверы, которые уже запрашивали старое значение, продолжают возвращать его, пока не истечет его TTL (время жизни). TTL — это число во втором столбце полного ответа:
dig -x 203.0.113.10 +noall +answer10.113.0.203.in-addr.arpa. 3600 IN PTR mail.example.com.В этом примере TTL составляет 3600 секунд, так что резолвер, закэшировавший старый ответ, может отдавать его до одного часа. Чтобы увидеть текущее значение в обход любых кэшей, пройдите по цепочке делегирования от корневых серверов с помощью dig +trace -x 203.0.113.10.
Обратные DNS-записи для IPv6
У каждого IPv6-адреса своя PTR-запись, и заполнять всю подсеть /64 никто не станет. Настройте записи для адресов, которые вы действительно используете, — как минимум для того, с которого отправляет почту ваш почтовый сервер. dig -x сам составит длинное имя в зоне ip6.arpa:
dig -x 2001:db8:1234:5678::25 +shortIPv6 важен для почты, даже если вы его не планировали: когда обе стороны поддерживают IPv6, ваш почтовый сервер может доставлять письма через него, и тогда принимающий сервер проверяет IPv6-адрес. Либо настройте для этого адреса PTR-запись и соответствующую запись AAAA, закрепив адрес в Postfix параметром smtp_bind_address6, либо заставьте почтовый сервер использовать только IPv4 с помощью inet_protocols = ipv4. Как добавить выделенный адрес, описано в руководстве Настройка подсети /64 IPv6.
Типичные ошибки
- Нет соответствующей прямой записи. PTR-запись указывает на имя без записи
AилиAAAAлибо на имя, которое разрешается в другой адрес, и проверка FCrDNS не проходит. - Использование домена без поддомена.
example.comобычно указывает на ваш сайт, который часто размещен в другом месте. Используйте отдельное имя хоста, напримерmail.example.com. - Приветствие не совпадает. Почтовый сервер представляется как
localhostили под другим именем, чем в PTR-записи. - Почта уходит с другого адреса. PTR-запись настроена для основного IP, а письма отправляются с IPv6-адреса или дополнительного IPv4-адреса. Проверьте адрес источника в почтовых логах.
- Завышенные ожидания от обратной DNS-записи. Она не влияет на работу сайтов и позиции в поисковой выдаче и не заменяет SPF, DKIM или DMARC.
Кратко об SPF, DKIM и DMARC
Обратная DNS-запись идентифицирует сервер. Еще три DNS-записи, которые настраиваются у вашего DNS-провайдера, подтверждают подлинность почты вашего домена:
- SPF перечисляет адреса, которым разрешено отправлять почту от имени домена, — в виде записи
TXTдляexample.com:v=spf1 ip4:203.0.113.10 ip6:2001:db8:1234:5678::25 -all. - DKIM подписывает каждое письмо. Пару ключей генерирует ваше почтовое ПО (OpenDKIM, Rspamd и другие); открытый ключ размещается в записи
TXTдляselector._domainkey.example.com. - DMARC сообщает получателям, что делать, если проверки SPF и DKIM не пройдены, и куда отправлять отчеты. Начните с записи
TXTдля_dmarc.example.comсо значениемv=DMARC1; p=none, добавьте тегruaс адресом ящика для отчетов, который вы контролируете, а когда отчеты станут чистыми, переходите наquarantineилиreject.
Если вы держите почтовый сервер, он должен быть закрыт для посторонних: открытые релеи запрещены Правилами допустимого использования.
Все еще не получается?
Если личный кабинет не принимает имя хоста или новая запись не появляется даже после истечения TTL, создайте тикет в разделе Поддержка, указав адрес, имя хоста и вывод dig -x.