Risoluzione dei problemi dei server DNS

Provare l'agente virtuale: consente di identificare e risolvere rapidamente i problemi comuni legati al DNS.

Questo articolo descrive come risolvere i problemi nei server DNS.

Controllare la configurazione IP

  1. Eseguire ipconfig /all al prompt dei comandi e verificare l'indirizzo IP, la subnet mask e il gateway predefinito.

  2. Controllare se il server DNS è autorevole per il nome cercato. In tal caso, vedere Verifica della presenza di problemi con i dati autorevoli.

  3. Esegui questo comando:

    nslookup <name> <IP address of the DNS server>
    

    Ad esempio:

    nslookup app1 10.0.0.1
    

    Se si riceve una risposta di errore o timeout, vedere Controllo dei problemi di ricorsione.

  4. Scaricare la cache del sistema di risoluzione. A tale scopo, eseguire il comando seguente in una finestra del prompt dei comandi da amministratore:

    dnscmd /clearcache
    

    In alternativa, in una finestra amministrativa di PowerShell eseguire il cmdlet seguente:

    Clear-DnsServerCache
    
  5. Ripetere il passaggio 3.

Verificare la presenza di problemi del server DNS

Registro eventi

Controllare i log seguenti per verificare se sono presenti errori registrati:

  • Applicazione

  • Sistema

  • Server DNS.

Eseguire il test usando la query nslookup

Eseguire il comando seguente e verificare se il server DNS è raggiungibile dai computer client.

nslookup <client name> <server IP address>
  • Se il sistema di risoluzione restituisce l'indirizzo IP del client, il server non ha problemi.

  • Se il resolver restituisce una risposta di tipo "Errore del server" o "Query rifiutata", la zona è probabilmente sospesa o è possibile che il server sia sovraccarico. È possibile scoprire se è sospesa controllando la scheda Generale delle proprietà della zona nella console DNS.

Se il sistema di risoluzione restituisce una risposta "Timeout richiesta al server" o "Nessuna risposta dal server", il servizio DNS probabilmente non è in esecuzione. Provare a riavviare il servizio server DNS immettendo quanto segue al prompt dei comandi nel server:

net start DNS

Se il problema si verifica quando il servizio è in esecuzione, il server potrebbe non essere in ascolto sull'indirizzo IP usato nella query nslookup. Nella scheda Interfacce della pagina delle proprietà del server nella console DNS gli amministratori possono limitare l'ascolto di un server DNS solo agli indirizzi selezionati. Se il server DNS è stato configurato per limitare il servizio a un elenco specifico degli indirizzi IP configurati, è possibile che l'indirizzo IP usato per contattare il server DNS non sia presente nell'elenco. È possibile provare un indirizzo IP diverso nell'elenco o aggiungere l'indirizzo all'elenco.

In rari casi, il server DNS potrebbe avere una configurazione avanzata di sicurezza o firewall. Se il server si trova in un'altra rete raggiungibile solo tramite un host intermedio (ad esempio un router di filtro pacchetti o un server proxy), il server DNS potrebbe usare una porta non standard per restare in ascolto e ricevere richieste client. Per impostazione predefinita, nslookup invia query ai server DNS sulla porta UDP 53. Pertanto, se il server DNS usa qualsiasi altra porta, le query nslookup hanno esito negativo. Se si ritiene che questo potrebbe essere il problema, verificare se un filtro intermedio venga usato intenzionalmente per bloccare il traffico su porte DNS note. In caso contrario, provare a modificare i filtri di pacchetti o le regole di porta nel firewall per consentire il traffico sulla porta UDP/TCP 53.

Verifica della presenza di problemi con i dati autorevoli

