Какие символы / значения разрешено использовать в DNS?

Пока я искал RFC DNS из-за реализации проверки подчеркивания в записях CNAME, я нашел это интересное обсуждение и RFC с интересным моментом:

https://www.ietf.org/mail-archive/web/dnsop/current/msg01449.html

RFC 2181 11. Синтаксис имени: сам DNS накладывает только одно ограничение на конкретные метки, которые можно использовать для идентификации записей ресурсов. Это единственное ограничение касается длины этикетки и полного имя. Длина любой метки ограничена от 1 до 63. октеты. Полное доменное имя ограничено 255 октетами (включая разделители). Полное имя нулевой длины определяется как представляющее корень DNS-дерева и обычно записывается и отображается как «.». Помимо этих ограничений, любая двоичная строка может использоваться в качестве метка любой записи ресурса. Точно так же любая двоичная строка может служить значение любой записи, которая включает доменное имя как часть или все его значение (SOA, NS, MX, PTR, CNAME и любые другие, которые могут быть добавлены). Реализации протоколов DNS не должны накладывать никаких ограничений на этикетки, которые можно использовать. В частности, DNS-серверы не должны отказывать для обслуживания зоны, потому что она содержит ярлыки, которые могут быть неприемлемыми для некоторых клиентских программ DNS. DNS-сервер может быть настроен для выдачи предупреждения при загрузке или даже отказе от загрузки основной зоны содержащие ярлыки, которые могут быть сочтены сомнительными, однако это не должно происходить по умолчанию.

Итак, мой вопрос - если я правильно понял, означает ли это, что мы можем использовать в записях DNS, таких как MX, CNAME и т. д., что-то вроде этого?

Если мы попросим: ( представьте, что может быть любая двоичная строка)

the?weird?record,___*-+\k8a#$%...domain.ext

Может ли это возвращать похожий мэшап из символов (например, двоичную строку?) Разрешено ли это?

Конечно, я не спрашиваю о правилах «имен хостов» и о «предпочтительных» именах соглашений, но о «разрешенном» использовании символов в DNS.

2
задан 7 May 2018 в 13:32
1 ответ

Необходимо учитывать три момента:

  1. Стандарты RFC - которые вас, похоже, не волнуют, поскольку вы не хотите знать о предпочтительных соглашениях об именах и т. Д.
  2. Реализация DNS-сервера, который вы используете - независимо от RFC, независимо от того, вы можете поместить двоичные данные в пространство имен DNS, в зависимости от того, поддерживает ли поставщик (BIND, NSD ...) эти символы в своем программном обеспечении. Чтобы получить окончательный ответ на этот вопрос, вам нужно будет прочитать их документацию или, что более вероятно, просмотреть их исходный код.
  3. Реализация DNS-клиента, который вы используете - если вы хотите хранить двоичные данные в Пространство имен DNS, а не записи данных RDATA, клиент также должен будет поддерживать это.
2
ответ дан 3 December 2019 в 11:25

Теги

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