Модификатор redirect в SPF-записях: правила, примеры и подводные камни
Что такое redirect в SPF
redirect — это модификатор (не механизм!) SPF-записи, который перенаправляет проверку к SPF-записи другого домена. В отличие от include, который импортирует правила но сохраняет вашу политику all, redirect полностью передаёт управление другой записи.
Ключевое отличие в одном предложении: include — это ссылка, redirect — это полная передача полномочий.
Синтаксис и правила RFC 7208
Правила, установленные в RFC 7208:
redirectиспользует знак равенства=, а не двоеточие как механизмы- Модификатор не использует префиксы
+,-,~,? - Может присутствовать только один раз в записи
- Должен располагаться в конце записи (хотя формально может быть в любом месте)
- Срабатывает только если ни один механизм не совпал
all (в любом месте), модификатор redirect полностью игнорируется.Это самая частая ошибка администраторов.
Redirect vs Include: сравнение
| Критерий | redirect | include |
|---|---|---|
| Тип | Модификатор | Механизм |
| Синтаксис | redirect=domain | include:domain |
| Префиксы | Нет | Да (+, -, ~, ?) |
| Политика all | Наследуется из целевой записи | Сохраняется из текущей записи |
| Когда срабатывает | Только при отсутствии совпадений | В порядке следования |
| Количество | Только один | Несколько |
| Использование | Внутри одной административной зоны | Для сторонних сервисов |
Когда использовать redirect
- Несколько доменов/поддоменов вашей организации используют одинаковую политику
- Централизованное управление SPF для корпоративной инфраструктуры
- Делегирование поддоменов (например,
mail.example.com→_spf.example.com)
- Для сторонних почтовых сервисов (Google Workspace, Яндекс 360) — используйте
include - Если вы не контролируете целевой домен
- Если целевая запись может измениться без вашего ведома
Примеры для российских сервисов
Mail.ru (VK Mail)
v=spf1 redirect=spf.mail.ru -all
; Правильно — используем include
v=spf1 include:spf.mail.ru -all
Mail.ru публикует spf.mail.ru для включения в ваши записи. Никогда не используйте redirect на чужие домены — только include.
Яндекс 360 / Яндекс Почта для домена
v=spf1 redirect=_spf.yandex.net -all
; Правильно
v=spf1 include:_spf.yandex.net -all
Beget
v=spf1 redirect=_spf.beget.com -all
; Правильно
v=spf1 include:_spf.beget.com -all
include, а не redirect. redirect предназначен для ваших собственных доменов в рамках одной организации.
Корректный пример redirect в корпоративной среде
_spf.example.com. TXT "v=spf1 ip4:198.51.100.10 ip4:198.51.100.11 -all"
; Поддомены делегируют политику центральной записи
mail.example.com. TXT "v=spf1 redirect=_spf.example.com"
news.example.com. TXT "v=spf1 redirect=_spf.example.com"
billing.example.com. TXT "v=spf1 redirect=_spf.example.com"
Преимущества такой схемы:
- Изменение политики в одном месте (
_spf.example.com) применяется ко всем поддоменам - Нет дублирования IP-адресов
- Упрощённый аудит и мониторинг
Типичные ошибки и как их избежать
Ошибка 1: Сочетание redirect и all
v=spf1 redirect=_spf.example.com -allРезультат:
redirect игнорируется, работает только -all. Все письма отклоняются.
Ошибка 2: Redirect на чужой домен
v=spf1 redirect=_spf.google.comПроблема: Вы не контролируете политику Google. Если они изменят запись, ваша почта сломается без предупреждения. Используйте
include:_spf.google.com.
Ошибка 3: Несколько redirect
v=spf1 redirect=_spf1.example.com redirect=_spf2.example.comРезультат: RFC 7208 требует
permerror — модификатор может быть только один.
Ошибка 4: Отсутствие SPF-записи в целевом домене
_spf.example.com не имеет TXT-записи с v=spf1, результат будет permerror, а не none (как при обычном отсутствии SPF).
Лимит DNS-запросов
Модификатор redirect требует один DNS-lookup (поиск TXT-записи целевого домена). Этот lookup входит в общий лимит 10 DNS-запросов на одну проверку SPF.
Если целевая запись содержит include, mx, a — они тоже считаются. Будьте внимательны при проектировании сложных цепочек.
Чек-лист перед публикацией
- ☐ В записи нет механизма
all - ☐ Только один
redirectв записи - ☐ Целевой домен — под вашим контролем
- ☐ Целевой домен имеет валидную SPF-запись
- ☐ Общее количество DNS-lookups не превышает 10
- ☐ Проверена работоспособность через онлайн-валидатор
Заключение
redirect — мощный инструмент для централизации SPF-политик внутри организации. Но он требует дисциплины: никакого all в той же записи, только собственные домены в качестве цели, и тщательный контроль за целевой записью.
Для сторонних сервисов (Mail.ru, Яндекс, Google, Beget) всегда используйте include. redirect оставьте для внутренней инфраструктуры — там, где вы контролируете все участки цепочки.
Источники: RFC 7208 Sender Policy Framework, EasyDMARC SPF Syntax Guide, DMARCPal SPF Redirect vs Include, Mailhardener SPF Redirect Explained