Что делает "-all" во включенной (вторичной) записи SPF?

902
Codeswitcher

В записи SPF эта -allопция означает: «Я внесу в белый список только те машины / домены, которые я перечислю здесь, и никакие другие серверы не могут отправлять электронную почту для этого домена».

Итак, что это значит, когда кто-либо использует include:опцию в записи SPF для включения второй записи SPF, и эта вторичная запись SPF имеет -all? Каково влияние этого там?

1
Я позволил себе добавить конкретный пример, чтобы прояснить вопрос. Это должно помочь устранить любую кажущуюся двусмысленность. Daniel B 7 лет назад 0
@DanielB За исключением того, что вы изменили вопрос на что-то другое, чем я спросил. Откат. Codeswitcher 7 лет назад 0
Я прошу прощения, но я не понимаю, как пример не совсем то, о чем вы спрашивали. Примеры помогают проиллюстрировать, о чем вы спрашиваете. Daniel B 7 лет назад 0
@DanielB, потому что он "Codeswitcher" по имени, чего ты тогда ждешь? :) Codeswitcher, пожалуйста, не расценивайте это как просьбу о драке снова, это просто шутка, которая обычно помогает решить еще более сложные вещи. Вы задаете интересный вопрос, но не хватает информации и правильных терминов. Alex 7 лет назад 0
Почти тот же вопрос с ** очень хорошо объясняющим ответом **: [SPF с -all включает директиву с ~ all?] (Https://serverfault.com/q/848711/84914) pabouk 5 лет назад 0

3 ответа на вопрос

4
Lars Lind Nilsson

Механизм включения запускает рекурсивную оценку для включенной записи. Если эта оценка завершится неудачно (например, с помощью -all во включенной записи), результат механизма включения будет считаться «Не совпадает». Таким образом, на практике механизм -all (или любой другой механизм с квалификатором -) во включенной записи SPF не влияет на оценку первичной записи.

Полный обзор того, как механизм включения влияет на оценку первичной записи, можно увидеть в таблице в разделе 5.2 RFC 7208 ( https://tools.ietf.org/html/rfc7208#section-5.2 )

Опять же, в SPF НЕТ такого термина, как «вторичная запись»! Alex 7 лет назад 0
«Вторичная запись» - это термин, используемый ОП, поэтому я просто ответил тем же термином. Когда я читаю вопрос, «вторичная запись» относится к включенной записи SPF. Lars Lind Nilsson 7 лет назад 0
Не забывайте, что куча скрытных людей может предположить, что в DNS можно использовать несколько записей SPF. Включено! = Вторично. Alex 7 лет назад 0
Я отредактировал ответ, чтобы уменьшить риск путаницы в терминологии. Lars Lind Nilsson 7 лет назад 0
Спасибо за понимание. Я имею дело с такими проблемами (вторично - множественные записи SPF в DNS) ежедневно, поэтому я пытаюсь сделать акцент на этом Alex 7 лет назад 0
0
davidgo

В -allконце интерпретируется после обработки любых включений.

Его цель - сообщить, как следует обрабатывать электронные письма, не отправленные через перечисленные ресурсы.

-allозначает отбросить их как подделку, в то время как ~allозначает, что они все еще могут быть законными и к ним следует относиться с большим подозрением.

Я думаю, что вы хотели сказать - "` -все` означает, что этот исходящий сервер авторизован для отправки электронной почты, а все остальные должны быть отброшены как подделки ", в противном случае нужно перечислить почти весь Интернет Alex 7 лет назад 0
Это то, что он сказал. «как письма не отправляются, хотя перечисленные ресурсы должны обрабатываться» cascer1 7 лет назад 0
0
cascer1

Для прохождения проверки SPF отправляющий IP-адрес должен пройти хотя бы один из механизмов. Механизмы включения проверяют входящий IP-адрес, используя включенную запись SPF, и «возвращают» результат.

Используя ваш пример:

a.example.com IN TXT "v=spf1 include:b.example.com +all" b.example.com IN TXT "v=spf1 -all" 

Включенная запись вернет ошибку, так как она содержит только -allмеханизм. Однако первая запись пройдет, потому что у нее есть +allмеханизм.

Используя более подробный пример:

a.example.com IN TXT "v=spf1 ip4:1.2.3.4 mx include:spf.example.org -all" a.example.com IN MX 0 mailserver.example.com mailserver.example.com IN A 1.2.3.5 spf.example.org IN TXT "v=spf1 ip4:4.3.0.0/16 -all" 

Я запишу результаты каждого механизма в том же порядке, в котором они указаны в записи. Итак, результаты будут отформатированы так:

  • a.example.com: [ip4] [mx] [include] [-all]
  • spf.example.org: [ip4] [-all]

Со следующими адресами отправителя:

1.2.3.4

  • spf.example.org -> fail fail
  • a.example.com -> pass fail fail fail

Окончательный результат будет pass, так как пройдена хотя бы одна проверка

1.2.3.5

  • spf.example.org -> fail fail
  • a.example.com -> fail pass fail fail

Окончательный результат будет pass, так как пройдена хотя бы одна проверка

4.3.10.20

  • spf.example.org -> pass fail
  • a.example.com -> fail fail pass fail

Окончательный результат будет pass, так как пройдена хотя бы одна проверка

TL; DR: механизм включения оценивается отдельно, а результат возвращается к оценке записи, которая его включила. Оценка записи не выполняется, если не найдено ни одного механизма. Так как вы закончили свой пример +all, он всегда будет совпадать и, следовательно, пройдет.

Похожие вопросы