DNS non può risolvere il nome host; nslookup può


9

Ho un utente su Windows 7 che sta tentando di accedere a un server locale con un nome DNS di windows.cs. Abbiamo due server DNS interni. Il server DHCP assegna agli utenti i due server DNS interni come primario e secondario e quindi i nostri ISP DNS come server DNS terziario.

Di tanto in tanto, l'utente non può accedere al sito Web su windows.cs. Se lo ping, dice che non è in grado di risolvere il nome host. Svuoto la cache DNS e quindi quando visualizzo la cache DNS ha il seguente:

windows.cs - Il nome non esiste

Tuttavia, se utilizzo nslookup, che per impostazione predefinita interroga il server DNS primario (il nostro interno) e interrogo windows.cs, restituisce l'indirizzo IP corretto.

Quindi perché Windows non può risolvere il nome host usando ping, ma può farlo quando si utilizza lo strumento nslookup? E come posso risolvere questo problema?


1
+1, ho questo problema spesso ... anche con i nomi host che stavo usando 5 minuti fa!
Brad,

Risposte:


12

Da quello che stai dicendo sembra che la richiesta per windows.cs stia andando al server DNS degli ISP di tanto in tanto. Il risultato nxdomain viene quindi memorizzato nella cache dal client DNS di Windows e quindi utilizzato per tutti i tentativi con un browser Web, ping ecc. La cancellazione della cache (ipconfig / flushdns) dovrebbe forzare il client DNS di Windows a ritentare la query, ma non è garantito che non andrà di nuovo al server DNS dell'ISP.

Il motivo per cui ping non è in grado di risolvere il nome host ma nslookup è perché nslookup è uno strumento di basso livello che ignora il client DNS di Windows. Utilizza qualsiasi server DNS a cui gli dici (il primo per impostazione predefinita) e esegue la query al volo. È possibile modificare il server DNS che richiede digitando server <host>dal prompt nslookup, dove host è l'IP o il nome di dominio completo.

Il client DNS di Windows tuttavia eseguirà solo query per le voci che non sono nella sua cache (o che sono scadute). Altrimenti restituisce il risultato memorizzato nella cache.

Non è immediatamente chiaro perché il client Windows stia utilizzando il server DNS ISP. Forse non è stato possibile risolvere il server locale di recente (forse perché si trova su un'altra rete), forse il server locale stava restituendo errori. O forse non è stato ordinato correttamente in Impostazioni TCP / IP avanzate> DNS.

Personalmente preferisco usare solo indirizzi di server DNS locali su stazioni di lavoro (propagate da DHCP), per semplificare la configurazione ed evitare problemi come questo. Sarei curioso di conoscere la logica alla base dell'impostazione del server DNS degli ISP sui desktop. Non riesco a immaginare che ci siano validi motivi di prestazioni e per quanto riguarda la ridondanza, due sono sufficienti sulla maggior parte delle reti (se non aggiungere un terzo).


Sollevi un buon punto. Non vi è alcun motivo particolare per cui il server DHCP lo assegni come terziario. E questa sembra una spiegazione ragionevole del perché non si sta risolvendo (ma perché sta andando al terzo server DNS che lo sa ...). Grazie per la direzione. Rimuoverò il server DNS pubblico dal server DNS assegnato distribuito tramite DHCP e vedrò se risolve il problema. I server DNS interni dovrebbero in ogni caso passare domande a cui non possono rispondere a quel server DNS, quindi non dovrebbe essere un problema.
Safado,

Aggiornamento: questo sembra aver risolto il nostro problema. Grazie per il suggerimento!
Safado,

0

I risultati di nslookupdifferiscono da quelli di a pingcausa di nslookupidiosincrasie e bug . Tuttavia, non sono realmente rilevanti per il tuo problema principale, ovvero che hai violato la regola secondo cui i server DNS proxy di fallback devono fornire la stessa vista dello spazio dei nomi DNS del tuo principale . Il server DNS proxy del tuo ISP non fornisce la stessa vista dello spazio dei nomi DNS dei tuoi server DNS proxy sulla tua LAN.

Sembrerebbe che un altro amministratore di sistema è caduto fallo del mio ISP fornisce e dei documenti, così ho devo usarlo. fallacia. ☺


Quindi in termini laici, stai dicendo di non assegnare i server DNS ai miei utenti a meno che non sappia che quei server DNS hanno le stesse informazioni? I tuoi collegamenti non funzionano.
Safado,

0

TL; versione DR: IPv6 ha causato il problema della query DNS nel mio caso, disattivandolo risolto il problema della query DNS.

Ho avuto lo stesso problema sulla mia macchina di sviluppo. Ogni volta che ho effettuato l'accesso alla nostra rete aziendale, non sono stato in grado di risolvere i nomi host interni, tutti i nomi host / URI esterni potevano essere risolti. Ho controllato i server DNS assegnati sulla connessione VPN e hanno mostrato che i server DNS dell'azienda erano configurati come primari e secondari. Potrei anche usare nslookupma ho dovuto cambiare manualmente il server tramite server X.X.X.Xper ottenere la risoluzione DNS.

Alla fine ho scoperto che IPv6 stava causando i problemi con la risoluzione dei nomi: su ogni query DNS veniva interrogato il DNS IPv6 anziché i server DNS dell'azienda IPv4. Dopo aver disattivato IPv6, è necessario che ipconfig /flushdnsgli indirizzi precedentemente interrogati in precedenza non siano ancora risolti.


0

Sono stato in grado di risolvere il problema semplicemente eliminando il record DNS ed eseguendo i comandi flushdns e registerdns e questo lo risolve. il motivo per cui sta invecchiando sul DNS stesso. Il DNS non ha eliminato il record dopo la scadenza del contratto di locazione e non è stato rinnovato, il che non è stato in grado di risolvere il nome perché è stato venduto per esso. spero che ti aiuti a risolvere i tuoi problemi.

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.