PTR-запись для почтового сервера: что это, как проверить и настроить

PTR-запись для почтового сервера: что это, как проверить и настроить

PTR-запись — обратная DNS-запись: она отвечает на вопрос «какое имя у этого IP-адреса». Для почтового сервера она обязательна: принимающий сервер берёт IP, с которого пришло письмо, запрашивает его PTR, а затем проверяет, что полученное имя указывает обратно на тот же IP. Нет записи или круг не замыкается — письмо получает минус к репутации или отказ, например 550 5.7.25 у Yahoo.

Ниже — как устроена PTR-запись, как проверить её командами dig и nslookup, кто и где её настраивает и что делать, если почту за вас отправляет сервис.

Что такое PTR-запись

Обычная A-запись переводит имя в адрес: mail.example.ru → 203.0.113.10. PTR делает обратное: 203.0.113.10 → mail.example.ru.

Хранится PTR в специальной зоне in-addr.arpa, где октеты адреса записаны в обратном порядке:

10.113.0.203.in-addr.arpa.  PTR  mail.example.ru.

Для IPv6 используется зона ip6.arpa, и адрес раскладывается по полубайтам, тоже в обратном порядке. Механика та же.

Отсюда главное свойство PTR, которое объясняет почти все трудности с ней: обратную зону ведёт владелец IP-адреса, а не владелец домена. Вы можете управлять зоной example.ru у любого регистратора, но запись для 203.0.113.10 создаст только тот, кому принадлежит этот адрес: хостинг, облако или интернет-провайдер.

Зачем PTR почтовому серверу

Принимающий сервер не знает о вас ничего, кроме IP-адреса, с которого открыто соединение. PTR — первое, что он про этот адрес выясняет.

Требования Gmail для всех отправителей прямо включают обратную DNS: у отправляющего IP должны быть действительные прямая и обратная записи, а имя хоста из PTR должно указывать на тот же IP A-записью (или AAAA-записью для IPv6).

Yahoo отклоняет письма с IP без корректной обратной зоны ответом 550 5.7.25 Forward-confirmed reverse DNS failed. Разбор этого кода — на странице 550 5.7.25 у Yahoo.

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

FCrDNS: проверка в обе стороны

Одной записи PTR недостаточно. Проверка называется FCrDNS (forward-confirmed reverse DNS) и состоит из двух запросов:

  1. Обратный: 203.0.113.10 → PTR → mail.example.ru.
  2. Прямой: mail.example.ru → A → должен вернуться 203.0.113.10.

Если второй запрос возвращает другой адрес или не возвращает ничего, проверка не пройдена, даже если PTR существует. Так бывает, когда PTR указывает на имя, для которого никто не создал A-запись, или когда сервер переехал на новый IP, а A-запись осталась старой.

К этим двум проверкам почти всегда добавляют третье условие: имя, которым сервер представляется в команде EHLO, должно совпадать с именем из PTR. Расхождение само по себе не всегда приводит к отказу, но часть фильтров ставит его в минус.

Что проверяется Пример правильного значения
PTR адреса 203.0.113.10 mail.example.ru
A-запись mail.example.ru 203.0.113.10
Имя в EHLO mail.example.ru

Как проверить PTR-запись

Командой dig

dig -x 203.0.113.10 +short

Ответ — имя хоста с точкой в конце, например mail.example.ru.. Пустой ответ означает, что PTR нет.

Теперь прямая проверка:

dig mail.example.ru A +short

Должен вернуться тот же 203.0.113.10. Если вернулся другой адрес или ничего, FCrDNS не проходит.

Командой nslookup

На Windows dig обычно нет, там то же самое делает nslookup:

nslookup 203.0.113.10
nslookup mail.example.ru

В первом ответе ищите строку name = mail.example.ru, во втором — тот же IP в блоке Addresses. Ответ Non-existent domain на первый запрос означает, что PTR не настроена.

Командой host

На Linux и macOS есть короткий вариант:

host 203.0.113.10

Он печатает 10.113.0.203.in-addr.arpa domain name pointer mail.example.ru. или сообщение not found.

Как узнать IP, который нужно проверять

Проверять нужно тот адрес, с которого сервер отправляет, а не тот, на котором работает сайт. Его проще всего взять из заголовков доставленного письма: принимающий сервер записывает в верхний заголовок Received и IP, и имя, которое получил по PTR. Вставьте заголовки письма в анализ заголовков, и цепочка Received покажет каждый переход с адресом.

