Учитывается ли регистр имени хоста?


Ответы:


24

Имена, разрешенные из DNS, не чувствительны к регистру. Это важно для предотвращения путаницы. Если бы он был чувствительным к регистру, то у нас было бы восемь вариантов .com (.com, .Com, .cOm, .COm, .coM, .CoM, .cOM и .COM). Коды стран будут иметь четыре.

Если разрешение имен чувствительно к регистру для Ping, оно не выполняется DNS.


Очевидно, что после добавления интернационализированных доменных имен это становится немного сложнее. В не ASCII контекстах дело может иметь значение.
Зоредаче

1
@Zoredache: похоже, что интернационализированные домены, использующие систему IDNA, должны быть кодируемыми в Punycode, что предполагает перевод в нижний регистр. Есть также дополнительные ограничения, чтобы гарантировать, что имена визуально различимы. Также вы не хотите заставлять пользователей следить за тем, чтобы они правильно поняли ситуацию.
BillThor

6

Я только что имел это здесь на работе. DNS должен быть регистрозависимым .... RFC указывает это. https://tools.ietf.org/html/rfc4343, но не говорит, что он ДОЛЖЕН быть в нижнем регистре.

Таким образом, мы имели удовольствие устранять неполадки хоста, который не решал проблемы для нашего внутреннего домена "t.local"

p123$ ping p123-db.t.local
PING p123-db.t.local (192.168.106.175) 56(84) bytes of data.
....works ok

p123$ ping P123-dB.T.lOcal
ping: unknown host P123-dB.T.lOcal

Зачем решать смешанный случай? Потому что это то, что tcpdump показывал как DNS-запрос, потому что это то, о чем просило работающее программное обеспечение. pgbouncer был настроен на использование «p123-db» в своей конфигурации, а resolv.conf указал поисковый домен «t.local». Так что же запутывает случай?

Оказывается, glibc переключал случай в случайном порядке. Этот процесс называется «заполнение 0x20» и впервые был описан в 2008 году в разделе «Использование бита 0x20 в метках DNS для улучшения идентификации транзакции» http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00

Основная цель состоит в том, чтобы увеличить энтропию, чтобы было сложнее подделать ответ - случай вопроса должен соответствовать случаю ответа.

Хорошее обсуждение может быть найдено здесь. https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case


Отдельно мы запускаем powerDNS внутри, и это делает поиск в базе данных. В течение многих лет никто не использовал имя хоста или полное доменное имя в домене t.local с заглавной буквой, поэтому мы никогда не замечали, что наш внутренний домен чувствителен к регистру.

Это было исправлено некоторыми изменениями в запросе, но это могло нарушить поиск в смешанном регистре 0x20, как указано выше - клиент может потребовать, чтобы ответ был возвращен в том же случае, в котором он был запрошен.

Краткий ответ : DNS не должен быть чувствительным к регистру, но в будущем вопрос и ответ должны быть идентичными.


2
Ответ через 4 года после того, как вопрос был задан, несколько отличается. Интересно, еще через 4 года ответ будет "да - DNS теперь чувствителен к регистру"
Criggie

4

Я только что закончил устранение проблемы на встроенном устройстве SE Linux, где разрешение имени хоста показывало чувствительность к регистру.

"ping MYHOST" будет пинговать до 127.0.0.1, тогда как "ping myhost" будет пинговать правильный IP-адрес.

nslookup выдает правильные результаты как в верхнем, так и в нижнем регистре, указывая на то, что DNS-сервер не был виновен.

Но в отличие от nslookup, который игнорирует кэш, «getent hosts MYHOST» выдает «0.0.0.0», а «getent hosts myhost» выдает правильный IP-адрес.

Так что NSCD, очевидно, чувствителен к регистру. Вызов «nscd -i hosts» для очистки кэша устранил проблему.

MYHOST в (верхний регистр) кешируется с 0.0.0.0 из-за процесса, пытающегося установить соединение с MYHOST до создания записи DNS, что происходит, когда удаленное устройство получает свое назначение DHCP.


0

Как упомянул BillThor, он не чувствителен к регистру на уровне разрешения DNS или netbios.

Различные операционные системы также не будут иметь проблем с различными корпусами.

Тем не менее, приложения могут знать о них. Например, веб-платформы в различных средах могут проверять чувствительность к регистру. В настоящее время по причинам, связанным с поисковой оптимизацией (SEO), чаще приходится следить за различными вариантами и перенаправлением. Это все зависит от приложения, хотя ответ таков, что он меняется.

Для «большей части» имя хоста также не учитывает регистр символов на уровне приложения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.