主机名区分大小写吗?


Answers:


24

从DNS解析的名称不区分大小写。这对于防止混淆很重要。如果区分大小写,那么我们将有.com的八个变体(.com,.com,.cOm,.COm,.coM,.CoM,.cOM和.COM)。国家/地区代码将包含四个。

如果名称解析对Ping区分大小写,则DNS不会完成。


添加国际化域名后,它确实确实有些棘手。在非ASCII上下文中,情况可能很重要。
Zoredache

1
@Zoredache:使用IDNA系统的国际化域名似乎必须在Punycode中可编码,这涉及到小写的转换。还有其他限制,以确保名称在视觉上是不同的。另外,您也不想强迫用户确保他们的案子正确无误。
BillThor 2011年

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年在“使用DNS标签中的位0x20改善交易身份”中进行了描述,网址为 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域中使用带有大写字母的主机名或FQDN,因此我们从来没有注意到我们的内部域区分大小写。

已通过查询中的一些调整修复,但这将破坏上面的0x20混合大小写查找-客户端可能要求在与请求相同的情况下返回答案。

简短答案:DNS不应区分大小写,但将来的问题和答案必须是相同的大小写。


2
提出问题4年后的答案略有不同。我想知道再过4年后答案会是“是的-DNS现在区分大小写了”
Criggie '16

4

我刚刚完成了对嵌入式SE Linux设备上主机名称解析表现出区分大小写的问题的疑难解答。

“ ping MYHOST”将ping到127.0.0.1,而“ ping myhost”将ping正确的IP地址。

nslookup对大写和小写字母均产生正确的结果,表明DNS服务器没有故障。

但是与nslookup(忽略缓存)不同,“ getent主机MYHOST”输出“ 0.0.0.0”,而“ getent主机myhost”输出正确的IP地址。

因此,nscd显然区分大小写。调用“ nscd -i主机”以清除高速缓存可解决此问题。

由于试图在创建DNS条目之前建立与MYHOST的连接的过程(在远程设备获得其DHCP分配时发生),因此(大写)中的MYHOST最终以0.0.0.0进行了缓存。


0

正如BillThor所提到的,在DNS或netbios解析级别上,它不区分大小写。

各种操作系统也不会因使用不同的机壳而出现问题。

但是,应用程序可能会意识到它们。例如,各种环境下的Web平台可以检查是否区分大小写。现在,由于搜索引擎优化(SEO)的原因,监视不同的大小写和重定向更加普遍。这完全取决于应用程序,因此答案是不同的。

在大多数情况下,主机名在应用程序级别也不是区分大小写的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.