Controllare se il server che restituisce la risposta errata è un server primario per la zona (il server primario standard per la zona o un server che usa l'integrazione di Active Directory per caricarla) oppure un server che ospita una copia secondaria della zona.

Se il server è un server primario

Il problema potrebbe essere causato da errori causati dagli utenti che immettono i dati nella zona. In alternativa, potrebbe essere legato alla replica di Active Directory o all'aggiornamento dinamico.

Se il server ospita una copia secondaria della zona

  1. Esaminare la zona nel server primario (il server da cui il server esegue il pull dei trasferimenti di zona).

    Nota

    È possibile determinare quale server è il server primario esaminando le proprietà della zona secondaria nella console DNS.

    Se il nome non è corretto nel server primario, andare al passaggio 4.

  2. Se il nome è corretto nel server primario, verificare se il numero di serie nel server primario è minore o uguale al numero di serie nel server secondario. In caso affermativo, modificare il server primario o il server secondario in modo che il numero di serie nel server primario sia maggiore del numero di serie nel server secondario.

  3. Nel server secondario forzare un trasferimento di zona dall'interno della console DNS o eseguendo il comando seguente:

    dnscmd /zonerefresh <zone name>
    

    Ad esempio, se la zona è corp.contoso.com, immettere: dnscmd /zonerefresh corp.contoso.com.

  4. Esaminare di nuovo il server secondario per verificare se la zona è stata trasferita correttamente. In caso contrario, è probabile che si verifichi un problema di trasferimento della zona. Per altre informazioni, vedere Problemi di trasferimento di zona.

  5. Se la zona è stata trasferita correttamente, verificare se i dati sono ora corretti. In caso contrario, i dati non sono corretti nella zona primaria. Il problema potrebbe essere causato da errori causati dagli utenti che immettono i dati nella zona. In alternativa, potrebbe essere legato alla replica di Active Directory o all'aggiornamento dinamico.

Verifica dei problemi di ricorsione

Per il corretto funzionamento della ricorsione, tutti i server DNS usati nel percorso di una query ricorsiva devono essere in grado di rispondere e inoltrare i dati corretti. In caso contrario, una query ricorsiva può non riuscire per uno dei motivi seguenti:

  • Si verifica un timeout prima del completamento della query.

  • Un server usato durante la query non risponde.

  • Un server usato durante la query fornisce dati non corretti.

Avviare la risoluzione dei problemi nel server usato nella query originale. Controllare se il server inoltra le query a un altro server esaminando la scheda Server d'inoltro nelle proprietà del server nella console DNS. Se è selezionata la casella di controllo Abilita server di inoltro e vengono elencati uno o più server, il server sta inoltrando le query.

Se il server inoltra query a un altro server, verificare la presenza di problemi che interessano il server che riceve le query inoltrate. Per verificare la presenza di problemi, vedere Controllare i problemi del server DNS. Quando questa sezione indica di eseguire un'attività sul client, eseguirla nel server.

Se il server è integro e può inoltrare query, ripetere questo passaggio ed esaminare il server a cui il server inoltra le query.

Se il server non inoltra query a un altro server, verificare se sia in grado di eseguire query su un server radice. A tale scopo, usare il comando seguente:

nslookup
server <IP address of server being examined>
set q=NS
  • Se il sistema di risoluzione restituisce l'indirizzo IP di un server radice, è probabile che sia presente una delega interrotta tra il server radice e il nome o l'indirizzo IP che si sta tentando di risolvere. Seguire la procedura Testare una delega interrotta per determinare dove si è interrotta la delega.

  • Se il sistema di risoluzione restituisce una risposta "Timeout richiesta al server", verificare se i parametri radice puntano ai server radice funzionanti. A tale scopo, usare la procedura Per visualizzare i parametri radice correnti. Se i parametri radice puntano a server radice funzionanti, potrebbe verificarsi un problema di rete o il server potrebbe stare usando una configurazione firewall avanzata che impedisce al resolver di eseguire query sul server, come descritto nella sezione Controllare i problemi del server DNS. È anche possibile che il timeout ricorsivo predefinito sia troppo breve.

Testare una delega interrotta

Iniziare i test nella procedura seguente eseguendo una query su un server radice valido. Il test consente di eseguire una query su tutti i server DNS dalla radice verso il server che si sta testando per una delega interrotta.

  1. Al prompt dei comandi nel server di cui si sta eseguendo il test, immettere quanto segue:

    nslookup
    server <server IP address>
    set norecursion
    set querytype= <resource record type>
    <FQDN>
    

    Nota

    Il tipo di record di risorsa è il tipo di record per cui si stava eseguendo una query nella query originale e il nome di dominio completo è quello per cui si stava eseguendo una query (terminata da un punto).

  2. Se la risposta include un elenco di record di risorse "NS" e "A" per i server delegati, ripetere il passaggio 1 per ogni server e usare l'indirizzo IP dai record di risorsa "A" come indirizzo IP del server.

    • Se la risposta non contiene un record di risorse "NS", si dispone di una delega interrotta.

    • Se la risposta contiene record di risorse "NS" ma non record di risorse "A", immettere set recursion ed eseguire una query singolarmente per i record di risorse "A" dei server elencati nei record "NS". Se non si trova almeno un indirizzo IP valido di un record di risorsa "A" per ogni record di risorsa NS in una zona, significa che una delega è interrotta.

  3. Se si determina la presenza di una delega interrotta, correggerla aggiungendo o aggiornando un record di risorsa "A" nella zona padre usando un indirizzo IP valido per un server DNS corretto per la zona delegata.

Per visualizzare i parametri radice correnti

  1. Avviare la console DNS.

  2. Aggiungere o connettersi al server DNS che non è riuscito a eseguire una query ricorsiva.

  3. Fare clic con il pulsante destro del mouse sul server e selezionare Proprietà.

  4. Fare clic su Parametri radice.

Verificare la connettività di base ai server radice.

  • Se i parametri radice sembrano essere configurati correttamente, verificare che il server DNS usato in una risoluzione dei nomi non riuscita possa effettuare il ping dei server radice in base all'indirizzo IP.

  • Se i server radice non rispondono al ping tramite indirizzo IP, è possibile che gli indirizzi IP per i server radice siano stati modificati. Tuttavia, è insolito vedere una riconfigurazione dei server radice.

Problemi di trasferimento di zona

Eseguire i controlli seguenti:

  • Controllare il Visualizzatore eventi per il server DNS primario e secondario.

  • Controllare il server primario per verificare se si stia rifiutando di inviare il trasferimento per la sicurezza.

  • Controllare la scheda Trasferimenti di zona delle proprietà della zona nella console DNS. Se il server limita i trasferimenti di zona a un elenco di server, ad esempio quelli elencati nella scheda Server dei nomi delle proprietà della zona, assicurarsi che il server secondario sia presente nell'elenco. Assicurarsi che il server sia configurato per l'invio di trasferimenti di zona.

  • Controllare la presenza di problemi nel server primario seguendo la procedura descritta nella sezione Controllare i problemi del server DNS. Quando viene richiesto di eseguire un'attività sul client, eseguire invece l'attività nel server secondario.

  • Controllare se il server secondario stia eseguendo un'altra implementazione del server DNS, ad esempio BIND. In caso affermativo, il problema potrebbe avere una delle cause seguenti:

    • Il server primario Windows potrebbe essere configurato per inviare trasferimenti di zona veloci, ma il server secondario di terze parti potrebbe non supportarli. In questo caso, disabilitare i trasferimenti di zona rapida nel server primario dall'interno della console DNS selezionando la casella di controllo Abilita associazione repliche secondarie nella scheda Avanzate delle proprietà del server.

    • Se una zona di ricerca diretta nel server Windows contiene un tipo di record (ad esempio un record SRV) che il server secondario non supporta, il server secondario potrebbe avere problemi di pull della zona.

Controllare se il server primario stia eseguendo un'altra implementazione del server DNS, ad esempio BIND. In tal caso, è possibile che la zona nel server primario includa record di risorse incompatibili non riconosciuti da Windows.

Se il server master o secondario esegue un'altra implementazione del server DNS, controllare entrambi i server per assicurarsi che supportino le stesse funzionalità. È possibile controllare il server Windows nella console DNS nella scheda Avanzate della pagina delle proprietà per il server. Oltre alla casella Abilita associazione repliche secondarie, questa pagina include l'elenco a discesa Controllo dei nomi. In questo modo è possibile selezionare l'applicazione di una rigorosa conformità RFC per i caratteri nei nomi DNS.