Il nome host è sensibile al maiuscolo / minuscolo?


Risposte:


24

I nomi risolti dal DNS non fanno distinzione tra maiuscole e minuscole. Questo è importante per evitare confusione. Se fosse sensibile al maiuscolo / minuscolo, avremmo otto varianti di .com (.com, .Com, .cOm, .COm, .coM, .CoM, .cOM e .COM). I codici paese avrebbero quattro.

Se la risoluzione dei nomi fa distinzione tra maiuscole e minuscole per il ping, non viene eseguita dal DNS.


Apparentemente diventa un po 'complicato dopo aver aggiunto i nomi di dominio internazionalizzati. In contesti non ASCII il caso può essere importante.
Zoredache,

1
@Zoredache: sembra che i domini internazionalizzati che usano il sistema IDNA debbano essere codificabili in Punycode, il che implica la traduzione in minuscolo. Ci sono anche ulteriori restrizioni per garantire che i nomi siano visivamente distinti. Inoltre, non vuoi forzare gli utenti a garantire che facciano il caso giusto.
BillThor,

6

L'ho appena fatto qui al lavoro. Il DNS non dovrebbe fare distinzione tra maiuscole e minuscole .... l'RFC lo specifica. https://tools.ietf.org/html/rfc4343 ma non dice che DEVE essere in minuscolo.

Quindi abbiamo avuto il piacere di risolvere un host che non ha risolto le cose nel modo giusto per il nostro dominio 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

Perché preoccuparsi di risolvere il caso misto? Perché è quello che tcpdump stava mostrando come query DNS perché è quello che chiedeva il software in esecuzione. pgbouncer è stato configurato per utilizzare "p123-db" nella sua configurazione, e resolv.conf ha specificato un dominio di ricerca di "t.local". Allora, cosa sta mescolando il caso?

Si scopre che glibc stava alternando il caso in modo casuale. Il processo si chiama "0x20 padding" ed è stato descritto per la prima volta nel 2008 in "Uso del bit 0x20 nelle etichette DNS per migliorare l'identità delle transazioni" http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00

Lo scopo principale è aumentare l'entropia in modo che sia più difficile falsificare una risposta: il caso della domanda deve corrispondere al caso della risposta.

Una buona discussione può essere trovata qui. https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case


Separatamente, eseguiamo powerDNS internamente e questo esegue ricerche su un database. Per anni nessuno ha usato un nome host o un nome di dominio completo nel dominio t.local con una lettera maiuscola, quindi non abbiamo mai notato che il nostro dominio interno era sensibile al maiuscolo / minuscolo.

È stato corretto da alcune modifiche nella query, ma ciò avrebbe interrotto le ricerche di maiuscole e minuscole 0x20 come sopra: il client potrebbe richiedere che la risposta venga restituita nello stesso caso in cui è stata richiesta.

Risposta breve : il DNS non dovrebbe fare distinzione tra maiuscole e minuscole, ma in futuro la domanda e la risposta dovranno essere identiche.


2
La risposta a 4 anni dalla domanda è leggermente diversa. Mi chiedo tra altri 4 anni che la risposta sarà "sì - Il DNS ora fa distinzione tra maiuscole e minuscole"
Criggie,

4

Ho appena finito di risolvere un problema su un dispositivo SE Linux incorporato in cui la risoluzione del nome host mostrava la distinzione tra maiuscole e minuscole.

"ping MYHOST" eseguirà il ping su 127.0.0.1, mentre "ping myhost" eseguirà il ping dell'indirizzo IP corretto.

nslookup ha prodotto risultati corretti sia in maiuscolo che in minuscolo, indicando che il server DNS non era in errore.

A differenza di nslookup, che ignora la cache, "getent hosts MYHOST" produce "0.0.0.0" e "getent hosts myhost" genera l'indirizzo IP corretto.

Quindi apparentemente nscd fa distinzione tra maiuscole e minuscole. La chiamata di "nscd -i hosts" per cancellare la cache ha risolto il problema.

MYHOST in (maiuscolo) è stato memorizzato nella cache con 0.0.0.0 a causa di un processo che tenta di stabilire una connessione a MYHOST prima della creazione della voce DNS, che si verifica quando il dispositivo remoto riceve la sua assegnazione DHCP.


0

Come accennato da BillThor, non distingue tra maiuscole e minuscole a livello di risoluzione DNS o netbios.

I vari sistemi operativi non avranno problemi con il diverso case.

Tuttavia, le applicazioni potrebbero esserne consapevoli. Ad esempio, le piattaforme Web nei vari ambienti possono verificare la distinzione tra maiuscole e minuscole. Ora è più comune per motivi di ottimizzazione dei motori di ricerca (SEO) cercare diversi casing e reindirizzamenti. Dipende tutto dall'applicazione, quindi la risposta è che varia.

Per la maggior parte, comunque, il nome host non è un problema sensibile al maiuscolo / minuscolo a livello di applicazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.