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

Ответы:

24

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

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

BillThor
источник
Очевидно, что после добавления интернационализированных доменных имен это становится немного сложнее. В не 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 не должен быть чувствительным к регистру, но в будущем вопрос и ответ должны быть идентичными.

Criggie
источник
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), чаще приходится следить за различными вариантами и перенаправлением. Это все зависит от приложения, хотя ответ таков, что он меняется.

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

Скотт Форсайт - MVP
источник