Сегодня у меня есть несколько доменов, распространенных среди различных DNS-провайдеров, и все они выглядят так:
@ TXT "v=spf1 a:spf.example.com -all"
Что пока хорошо. Однако я хочу добавить дополнительные разрешенные исходящие серверы. Обычно я бы пошел с изменением a, чтобы включить и использовать вместо этого записи TXT / SPF, но, поскольку они распространены среди множества поставщиков, это было бы очень громоздкой задачей.
Итак, большой вопрос:
При добавлении нескольких одинаковых записей A, например:
spf.example.com A 12.12.12.12
spf.example.com A 12.34.12.34
как SPF отреагирует на это?
Будет ли он разрешать только первую запись, полученную в ответе от DNS, или он будет принимать все записи A для того же имени хоста?
Спасибо
Вы можете сделать это по-другому, как будто работают Google Apps.
Вы настраиваете запись SPF в домене example.com как
@ TXT "v=spf1 mx a -all"
Затем в домене, который вы хотите разрешить получать почту от вас, просто
@ TXT "v=spf1 include:_spf.example.com"
Тогда вам не придется добавлять отдельные записи A в SPF каждый раз, когда добавляется другой IP.
DNS ответит обоими IP-адресами. Задача вашего локального преобразователя - предоставить случайное значение приложению для использования. Так что, если кто-то глупый не внедрил проверку SPF, вы в безопасности. Чек просто не должен звонить gethostbyname()
на хосте, но запрашивать все записи A явно.
Это тоже написано в Спецификация SPF: Поиск адреса выполняется на <target-name>
. В <ip>
сравнивается с возвращенным адресом (адресами). Если какой-либо адрес совпадает, механизм совпадает.