
Я управляю небольшим веб-сервером и столкнулся с некоторыми проблемами при настройке SPF/DMARC для домена. Я пытаюсь понять, почему проверка SPF иногда проходит, а иногда нет. Это происходит при использовании одного и того же валидатора и когда в запись не вносились изменения. Это почти как если бы он считывал разные записи из разных источников при некоторых попытках.
В этом примере я использую dmarcian.com в качестве валидатора SPF.
Если я захожу на сайт и использую Инструменты--> Проверка домена, иногда появляется сообщение «Ваш домен имеет действительную запись SPF, и политика достаточно строгая». Если я нажимаю «Проверить домен» несколько раз (ошибки в написании исключены), иногда появляется сообщение «Ваш домен не имеет записи SPF». Почему я получаю два разных результата при одной и той же проверке, если ничего не изменилось?
Провайдер — Arvixe (скоро изменится). Веб-сервер — Windows VPS, и веб-сервер не является почтовым сервером. Мы платим за отдельную услугу массовой рассылки, хотя мы не отправляем много.
Я использую WebsitePanel для редактирования записей DNS. Записи SPF не поддерживаются, поэтому я использую запись TXT. Это выглядит так:
Имя: _spf Тип: TXT Данные: v=spf1 +a +mx +ip4:207.210.200.162 +ip4:143.95.68.96 ~все
Домен: theiaicertification.org IP-адреса: 108.167.130.38 / 108.167.130.39 Почтовый сервер: 207.210.200.162 / 143.95.68.96
решение1
Ваша зона DNS размещена на двух серверах DNS, что не является необоснованным количеством серверов DNS для размещения вашего домена. Оба сервера DNS страдают от отсутствия IPv6, что может стать проблемой в будущем.
Оба авторитетных DNS-сервера дают одинаковый ответ на запрос TXT-записей для домена, так что это тоже не проблема. Точный ответ, который я вижу, такой:
theiaicertification.org. 86400 IN TXT "v=spf1 +a +mx +ip4:207.210.200.162 +ip4:143.95.68.96 ~all"
Я хочу здесь отметить несколько вещей.
Использование a
and/or mx
может быть проблематичным для почтового сервера только IPv4. Это связано с тем, что вы не можете контролировать, какие IP-адреса должны быть проверены по вашей записи SPF, поэтому ваша запись SPF должна соответствовать стандартам для проверки адресов как IPv4, так и IPv6. Существует ограничение на количество DNS-поисков без ответа, разрешенных во время проверки записи SPF. Однако в вашем случае вы едва избежали этой ловушки.
+
Обычно записи SPF не пишутся с префиксом , но, похоже, это работает.
Я проверил, что можно проверять IP-адреса по записям SPF, используя реализацию проверки SPF на Python:
>>> import spf
>>> spf.query('192.0.2.1', '[email protected]', '').check()
('softfail', 250, 'domain owner discourages use of this host')
>>> spf.query('2001:db8::1', '[email protected]', '').check()
('softfail', 250, 'domain owner discourages use of this host')
>>>
Ни один из них не объясняет, почему вы видите разные результаты. Возможным объяснением разных результатов является кэширование. TTL вашей записи TXT составляет 86400 секунд, что составляет 24 часа. Если вы недавно изменили его, и TTL также был равен 24 часам, может потребоваться 24 часа, чтобы ваши изменения вступили в силу везде.
Я предполагаю, что служба, которую вы используете для проверки записей SPF, имеет более одного рекурсивного преобразователя, и по крайней мере один из них кэшировал старую версию вашей записи TXT.