Пока я искал 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.
Следует учитывать три вещи: