Слишком много DNS-запросов в записи SPF

мой сайт должен отправлять электронные письма с Google Apps, SendGrid и MailChimp-сервисами. Google Apps используется для получения и чтения входящей электронной почты в мой домен.

Мне нужно установить запись SPF для моего домена. Синтаксически правильно (не уверен в токенах A и MX) следующее:

" v=spf1 a mx включает:_spf.google.com включить:servers.mcsv.net включают в себя:sendgrid.net ~все"

но если я проверить его с http://www.kitterman.com/getspf2.py я

PermError SPF постоянная ошибка: слишком много DNS-запросов

аналогичная проблема как http://www.onlineaspect.com/2009/03/20/too-many-dns-lookups-in-an-spf-record/

Как я могу оптимизировать / переписать мою запись SPF?

7 ответов


Итак, мне никогда не приходилось делать этого раньше, но основываясь на статье, которую вы прислали, это то, что я придумал.

мы начали с:

v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all

мы получаем 10 общих просмотров, прежде чем бросить Too many DNS lookups ошибка:

  2 (Initial TXT & SPF Lookups)
  2 (a & mx Lookups)
  1 (_spf.google.com)
  1 (servers.mcsv.net)
 +1 (sendgrid.net)
 -----------------
  7 Lookups

поэтому, даже не следуя включенным записям SPF, у нас есть 7 поисков.


теперь, давайте погрузимся глубже.

1. _spf.google.com

оценка записи Google SPF кому:

v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all

каждый из которых разрешает следующие значения:

# _netblocks.google.com
v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 ?all

# _netblocks6.google.com
v=spf1 ip6:2607:f8b0:4000::/36 ip6:2a00:1450:4000::/36 ?all

таким образом, google дает нам еще 2 поиска, доведя общую сумму до 9 поиска.

2. servers.mcsv.net

Mailchimp немного doosey, потому что он добавляет целых 3 дополнительных поиска:

v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all

Я бы предположил, что в зависимости от того, что вы отправляете через Mailchimp, вы можете удалить одну или две из этих записей (но вы должны оценить это сами).

во всяком случае, они решают следующее:

# spf1.mcsv.net
v=spf1 ip4:207.97.237.194/31 ip4:207.97.238.88/29 ip4:207.97.240.168/29 ip4:69.20.10.80/29 ip4:69.20.41.72/27 ip4:74.205.22.1/27 ip4:69.20.90.0/26 ?all

# spf2.mcsv.net
v=spf1 ip4:204.232.163.0/24 ip4:72.26.195.64/27 ip4:74.63.47.96/27 ip4:173.231.138.192/27 ip4:173.231.139.0/24 ip4:173.231.176.0/20 ip4:205.201.128.0/24 ?all

# spf.mandrillapp.com
v=spf1 ip4:205.201.136.0/24 ip4:205.201.137.0/24 ?all

это подводит нас в общей сложности 12 поиска (что уже на два больше предела).

2. sendgrid.net

SendGrid в конечном итоге является наименьшим количеством дополнительных запросов для нас.

v=spf1 ip4:208.115.214.0/24 ip4:74.63.202.0/24 ip4:75.126.200.128/27 ip4:75.126.253.0/24 ip4:67.228.50.32/27 ip4:174.36.80.208/28 ip4:174.36.92.96/27 ip4:69.162.98.0/24 ip4:74.63.194.0/24 ip4:74.63.234.0/24 ip4:74.63.235.0/24 include:sendgrid.biz ~all

таким образом, единственным дополнительным поиском здесь является sendgrid.biz, которая оценивается как:

v=spf1 ip4:208.115.235.0/24 ip4:74.63.231.0/24 ip4:74.63.247.0/24 ip4:74.63.236.0/24 ip4:208.115.239.0/24 ip4:173.193.132.0/24 ip4:173.193.133.0/24 ip4:208.117.48.0/20 ip4:50.31.32.0/19 ip4:198.37.144.0/20 ~all

это приносит наш Гранд всего до 14 просмотров.


таким образом, наш общий итог 14 поиска. Мы должны довести до 10. Я изложил несколько вариантов ниже, вам может потребоваться использовать более 1 из них, чтобы получить его.

  1. непосредственно включить некоторые из перенаправленных записей spf. Теперь, когда мы знаем, на какие серверы перенаправляются записи spf, вы можете вырезать посредника и включить их напрямую. Примечание: Если какие-либо из услуг в конечном итоге изменяя свои записи SPF, вам придется пройти процесс обновления вручную.

  2. удалите некоторые из служб, которые вы используете. Не уверен, что ваш вариант использования для всех этих услуг, но определенно есть некоторое перекрытие, которое вы можете использовать. Например, SendGrid поддерживает (1) транзакционную исходящую почту, (2) рассылку / маркетинговые письма и (3) входящую почту. Таким образом, могут быть некоторые reducible избыточность.

  3. удалите запись MX, если она избыточна. В зависимости от настройки поиск MX может быть избыточным.

надеюсь, что это помогает!


ответ Свифта превосходен.

метод, который не упоминается выше, заключается в том, чтобы посмотреть, могут ли отдельные поддомены со своими собственными записями SPF использоваться для систем, которые отправляют почту по этим различным маршрутам.

Е. Г. если домен example.com, есть google apps отправить с адресов, как user@gapps.example.com. Тогда может быть запись SPF для gapps.example.com который включает в себя _spf.google.com и _spf.google.com можно удалить из основной example.com запись SPF, которая уменьшает поиск 3.


посмотреть SPF-tools* которые помогают с повторной сборкой записи SPF из исходного, который использует включает в статический, содержащий только ip4 и ip6 поля. Его можно легко соединить вместе с локально запущенным DNS-сервером или размещенной службой DNS, используя их API, чтобы синхронизировать все с восходящим включает.

*Я автор (теперь вместе с другими участниками), и это с открытым исходным кодом под лицензией Apache 2.0.


мы исследовали сплющивание записей SPF В IPs, а также создание поддоменов. Все они казались большой работой. Мы нашли услугу от spfproxy.org который буквально занимает пару минут, чтобы настроить. Они в основном маскируют DNS-запросы за ними с помощью макросов SPF. Не уверен, почему больше компаний не предлагают это.


несколько лет назад я писал гидрат-spf инструмент, который включает в себя и сливается в итоге в одну большую запись. Как упоминалось в README, этот подход не идеален - он удаляет возможность для включенных доменов обновлять свои записи. Однако, когда вы сталкиваетесь с разрешенным пределом, он решит непосредственную проблему и может быть сохранен несколько поддерживаемым с помощью регулярных обновлений.


предел поиска 10 является пределом для поиска DNS. Выравнивание записи SPF для включения меньшего количества DNS-запросов и их замены на IPs (выравнивание) - это способ обойти ограничение.

вы можете сделать это вручную, но затем вы должны обновлять свои записи SPF каждый раз, когда один из поставщиков изменяет свои IPs (что происходит часто).

идеальным решением является использование обслуживание сплющивания SPF. Это одно свободно для низких томов, или дешево для больше более 500 электронных писем в месяц. Это регулярно опрашивает записи SPF, которые вы хотите включить для обновленных IPs.

Fraudmarc.com

раскрытие: я не связан с этой компанией и это не реферальная ссылка


Это ограничение 10-DNS-lookup накладывается реализациями SPF для предотвращения DDoS-атак на инфраструктуру DNS.

с DMARCLYбезопасная функция SPF, вы можете поднять предел без перезаписи записи SPF.