Cosa può far sì che una ricerca DNS ignori la voce di un file host?


13

Sto riscontrando un problema di risoluzione DNS che sta influenzando le prestazioni del mio sito Web ospitato localmente quando lo sfoglio sul mio computer locale. Se allego il suffisso DNS della mia rete al nome del mio computer locale quando vado all'URL nel mio browser, il sito ha tempi di caricamento terribili (oltre 100 volte più lenti) che senza il suffisso DNS.

Ho pensato di poterlo risolvere usando il mio file hosts per evitare la necessità di una ricerca. Ho aggiunto una voce al mio file hosts in questo modo

127.0.0.1    myMachine.MyDnsSuffix

Ma questo non ha cambiato i tempi di caricamento, anche dopo un riavvio. Anche se non è importante risolvere questo specifico problema, vorrei davvero sapere perché questo accade.

Inoltre, quando eseguo nslookup sul dominio myMachine.MyDnsSuffix, noto che utilizza il server DNS della mia rete per trovare l'IP. Questo potrebbe essere correlato al mio problema o sto solo capendo male come funziona nslookup?

Risposte:


20

Credo che nslookup sia usato per testare un server DNS stesso, invece di utilizzare il tuo file HOSTS. http://support.microsoft.com/kb/200525 sembra indicare altrettanto.

Prova solo un semplice ping. Non ping myMachine.MyDnsSuffixrisolvere l'indirizzo di loopback è stato specificato nel file HOSTS?


Hai fatto un buon punto in merito nslookup. Ho appena provato a eseguire il ping myMachine.MyDnsSuffixe si è risolto con il mio IP sulla rete, non 127.0.0.1come specificato nel mio file HOSTS.
Dan Herbert,

Qual è il tuo sistema operativo? Penso che Windows 7 e forse Vista abbia alcune strane protezioni UAC sul file HOSTS. Sei sicuro che le modifiche vengano salvate correttamente?
Christopher Karel,

Il mio sistema operativo è Windows XP. Le modifiche sembrano essere salvate correttamente.
Dan Herbert,

Hmm ... non c'è un segno di hash all'inizio di quella voce HOSTS, vero? (sarebbe un commento) E sei sicuro che sia in C: \ Windows \ System32 \ drivers \ etc \ hosts? Puoi aggiungere una voce fittizia lì e vedere se si risolve come specificato?
Christopher Karel,

3
Oh, e non dimenticare di cancellare la cache dei nomi. ipconfig /flushdns. E le cache NetBIOS troppo: nbtstat -R. (Case sensitive in windows - WTF, perché?!?)
Christopher Karel il

8

Le ricerche DNS non utilizzano un file hosts. Mai.


2
@BartDeVos no, non è sbagliato. Una ricerca host generica (vale a dire gethostbyname()può passare tramite il file hosts o tramite DNS, ma una ricerca specifica DNS (come eseguita da nslookup) non utilizzerà il file hosts.
Alnitak,

Detto questo, gethostinfo / getaddrinfo (le versioni moderne di gethostbyname) sono POSIX e non necessariamente ciò che utilizza Windows.
adattamento

2

OK, approccio nuovo di zecca. Cerchiamo di cancellare la cache IP e NETBIOS. ipconfig /flushdnse nbtstat -R. Quindi accendi uno sniffer di pacchetti come Wireshark e fai un ping mentre è in esecuzione.

Dall'acquisizione di pacchetti, vogliamo vedere se A) Esiste una richiesta DNS e, in tal caso, quale nome sta richiedendo. B) Se c'è una richiesta NETBIOS in uscita. È possibile che questo nome sia stato risolto tramite NETBIOS invece del DNS corretto.

Se non vediamo nessuno dei precedenti, nonostante tu stia svuotando la cache, è probabile che il nome venga estratto da host o lmhosts.


1

Alcune persone nei forum Web affermano che la creazione di un nuovo file host e il riavvio del servizio client DNS risolvono il problema, ma non sono sicuro del perché ciò funzionerebbe se hai già provato a riavviare.

Mi rendo conto che questo è un tiro a segno, ma non ci sono parole correlate a Microsoft come MSDN, Microsoft o MSN nella voce del file hosts, vero? Microsoft ha scritto dnsapi.dll per ignorare le voci del file host che corrispondono a determinati nomi. Ad esempio, se aggiungo la seguente voce, Windows la salta e risolve entrambi i nomi host nella voce utilizzando DNS:

127.0.0.1 www.microsoft.com www.mysite.com

Non ho alcun materiale correlato a Microsoft nel mio file HOSTS. Ho solo alcuni domini di test interni assegnati. Il mio file HOSTS è piuttosto semplice.
Dan Herbert,

Mmm, interessante. Sapevo che avevano un dominio MS codificato per ignorare il HOSTSfile, ma anche il dominio non MS viene ignorato se condivide una voce con un dominio MS? Questa è solo una cattiva programmazione da parte loro. Questo è sicuramente qualcosa a cui prestare attenzione se "si minimizza" un HOSTSfile.
Synetech,

0

Quando si utilizza il nome DNS completo, il browser tenta di passare attraverso il server proxy, facendo clic su IE .

Il file hosts o l'ordine di risoluzione dei nomi non hanno nulla a che fare con questo problema, e la ferita irritante sul retro dell'umanità che è il file hosts dovrebbe essere rimossa e rumorosamente sparata.


Non sono collegato a un proxy però.
Dan Herbert,

1
@mh: sarei d'accordo con te sulle riprese degli host, purché i server root mi consentano di aggiungere / rimuovere / modificare i record.
Ian Boyd,

0

http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx

Questa sembra essere la vera causa. Lascia a Microsoft l'improvvisa e senza preavviso ignorare una convenzione di 25 anni.


2
Si prega di includere un riassunto della risposta / causa nella risposta. È molto più bello di un semplice link.
Jacob,

Ecco la parte essenziale dell'URL collegato Tuttavia, nulla sembrava funzionare. Fino a quando non ho visto altri file host di esempio formattati come <indirizzo ip> <spazio singolo> <valore>
Tun

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.