Я настраиваю проверку подлинности электронной почты в нашем домене, чтобы разрешить проверку подлинности с помощью нашего поставщика услуг электронной почты.
Насколько я понимаю, запись DNS должна иметь ; экранированный, например, \;
Я просто хочу убедиться, что ВСЕ; следует избегать. С этой целью я хочу убедиться, что понимаю, зачем нужен побег. Т.е., если это б / у ; означает что-то особенное, тогда как мне узнать, когда это должно быть не быть экранированным, и вместо этого он должен иметь особое значение? или это имеет особое (и другое) значение в записях DNS TXT в целом, и что для специального использования параметра DKIM мы делаем не хотите, чтобы оно имело особое значение (и, возможно, тот, кто прочитает запись, применит это значение)
Кроме того, ESP сообщает мне, что DNS «по какой-то причине добавляет \» (ожидая подтверждения, просто ли они этого не понимают.
Выбор того, какие символы являются специальными и требуют экранирования, будет зависеть от используемого сервера имен, а также от того, какой интерфейс используется для настройки сервера имен (например, если вы используете веб-инструмент настройки, он может автоматически экранировать ;
персонажей для вас).
Стандарт файл зоны (как определено RFC 1034/1035) использует ;
символ, чтобы начать комментарий. Если бы у вас не было обратной косой черты, текст от точки с запятой до конца строки игнорировался бы сервером.
Обратите внимание, что bind
не считает ;
внутри уже заключенной в кавычки строки, чтобы начать комментарий и требует экранирования, но обработает его, если вы это сделали. Оба эти должен дать такой же ответ:
IN TXT "asdf;jkl"
IN TXT "asdf\;jkl"
Также обратите внимание, что когда вы используете dig
или host
, вывод, напечатанный теми, добавить обратную косую черту к точке с запятой по давно забытым причинам.
А; - это символ комментария для файла зоны, как и # в большинстве файлов конфигурации Linux. Он сообщает Bind прекратить чтение из; вперед до конца этой строки.
Если вам нужно иметь характер; внутри содержимого записи DNS можно заключить содержимое записи в "", и оно будет отображаться без какой-либо интерпретации. Записи TXT и SPF используют этот формат (взятый из стандарта OpenDKIM):
_domainkey.DOMAIN.TLD. IN TXT "t=y; o=-;"
SELECTOR._domainkey.DOMAIN.TLD. IN TXT "k=rsa; t=y; p=YOUR_PUBLIC_KEY_HERE"
В моих файлах зоны вообще нет \ символов. Прокомментированным значениям предшествует a;
; HOST Definitions
mail A 1.2.3.4 ; mail server
time A 1.2.3.4 ; ntp server
Я не уверен, зачем вам нужно включать экранированный; символ в ваших записях DNS вообще. Это будет означать, что Bind попытается интерпретировать его как имя хоста или другое значение.