Если почтовый сервер не только отправляет, но и принимает почту на том же адресе, проверка SMTP-сервера подключится к нему и покажет обратное имя адреса, приветствие сервера и поддержку STARTTLS. Прямую половину FCrDNS проверьте затем командой dig.

Как PTR видна в заголовках письма

Принимающий сервер записывает результат обратного запроса прямо в письмо. Верхний заголовок Received, который добавил сервер получателя, у Postfix и многих других серверов выглядит так:

Received: from mail.example.ru (mail.example.ru [203.0.113.10])
        by mx.example.net with ESMTPS id 4Xk2Pq…

Первое имя после from показывает, как отправитель представился в EHLO. В скобках — имя, полученное по PTR, и сам IP. Если оба имени совпадают, у сервера всё в порядке.

Если PTR нет, вместо имени в скобках стоит unknown:

Received: from mail.example.ru (unknown [203.0.113.10])

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

«Некорректно настроена PTR-запись на домене отправителя»

Такое предупреждение выдают онлайн-проверки писем и спам-фильтры. Почти всегда за ним стоит одна из четырёх ситуаций:

  • PTR нет вовсе. Состояние по умолчанию для многих свежих VPS и облачных серверов.
  • PTR указывает на имя без A-записи или на имя, которое резолвится в другой адрес.
  • PTR общая, выданная провайдером, вида 203-0-113-10.static.provider.net или со словами dynamic, client, pool. Механическую проверку она иногда проходит, но фильтры читают такие имена как адрес абонентской сети.
  • PTR и EHLO расходятся: сервер представляется localhost или внутренним именем контейнера.

Формулировка «на домене отправителя» сбивает с толку: PTR относится к IP-адресу, а не к домену из адреса отправителя. Исправлять запись нужно там, где выдан адрес.

Кто настраивает PTR-запись

Хостинг или облако

Если сервер арендован, PTR задаётся у хостинга. У многих облачных провайдеров для этого есть поле в панели управления. В Timeweb Cloud, например, это раздел «Сети» → «Публичные IP» → вкладка «PTR». Где поля нет, PTR ставят по заявке в поддержку: укажите IP и нужное имя.

Заявка короткая. Например: «Прошу установить PTR-запись для IP 203.0.113.10: mail.example.ru. A-запись mail.example.ru → 203.0.113.10 уже опубликована. Адрес используется почтовым сервером».

Перед заявкой создайте A-запись для этого имени у своего регистратора. Часть хостингов проверяет, что имя указывает на ваш адрес, и без этого запись не поставят.

Интернет-провайдер, если сервер стоит в офисе

Для сервера в собственной серверной PTR настраивает провайдер, выдавший IP. Обычное условие — статический адрес: для динамического PTR не настроить, и отправлять почту напрямую с такого адреса бессмысленно.

Для PTR-записи у Ростелекома схема та же: подключить статический IP, затем подать заявку в техподдержку с номером договора, адресом и нужным именем хоста. Если оператор первой линии не понимает запрос, попросите передать его специалистам по сетевым услугам.

Если у вас свой блок адресов

Владелец блока может получить делегирование обратной зоны и вести PTR на своих DNS-серверах. Для блока меньше /24 используется бесклассовое делегирование по RFC 2317. Это редкий случай, и если он ваш, вы, скорее всего, уже знаете, где эта зона.

Как настроить PTR-запись: порядок действий

  1. Выберите имя. Имя на вашем домене, например mail.example.ru. Не используйте корень домена, если на нём сайт с другим IP.
  2. Создайте A-запись mail.example.ru → отправляющий IP у регистратора.
  3. Закажите PTR IP → mail.example.ru у владельца адреса.
  4. Пропишите это имя в EHLO в настройках почтового сервера. В Postfix это параметр myhostname.
  5. Проверьте dig -x и dig A и дождитесь, пока изменения разойдутся: у обратной зоны TTL бывает несколько часов.
  6. Повторите для каждого отправляющего IP, включая IPv6. Если сервер отправляет по IPv6, а PTR есть только у IPv4, часть писем уйдёт с ненастроенного адреса, и отказы будут случайными.

Частые ошибки

PTR создана в своей DNS-зоне. Панель регистратора разрешает добавить запись типа PTR в зону example.ru, но получатели её не спрашивают: они смотрят зону in-addr.arpa, которой управляет владелец IP.

