O nome do host diferencia maiúsculas de minúsculas?

Respostas:

24

Os nomes resolvidos pelo DNS não diferenciam maiúsculas de minúsculas. Isso é importante para evitar confusão. Se fosse sensível a maiúsculas e minúsculas, teríamos oito variantes de .com (.com, .Com, .cOm, .COm, .coM, .CoM, .cOM e .COM). Os códigos dos países teriam quatro.

Se a resolução de nomes diferencia maiúsculas de minúsculas no Ping, isso não está sendo feito pelo DNS.

BillThor
fonte
Aparentemente, fica um pouco complicado depois que os Nomes de Domínio Internacionalizados são adicionados. Em contextos não ASCII, o caso pode ser importante.
Zoredache
1
@ Zoredache: Parece que os domínios internacionalizados que usam o sistema IDNA devem ser codificados no Punycode, que envolve a tradução para minúsculas. Existem também restrições adicionais para garantir que os nomes sejam visualmente distintos. Além disso, você não deseja forçar os usuários a garantir que eles acertem o caso.
BillThor
6

Acabei de ter isso aqui no trabalho. O DNS deve diferenciar maiúsculas de minúsculas .... o RFC especifica isso. https://tools.ietf.org/html/rfc4343, mas não diz que DEVE estar em letras minúsculas.

Por isso, tivemos o prazer de solucionar problemas de um host que não resolveu as coisas certas para o nosso domínio interno "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

Por que se preocupar em resolver o caso misto? Porque é isso que tcpdump estava mostrando como a consulta DNS, porque era o que o software em execução estava pedindo. O pgbouncer foi configurado para usar "p123-db" em sua configuração e o resolv.conf especificou um domínio de pesquisa "t.local" Então, o que está misturando o caso?

Acontece que o glibc estava alternando o caso aleatoriamente. O processo é chamado de "preenchimento 0x20" e foi descrito pela primeira vez em 2008 em "Uso do bit 0x20 nos rótulos DNS para melhorar a identidade da transação" http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00

O principal objetivo é aumentar a entropia para que seja mais difícil falsificar uma resposta - o caso da pergunta deve corresponder ao caso da resposta.

Uma boa discussão pode ser encontrada aqui. https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case


Separadamente, executamos o powerDNS internamente e isso faz pesquisas em um banco de dados. Durante anos, ninguém usou um nome de host ou FQDN no domínio t.local com uma letra maiúscula; portanto, nunca percebemos que nosso domínio interno fazia distinção entre maiúsculas e minúsculas.

Foi corrigido por alguns ajustes na consulta, mas isso teria quebrado as pesquisas de casos mistos 0x20 como acima - o cliente pode exigir que a resposta seja retornada no mesmo caso em que foi solicitada.

Resposta curta : o DNS não deve diferenciar maiúsculas de minúsculas, mas a pergunta e a resposta precisarão ser idênticas no futuro.

Criggie
fonte
2
A resposta 4 anos após a pergunta foi sutilmente diferente. Gostaria de saber em mais 4 anos a resposta será "sim - o DNS agora faz
distinção entre
4

Acabei de solucionar um problema em um dispositivo SE Linux incorporado em que a resolução do nome do host exibia distinção entre maiúsculas e minúsculas.

"ping MYHOST" executaria ping para 127.0.0.1, enquanto "ping myhost" executaria ping no endereço IP correto.

O nslookup produziu resultados corretos para maiúsculas e minúsculas, indicando que o servidor DNS não estava com defeito.

Mas, diferentemente do nslookup, que ignora o cache, "getent hosts MYHOST" gera "0.0.0.0" e "getent hosts myhost" gera o endereço IP correto.

Portanto, o nscd aparentemente diferencia maiúsculas de minúsculas. Chamar "nscd -i hosts" para limpar o cache corrigiu o problema.

O MYHOST em (maiúsculas) terminou em cache com 0.0.0.0 devido a um processo que tentava estabelecer uma conexão com o MYHOST antes da criação da entrada DNS, o que acontece quando o dispositivo remoto recebe sua atribuição de DHCP.

Andrew Weimholt
fonte
0

Como o BillThor mencionou, não diferencia maiúsculas de minúsculas no nível de resolução DNS ou netbios.

Os vários sistemas operacionais também não terão problemas com as diferentes caixas.

No entanto, os aplicativos podem estar cientes deles. Por exemplo, as plataformas da web nos vários ambientes podem verificar a distinção entre maiúsculas e minúsculas. Agora, é mais comum que os motivos de otimização de mecanismo de pesquisa (SEO) observem diferentes casos e redirecionamentos. Tudo depende da aplicação, portanto, a resposta é que ela varia.

Para a "maior parte", o nome do host também não é uma preocupação que diferencia maiúsculas de minúsculas no nível do aplicativo.

Scott Forsyth - MVP
fonte