Eu acabei de ter isso aqui no trabalho. O DNS deve não fazer distinção entre maiúsculas e minúsculas .... o RFC especifica isso. link , mas não faz diga que deve ser em minúsculas.
Então, tivemos o prazer de solucionar problemas de um host que não resolveu as coisas corretamente para 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 o tcpdump estava mostrando como a consulta DNS, porque é isso que o software em execução pedia. pgbouncer foi configurado para usar "p123-db" em sua config, e resolv.conf especificou um domínio de busca de "t.local" Então, o que está misturando o caso?
Acontece que a 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 em rótulos DNS para melhorar a identidade da transação"
link
O objetivo principal é aumentar a entropia de modo 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.
link
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, por isso nunca notamos 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 solicitado.
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.