Забыт IPv6. Сервер получил IPv6-адрес, и почта к Gmail уходит через него, а PTR настроена только для IPv4. Требования Gmail распространяются и на IPv6: нужна PTR адреса и AAAA-запись имени, указывающая на тот же адрес.

Сервер переехал, PTR осталась. Новый IP, старая PTR у старого хостинга, A-запись уже указывает на новый адрес. FCrDNS ломается сразу в обе стороны.

Одна PTR на несколько имён. У адреса может быть несколько PTR, но многие проверки берут первую. Держите одну запись на один отправляющий IP.

PTR ведёт на имя с wildcard-записью. Имя резолвится, но в чужой адрес, и проверка не проходит. Используйте явную A-запись.

PTR, SPF и DKIM: что за что отвечает

Эти записи часто путают, потому что все они встречаются в одном отчёте о проверке письма. Отвечают они на разные вопросы.

Запись О чём говорит Кто публикует
PTR Какое имя у IP-адреса отправляющего сервера Владелец IP
SPF Каким серверам разрешено отправлять от домена Владелец домена
DKIM Подписал ли письмо домен и не изменилось ли оно в пути Владелец домена

PTR характеризует сервер, а SPF и DKIM — домен. Правильная PTR не спасёт письмо с доменом без подписи, а идеальные SPF и DKIM не помогут, если сервер отправляет с адреса без обратной записи. Для собственного почтового сервера нужны все три, а DMARC затем связывает SPF и DKIM с адресом в поле «От кого». Состояние доменной половины покажет проверка DNS для почты.

Если почту отправляет сервис

Когда письма уходят через транзакционный сервис или SMTP-релей, соединение с получателем открывают серверы сервиса со своих IP. PTR этих адресов, их A-записи и имя в EHLO — забота сервиса, и в вашей DNS-зоне для них ничего настраивать не нужно.

В FMailer это так и устроено: имя, которым отправляющие серверы представляются в EHLO, совпадает с PTR их IP-адресов и с A-записью этого имени. От вас нужны записи, которые относятся к домену: DKIM, SPF и DMARC, и их FMailer публикует сам после делегирования поддомена через NS-записи. Порядок описан в разделе «Настройка NS-записей», параметры подключения — в документации по SMTP.

Частые вопросы

Где посмотреть PTR-запись своего сервера?

Выполните dig -x ВАШ_IP +short или nslookup ВАШ_IP. Если ответа нет, PTR не настроена. Отправляющий IP удобнее всего взять из заголовка Received доставленного письма.

Можно ли добавить PTR-запись у регистратора домена?

Нет, если регистратор не владеет вашим IP-адресом. PTR живёт в обратной зоне адреса, и ведёт её тот, кто выдал IP: хостинг, облако или интернет-провайдер.

Что такое обратная запись PTR и чем она отличается от A-записи?

A-запись переводит имя в IP, PTR — IP в имя. Для почты нужны обе, и они должны указывать друг на друга: это и есть проверка FCrDNS.

Нужна ли PTR-запись, если я отправляю через SMTP Яндекса, Mail.ru или сервис рассылок?

Нет. Письма доставляют серверы провайдера со своих адресов, и их PTR настроена на его стороне. От вас нужны SPF, DKIM и DMARC вашего домена.

Какое имя указывать в PTR?

Полное имя хоста на вашем домене, у которого есть A-запись на этот же IP, например mail.example.ru. То же имя укажите в EHLO почтового сервера.

Сколько ждать, пока PTR заработает?

Обычно от нескольких минут до нескольких часов, в зависимости от TTL обратной зоны у провайдера. Если через сутки dig -x возвращает старое значение, уточните у провайдера, применена ли заявка.

Итог

PTR-запись связывает IP-адрес почтового сервера с именем хоста, а A-запись этого имени должна вести обратно на тот же адрес. Настраивает PTR владелец IP (хостинг, облако или провайдер), а проверяется она двумя командами dig. Имя из PTR стоит использовать и в EHLO. Если почту отправляет сервис, обратная зона его адресов — его забота, а ваша — записи домена.

Попробовать FMailer

Подключите поддомен на fmailer.ru: отправка пойдёт с серверов, у которых PTR, A-запись и EHLO уже согласованы, а DKIM, SPF и DMARC FMailer опубликует сам. Свой почтовый сервер, обратную зону и прогрев IP поддерживать не придётся.

Подключить домен на fmailer.ru →