В каких случаях главный файл DNS может содержать CRLF?

Читая RFC 1035, раздел 5.1, чтобы написать синтаксический анализатор главного файла, я наткнулся на следующее утверждение:

5.1. Формат

Формат этих файлов - это последовательность записей. Записи преимущественно ориентированы на строки, хотя круглые скобки могут использоваться для продолжения списка элементов за границей строки, а текстовые литералы могут содержать CRLF в тексте. Любая комбинация табуляции и пробелов действует как разделитель между отдельными элементами, составляющими запись. Конец любой строки в главном файле может заканчиваться комментарием. Комментарий начинается с символа ";" (точка с запятой).

Что авторы имеют в виду, говоря, что "текстовые литералы могут содержать CRLF внутри текста"? Я знаю, что приведенная ниже запись действительна, как описано в Разделе 5.3, но мне не удалось найти ни примера этого оператора, ни правильного определения "текстового литерала". Кроме того, я безуспешно искал сопутствующий RFC 1034 на предмет упоминания вышеуказанного утверждения.

@   IN  SOA     VENERA      Action\.domains (
                                 20     ; SERIAL
                                 7200   ; REFRESH
                                 600    ; RETRY
                                 3600000; EXPIRE
                                 60)    ; MINIMUM

Я предполагаю, что текстовый литерал можно разделить круглыми скобками. Будет ли какой-либо из следующих комментариев действительным в соответствии с RFC 1035 и какими различными способами CRLF будет действителен в файле?

@   IN  SOA     VENERA      Action\.domains (
                                 20     ;  Some example of a multi-line comment 
                                           inside parentheses
                                 7200
                                 600
                                 3600000
                                 60)    ;  (Some example of parentheses
                                           inside a multi-line comment)

1 ответ

Решение

Это означает, что это должно быть действительным:

example.com. IN TXT "hello,
world"

Авторы RFC, вероятно, ожидают, что он будет эквивалентен:

example.com. IN TXT "hello,\013\010world"

Из-за неоднозначности кодировки окончания строки в этих ситуациях (если платформа использует LF в качестве терминатора строки, вы все еще получаете CRLF в записи TXT?), Я сомневаюсь, что это широко применяется.

Другие вопросы по тегам