Требуются ли записи SPF и DKIM TXT в кавычках?

16

Я искал несколько часов, но несколько источников говорят разные вещи.

https://support.wordfly.com/hc/en-us/articles/204767474-How-do-we-publish-DKIM-and-SPF-in-our-DNS- Сказать, что я не должен включать кавычки, тогда как https: //stackoverflow.com/a/9784925/1293725 читает кавычки должны быть включены в эти записи TXT.

Это всего лишь несколько примеров источников, но их гораздо больше.

Так должны ли эти записи включать цитаты или нет?

Neograph734
источник
2
Это действительно зависит от вашей системы / настройки. Например. Я предполагаю, что с Wordfly вы вводите свои значения в веб-форме. Использование кавычек в форме может действительно испортить вещи. Таким образом, вполне вероятно, что процесс принимает кавычки и вводит значения, используя кавычки в DNS, как это должно быть от вашего имени.
closetnoc
2
@closetnoc - это правильно. Используете ли вы кавычки или нет, скорее всего, связано с сайтом / инструментом, который вы используете для их ввода.
Шервин Рейс
Спасибо, я сначала попробую с включенными кавычками и посмотрим, выдаст ли система ошибку. Я обнаружил, что это сбивает с толку, поскольку источники указывают, что пробелы в записях TXT заставляют каждое слово обрабатываться как отдельную строку, и я не мог понять, было ли это предполагаемым поведением для SPF и DKIM. Но теперь я понимаю, что это следует рассматривать как одну строку.
Neograph734
1
У меня были цитаты, я переместил свой DNS на нового провайдера (Azure DNS), и SPF перестал работать. Убрал цитаты и все снова заработало. Так что это зависит от провайдера. Убедитесь, что вы подтвердите запись. У сущности, для которой вы создаете запись SPF, обычно есть инструмент / кнопка для этого.
nmit026

Ответы:

13

В (необработанном) файле зоны DNS значение TXTзаписи должно быть заключено в двойные кавычки, если оно содержит пробелы (как это часто бывает в случае записей SPF и DKIM). В противном случае пробелы являются разделителями в файле зоны DNS.

RFC 1305 определяет, как значения должны быть указаны в Зоне штрафа. Что касается TXTзаписей ресурсов:

3.3.14. Формат TXT RDATA

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/                   TXT-DATA                    /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

где:

TXT-DATA Один или несколько <character-string>с.

[Страница 20]

<character-string>выражается одним или двумя способами: как непрерывный набор символов без внутренних пробелов, или как строка, начинающаяся с «и заканчивающаяся на». Внутри «строки с разделителями может встречаться любой символ, кроме самого», который должен быть заключен в кавычки с помощью \ (обратная косая черта).

[Страница 35]


Однако, как упоминалось в комментариях, вы часто используете другой инструмент для редактирования записей DNS (обычно вы не редактируете файл зоны DNS напрямую, хотя WHM предоставляет вам эту возможность). Этот другой инструмент, вероятно, будет обрабатывать кавычки и любое дополнительное экранирование, необходимое для того, чтобы сделать запись действительной. Если вы вручную заключите значение в кавычки при отправке значения с помощью вашего редактора / инструмента, тогда эти дополнительные кавычки могут быть экранированы и станут частью TXTзначения записи.

Между прочим, когда вы выполняете поиск DNS, вы видите проанализированное / не заключенное в кавычки строковое значение.

Дополнительная ссылка:
https://en.wikipedia.org/wiki/TXT_Record
https://tools.ietf.org/html/rfc1464

MrWhite
источник
Да, после прочтения комментариев я также нашел руководство на сайте моего регистратора, в котором говорилось, что записи должны вводиться без кавычек (хотя у меня они были с кавычками ранее, и валидаторы онлайн отметили их как действительные, поэтому, возможно, оба способа работали в моем случае ). Я перешел на рекомендованный формат моего регистратора. Спасибо всем за помощь!
Neograph734
Да, у Cloudflare также есть специальное примечание о кавычках support.cloudflare.com/hc/en-us/articles/…
lkraav
Где найти это правило, «если TXTзначение содержит пробел, оно должно быть заключено в двойные кавычки»? Это звучит как хорошее правило, но чье это правило? Я не могу найти ничего об этом в RFC 1464 или в статье Википедии, которую вы упомянули. (В RFC 1464 упоминается выход из внутренних двойных кавычек, но это не так.)
Гаррет Уилсон
1
Ах, насколько я могу судить, этот тип экранирования определен в RFC 1035 в разделе 3.3 для <character-string>производства, а позже в разделе 3.3.14 он указывает, что TXTзаписи имеют <character-string>данные и поэтому должны быть заключены в кавычки. (Это также упоминается для HINFOзаписей, какими бы они ни были.)
Гаррет Уилсон
Да, RFC 1305 может показаться тем местом, где это определено. Если вы редактируете необработанную DNS-зону в WHM, вам фактически будет предложено, что «вы должны следовать соглашениям о цитировании и обходе, описанным в RFC 1035». Я обновлю свой ответ, спасибо.
MrWhite